java程序設(shè)計(jì)課后練習(xí)答案_第1頁(yè)
java程序設(shè)計(jì)課后練習(xí)答案_第2頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

....-.jz*-.jz*一、選擇題

"Java程序設(shè)計(jì)"課后練習(xí)答案第一章Java概述〔 A 〕是在Dos命令提示符下編譯Java程序的命令〔 B 〕是運(yùn)行Java程序命令。javacjavajavadocjavaw〔 D 〕不是Java程序中有效的注釋符號(hào)。//B. /* */C. /** */D. */ */〔 B 〕不是Java語(yǔ)言的特點(diǎn)。面向?qū)ο笞詣?dòng)檢查語(yǔ)法錯(cuò)誤跨平臺(tái)解釋執(zhí)行Java編譯器會(huì)將Java程序轉(zhuǎn)換為〔 C 〕可執(zhí)行代碼目標(biāo)代碼字節(jié)碼機(jī)器代碼Java源文件的擴(kuò)展名是〔 D 〕.class B. .jar C. .jav D. .java二、簡(jiǎn)答題1、 Java的跨平臺(tái)的含義是什么?為什么Java可以跨平臺(tái)?Java語(yǔ)言的一個(gè)非常重要的特點(diǎn)就是平臺(tái)無(wú)關(guān)性。它是指用Java編寫的應(yīng)用程序編譯后不用修改就可在不同的操作系統(tǒng)平臺(tái)上運(yùn)行。Java之所以能平臺(tái)無(wú)關(guān),主要是依靠Java虛擬機(jī)〔JVM〕來(lái)實(shí)現(xiàn)的。JVM是一種抽象機(jī)器,它附著在具體操作系統(tǒng)之上,本身具有一套虛機(jī)器指令,并有自己的棧、存放器組等。Java編程人員在編寫完JavaJava編譯器將Java源代碼文件編譯后生成字節(jié)碼文件〔一種與操作系統(tǒng)無(wú)關(guān)的二進(jìn)制文件Java虛擬機(jī)〔〕里的類加載終運(yùn)行。以以下圖展示了Java程序從編譯到最后運(yùn)行的完整過(guò)程。2、 簡(jiǎn)述Java語(yǔ)言的特點(diǎn)Java具有以下特點(diǎn):、簡(jiǎn)單性Java語(yǔ)言的語(yǔ)法規(guī)那么和C語(yǔ)言非常相似,只有很少一局部不同于C語(yǔ)言,并且Java還舍棄了C語(yǔ)言中復(fù)雜的數(shù)據(jù)類型〔如:指針和構(gòu)造體〕,因此很容易入門和掌握。、可靠性和平安性Java展一次編譯檢查的編程語(yǔ)言具有更高的可靠性和平安性。、面向?qū)ο驤ava多態(tài)三大特點(diǎn)。、平臺(tái)無(wú)關(guān)和解釋執(zhí)行Java語(yǔ)言的一個(gè)非常重要的特點(diǎn)就是平臺(tái)無(wú)關(guān)性Java編寫的應(yīng)用程序編譯后Java之所以能平臺(tái)無(wú)關(guān),主要是依靠Java虛擬機(jī)〔JVMJava編譯器將Java統(tǒng)無(wú)關(guān)的二進(jìn)制文件Java虛擬機(jī)〔JVM〕里的類加載器加載后,經(jīng)過(guò)字Java、分布式分布式包括數(shù)據(jù)分布和操作分布,而Java支持客戶機(jī)/效勞器計(jì)算模式,因此也支持這兩種分布式。、多線程Java在兩方面支持多線程。一方面,環(huán)境本身就是多線程的。假設(shè)干個(gè)系統(tǒng)線程運(yùn)三、綜合編程題1、 請(qǐng)編寫一個(gè)簡(jiǎn)單的Java程序能夠輸出“這是我的第一個(gè)Java程序〞〔注意為程序添適宜的注釋和文檔注釋。/***第一個(gè)java程序*/publicclassDemo{/***main方法,程序的起點(diǎn)*/publicstaticvoidmain(String[]args){//向控制臺(tái)輸出System.out.println("這是我的第一個(gè)Java程序");}}第二章Java語(yǔ)法根底一、選擇題下面哪個(gè)單詞是Java語(yǔ)言的關(guān)鍵字〔 B 〕?Double B. this C. string D. bool下面屬于Java關(guān)鍵字的是〔 D 。NULL B. IF C. Do D. goto在啟動(dòng)Java應(yīng)用程序時(shí)可以通過(guò)main(方法一次性地傳遞多個(gè)參數(shù)如果傳遞的參數(shù)有多個(gè),可以用空格將這些參數(shù)分割;如果某一個(gè)參數(shù)本身包含空格,可以使用〔B 把整個(gè)參數(shù)引起來(lái)。單引號(hào) B. 雙引號(hào)下面哪個(gè)是Java語(yǔ)言中正確的標(biāo)識(shí)符〔BD5x B. $x C. abc D.Java語(yǔ)言中,以下標(biāo)識(shí)符錯(cuò)誤的選項(xiàng)是〔 D 。_abc B. abc C. ABC D. 5abc在Java中,整型常量不可以是〔 A 。double B. LongC. int D. byte在Java中,不屬于整數(shù)常量的是〔 D 。A. 100 B. 100LC. 0x100A D. 下面哪個(gè)語(yǔ)句能定義一個(gè)字符變量chr〔 B 。charchr=’abcd’; B. charchr=’\uabcd’;C. charchr=〞abcd〞; D. charchr=\uabcd;下面哪個(gè)是對(duì)字符串s1的不正確定義〔 CD 。A.Strings1=〞abcd〞;B.Strings1;C.Strings1=‘a(chǎn)bcd\0’;D.Strings1=〞\abcd〞;下面哪個(gè)X圍是char型的取值X圍〔 C 。A. -256~255 B. -(2^15)~(2^15)-1 C. \u0000’~‘\uffff’ D. 0~32767下面哪條語(yǔ)句不能定義一個(gè)float型的變量f1〔ABD 。A. floatf1=3.1415E10 B. floatf1=3.14 C. floatf1=3.1415F D. f1=3.14F以下運(yùn)算結(jié)果為float的是〔 C 。A. 100/10 B. 100*10 C. 100.0+10D. 100-10數(shù)組中可以包含什么類型的元素〔 D 。int型 B. string型 C. 數(shù)組 D. 以上都可以Java中定義數(shù)組名為xyz,下面哪項(xiàng)可以得到數(shù)組元素的個(gè)數(shù)〔 B 。xyz.length() B. xyz.length C. len(xyz) D. ubound(xyz)下面哪條語(yǔ)句定義了3個(gè)元素的數(shù)組〔 A 。int[]a={20,30,40}; B. inta[]=newint(3); C. int[3]array; D. int[]arr;二、簡(jiǎn)答題1、 Java有哪些根本的數(shù)據(jù)類型?寫出這些根本數(shù)據(jù)類型所占用的最大空間〔用字節(jié)描述。〔1〕數(shù)字型(number),具體又分為:a.整型(integers),整型又包括:①字節(jié)整數(shù)(byte,8bits)②短整數(shù)(short,16bits)③整數(shù)(int,32bits)④長(zhǎng)整數(shù)(long,64bits)b.實(shí)型(realnumbers),具體又分為:①單精度〔float,32bits〕②雙精度〔double,64bits〕〔2〕字符型(char,16-bitUnicode字符)〔3〕布爾型(boolean)。2、 說(shuō)明Java字符編碼的類型與特點(diǎn)。Java字符編碼的類型為Unicode,具有以下特點(diǎn):〔1〕Unicode是16比特的字符編碼,其支持當(dāng)前世界上絕大多數(shù)的語(yǔ)言;〔2〕Unicode給每個(gè)字符提供了一個(gè)唯一的編碼表示,不管是什么平臺(tái)、程序或語(yǔ)言;〔3〕Windows系統(tǒng)(Windows2000版本)、Java、XML、LDAP等已支持Unicode;〔4〕Unicode實(shí)現(xiàn)了ISO/IEC10646標(biāo)準(zhǔn)3、 寫出Java中六個(gè)常用的轉(zhuǎn)義字符。\b 退格\t 制表符\n 換行(Newline)\r 回車(Carriagereturn)\' 單引號(hào)4、 下面的幾個(gè)標(biāo)示符哪些是正確的,哪些是錯(cuò)誤的,如果是錯(cuò)誤的,請(qǐng)說(shuō)明原因MyClass,_isHis,3JavaProgram,_$asdf,Java-Visual-MachineMyClass:正確,符合標(biāo)識(shí)符的組成規(guī)那么。_isHis:正確,符合標(biāo)識(shí)符的組成規(guī)那么。3JavaProgram:錯(cuò)誤,因?yàn)榈?個(gè)符號(hào)不能為數(shù)字。_$asdf:正確,符合標(biāo)識(shí)符的組成規(guī)那么。Java-Visual-Machine:錯(cuò)誤,標(biāo)識(shí)符不能為保存字5、 說(shuō)出常量與變量的定義并舉例說(shuō)明。常量是指程序執(zhí)行過(guò)程中,值保持不變的量,類型劃分如下:整型常量實(shí)型常量布爾型常量字符型常量字符串常量起始最大整數(shù)(正)最大長(zhǎng)整數(shù)(正)舉例十進(jìn)制0,1~9214748364707L23,+567,-12,0,1234八進(jìn)制0777777L034,0175,-0777L十六進(jìn)制0x0x7FFFFFFF0x7FFFFFFFFFFFFFFFL0xFF,0x45L變量是指在程序執(zhí)行過(guò)程中,值可以改變的量,類型劃分為:整型變量、實(shí)型變量、字符型變量、字符串變量、布爾變量等。如:intx=2,就定義了一個(gè)整型變量x并且賦值為2。6、 什么是強(qiáng)制類型轉(zhuǎn)換?并說(shuō)明其運(yùn)用場(chǎng)合。顯型類型轉(zhuǎn)換是強(qiáng)制類型轉(zhuǎn)換,它是一種窄化轉(zhuǎn)換(narrowingconversion),如:doublea=1.5;floatb=a;System.out.println("b="+b);編譯:"possiblelossofprecision"數(shù)據(jù)精度喪失,數(shù)據(jù)喪失。強(qiáng)制類型轉(zhuǎn)換一般運(yùn)用在二元運(yùn)算符的二個(gè)操作數(shù)類型不同表達(dá)式值的類型與變量的類型不同7、 描述Java程序的構(gòu)成如何判斷Java程序的主類?下面的程序有哪些錯(cuò)誤并改正該程序的源代碼當(dāng)保存為什么名字的文件?PublicclassMyClass{Publicstaticvoidmain(){System.out.printIn(“mynameis…〞);}System.out.printIn(“theend!〞);}Java程序的主類中包含main(),而其它類中沒有;該程序的源代碼應(yīng)當(dāng)保存為MyClass.java。另外該程序中包含以下的錯(cuò)誤:Public定界符“〞應(yīng)當(dāng)改為"";printInprintln\System.out.printIn(“theend!8、構(gòu)造化程序設(shè)計(jì)有哪三種根本流程?分別對(duì)應(yīng)Java中的那些語(yǔ)句?/Javaif,if-else,嵌套的if-else,條件運(yùn)算符,switch-case。循環(huán)控制語(yǔ)句對(duì)應(yīng)Java中的for,while,do-while語(yǔ)句。跳轉(zhuǎn)/轉(zhuǎn)向語(yǔ)句對(duì)應(yīng)Java中的contonue,break,return語(yǔ)句。9、在一個(gè)循環(huán)中使用break,continue,return的差異。break:跳出(中止)循環(huán)continuereturn:方法返回10、數(shù)組的定義,特點(diǎn)與分類。如何進(jìn)展數(shù)組的初始化?數(shù)組的特點(diǎn):數(shù)組的類型可以是根本類型,或類和接口;數(shù)組中每個(gè)元素的類型一樣;引用數(shù)組元素0創(chuàng)立數(shù)組(分配內(nèi)存空間);釋放(Java數(shù)組分類:一維數(shù)組、多維數(shù)組。第三章面向?qū)ο蟮膶?shí)現(xiàn)一、選擇題在Java中,用package說(shuō)明一個(gè)包時(shí),該包的層次構(gòu)造必須是〔 B 。與文件的構(gòu)造一樣 B. 與文件的目錄層次一樣C. 與文件的類型一樣 D. 與文件大小一樣以下構(gòu)造方法的調(diào)用方式中,正確的選項(xiàng)是〔 C 。按照一般方法調(diào)用 B. 由用戶直接調(diào)用C. 可通過(guò)new自動(dòng)調(diào)用 D. 被系統(tǒng)調(diào)用int型public成員變量MAX_LENGTH,該值保持為常數(shù)100,那么定義這個(gè)變量的語(yǔ)是〔 D 。publicintMAX_LENGTH=100 B. finalintMAX_LENGTH=100C. publicconstintMAX_LENGTH=100 D. publicfinalintMAX_LENGTH=100在Java中,以下表達(dá)不正確的選項(xiàng)是〔 B 〕構(gòu)造方法名與類名一樣。構(gòu)造方法不是用來(lái)完成初始化的。構(gòu)造方法由new操作調(diào)用,而不能被用戶直接調(diào)用。構(gòu)造方法沒有返回類型。在Java中,下面的表達(dá)哪個(gè)是不正確的?〔 D 〕類的靜態(tài)方法可以在該類的對(duì)象被創(chuàng)立前調(diào)用類的靜態(tài)方法不能訪問該類的非靜態(tài)方法abstract修飾符可以出現(xiàn)在類或方法的前面,但不能出現(xiàn)在變量之前final修飾符可以出現(xiàn)在類或變量之前,但不能出現(xiàn)在方法之前在Java里,以下選項(xiàng)〔 D 〕不是實(shí)現(xiàn)面向?qū)ο笏枷氲臋C(jī)制。封裝 B. 繼承C. 多態(tài) D. 數(shù)據(jù)類型轉(zhuǎn)換類Worker是類PersonWorker"super(〔 〕調(diào)用類Worker中定義的super(調(diào)用類Person中定義的super()方法調(diào)用類Person語(yǔ)法錯(cuò)誤給定Java程序,如下:編譯運(yùn)行Test.java,結(jié)果是〔 C publicclassTest{privatestaticfinalintcounter=10;publicstaticvoidmain(String[]System.out.println(counter++);}}A. 10 B. 11C. 編譯錯(cuò)誤 D. 運(yùn)行時(shí)出現(xiàn)異常給定如下Java代碼,編譯時(shí)會(huì)在〔 D 〕出現(xiàn)錯(cuò)誤〔只選擇一項(xiàng)classParent{}classChildextendsParent{publicstaticvoidmain(String[]args){Parentp1=newChild(); //Parentp2=newParent();//第二行Childc1=newChild();//第三行Childc2=newParent();//第四行}}A.第一行B.第二行C.第三行D.第四行在Java中,某類方法使用以下〔 BC 〕訪問修飾符修飾后,可以被其的子類訪問。private B. protectedC. public D. friendly在JavaabstractclassShape{abstractvoiddraw();}classSquareextendsShape{}以下描述正確的選項(xiàng)是〔 B 〕一切成功編譯Shape可以編譯,Square不能編譯Square可以編譯,Shape不能編譯Square,Shape分析以下Java代碼:classA{publicstaticvoidmain(String[]args){method();}staticvoidmethod(){System.out.println("Hello");System.exit(0);System.out.println("good-bye");}}編譯運(yùn)行輸出結(jié)果( A )。"Hello" B. "good-bye"C. "Hello"后面"good-bye" D. 代碼不能編譯下表是final修飾符與變量、方法、類等一起作用的結(jié)果的對(duì)應(yīng)表,但是對(duì)應(yīng)關(guān)系存錯(cuò)誤,請(qǐng)選擇正確的對(duì)應(yīng)關(guān)系〔 C 〕概念作用變量 A不能再產(chǎn)生子類方法 B一旦賦值,就不能更改類 C不能在子類中覆A. 1-A 2-B 3-CB. 1-C 2-A 3-BC. 1-B 2-C 3-AD. 1-C 2-B 3-A有以下程序:publicclassConstOver{publicConstOver(intx,inty,intz){}}下面哪個(gè)方法重載了上面的ConstOver構(gòu)造方法?〔 B 〕protectedintConstOver(){}privateConstOver(intz,inty,bytex){}publicobjectConstOver(intx,inty,intz){}publicvoidConstOver(bytex,bytey,bytez){}有以下程序:classBaseClass{privatefloatx=1.0f;publicfloatgetVar()(returnx;)}classSubclassextendsBaseClass{privatefloatx=2.0f;//insertcodehere}下面哪個(gè)方法加到程序中的“//insertcodehere〞位置是有效的重定義父類的方法〔 B 〕protectedfloatgetVar(){returnx;}publicfloatgetVar(){returnx;}protectedfloatdoublegetVar(){returnx;}publicfloatgetVar(floatf){returnf;}指出以下程序運(yùn)行的結(jié)果〔 B publicclassExample{Stringstr=newString("good");char[]ch={'a','b','c'};publicstaticvoidmain(String[]args){Exampleex=newExample();ex.change(ex.str,ex.ch);System.out.print(ex.str+"and");System.out.print(ex.ch);}publicvoidchange(Stringstr,charch[]){str="testok";ch[0]='g';}}goodandabc B. goodandgbcC. testokandabc D. testokandgbc以下哪些語(yǔ)句關(guān)于內(nèi)存回收的說(shuō)明是正確"〔 B 〕程序員必須創(chuàng)立一個(gè)線程來(lái)釋放內(nèi)存;內(nèi)存回收程序負(fù)責(zé)釋放無(wú)用內(nèi)存;內(nèi)存回收程序允許程序員直接釋放內(nèi)存;內(nèi)存回收程序可以在指定的時(shí)間釋放內(nèi)存對(duì)象。創(chuàng)立一個(gè)名為“MyClass.java〞的文件該文件中只有一個(gè)可被整個(gè)工程中的所有類訪的類,那么該類的正確聲明應(yīng)為〔 C 〕A. privateclassMyClassextendsObjectB.classTestClassextendsObjectC. publicclassMyClassD.publicclassTestClass19. 以下表達(dá)中,錯(cuò)誤的選項(xiàng)是( A)內(nèi)部類的名稱與定義它的類的名稱可以一樣內(nèi)部類可用abstract內(nèi)部類可作為其他類的成員內(nèi)部類可訪問它所在類的成員用于在子類中調(diào)用被重寫的父類方法的關(guān)鍵字是( B )thissuperThisSuper下面程序輸出結(jié)果是〔 A publicclassDelta{staticbooleanfoo(charc){System.out.print(c);returntrue;}publicstaticvoidmain(String[]argv){inti=0;for(foo('A');foo('B')&&(i<2);foo('C')){i++;foo('D');}}}ABDCBDCBABCDABCD編譯錯(cuò)誤運(yùn)行時(shí)異常以〔 B修飾符可以使在一個(gè)類中定義的成員變量只能被同一包中的訪問。privateC. public

B. 無(wú)修飾符D. protected給出以下代碼,如何使成員變量m被方法fun(直接訪問?〔 C classTest{privateintm;publicstaticvoidfun(){...}}將privateintm改為protectedintmB. 將privateintm改為publicintmC. 將privateintm改為staticintmD. 將privateintm改為intm有以下類的說(shuō)明,那么以下哪個(gè)語(yǔ)句是正確的?〔 A publicclassTest{privatefloatf=1.0f;intm=12;staticintn=1;publicstaticvoidmain(String[]args){Testt=newTest();}}t.f; B. this.n;C. Test.m; D. Test.f;以下代碼的執(zhí)行結(jié)果是〔 A publicclassTest{publicvoidaMethod(){staticinti=0;i++;System.out.println(i);}publicstaticvoidmain(String[]args){Testtest=newTest();test.aMethod();}}編譯錯(cuò)誤 B. 0C. 1 D. 運(yùn)行成功,但不輸出假設(shè)特快訂單是一種訂單,那么特快訂單類和訂單類的關(guān)系是〔 C 〕A.使用關(guān)系B.包含關(guān)系C.繼承關(guān)系D.無(wú)關(guān)系以下代碼中,將引起一個(gè)編譯錯(cuò)誤的行是〔 D 1〕publicclassTest{2〕 intm,n;3〕 publicTest(){ }4〕 publicTest(inta){m=a;}5〕 publicstaticvoidmain(String[]6〕 Testt1,t2;7〕 intj,k;8〕j=0;k=0;9〕t1=newTest();10〕t2=newTest(j,k);11〕 }12〕}A. 第3行C. 第6行B.D.第5行第10行以下表達(dá)中,錯(cuò)誤的選項(xiàng)是〔 D 〕父類不能替代子類 B. 子類能夠替代父類C. 子類繼承父類 D. 父類包含子類二、程序閱讀題1、寫出以下程序的結(jié)果:publicclassTest{privatestaticvoidprintArray(int[]arr) for(inti=0;i<arr.length;i++)System.out.print(arr[i]+〞,〞);System.out.println(“\n〞);}privatestaticvoidchangeValue(intvalue){value*=2;}privatestaticvoidchangeValue(int[]arr){for(inti=0;i<arr.length;i++)arr[i]*=2;}publicstaticvoidmain(String[]args){int[]arr={1,2,3,4,5};changeValue(arr[0]);printArray(arr);changeValue(arr);printArray(arr);}}運(yùn)行結(jié)果:1,2,3,4,5,2,4,6,8,10,2、指出以下程序的錯(cuò)誤,并改正:publicclassMain{publicstaticfinalAobj=null;publicstaticvoidmain(String[]args){obj=newA();}}classA{}錯(cuò)誤:final的對(duì)象不能改變。3、指出以下程序的錯(cuò)誤,并改正:publicclassTest{publicstaticvoidmain(String[]args){MyClassobj=newMyClass();obj.Info+=〞,World!〞;System.out.println(obj.Info);}}classMyClass {publicStringInfo=〞Hello〞;publicMyClass(StringInfo){this.Info=Info;}}錯(cuò)誤:MyClassobj=newMyClass();找不到匹配的構(gòu)造方法。4、指出下面程序的錯(cuò)誤,并改正:abstractclassAnimal {publicabstract voidsaySomething() {System.out.println(“}}classDogextendsAnimal{publicvoidsaySomething()System.out.println(“我現(xiàn)在有了第二職業(yè):捉耗子!〞);}}publicclassTest{publicstaticvoidmain(String[]args){Animalani=newDog();ani.saySomething();}}錯(cuò)誤:publicabstractvoidsaySomething()抽象方法不能有方法體。三、簡(jiǎn)答題1、簡(jiǎn)述繼承、方法重寫和抽象類如何支持多態(tài)性?〔略〕2、解釋什么是方法重載和重定義,并舉例說(shuō)明他們的作用。〔略〕3、說(shuō)明抽象類與接口的區(qū)別。〔略〕4、什么是垃圾回收,它是如何工作的?什么是finalize()?〔略〕5、舉例說(shuō)明this關(guān)鍵字的作用?〔略〕6、舉例說(shuō)明java中枚舉類型的用法。〔略〕第四章異常和異常處理一、選擇題以下〔 A 〕和〔 C 〕是Throwable的直接子類。Error B. NullPointerExceptionC. ExceptionD.Assert2.能單獨(dú)和finally塊一起使用的塊是〔A. tryA 〕B. catchC. throwD. throws以下異常類中,在多重catch中同時(shí)使用時(shí)〔 C 〕異常類的catch塊應(yīng)該最后列出?NullPointerException B. ArithmeticExceptionC. Exception D. ArrayIndexOutOfBoundsException程序讀入用戶輸入的一個(gè)值,要求創(chuàng)立一個(gè)自定義的異常,如果輸入值大于10,使throw語(yǔ)句顯式地引發(fā)異常,異常輸出信息"something語(yǔ)句為〔 C 。if(i>10)throwException("somethingwrong!");if(i>10)throwExceptione("somethingwrong!");if(i>10)thrownewException("somethingwrong!");if(i>10)thrownewExceptione("somethingwrong!");分析以下Java代碼:classA{publicstaticvoidmain(String[]args){method();}staticvoidmethod(){try{}finally{}}}

System.out.println("Hello");System.exit(0);System.out.println("good-bye");編譯運(yùn)行輸出結(jié)果是〔 A 〕A.HelloB.good-byeC.HelloD.代碼不能編譯good-bye關(guān)于捕獲錯(cuò)誤的語(yǔ)法try-catch-finally的以下描述正確的選項(xiàng)是〔 C 。try必須和catch搭配使用try可以單獨(dú)使用try-finally在try塊后如果定義了finally,那么不能再定義catch在Java中,假定有一個(gè)包含引起異?!膊皇且籖untimeException〕的代碼的方法,什么方式告訴方法的調(diào)用者要捕獲該異常〔 B 〕A. throwExceptionB.throwsExceptionC. newExceptionD.不用特別指定考慮以下JAVA代碼:classA{publicstaticvoidmain(String[]args){try{System.out.println("Hello,World!");}}}這段代碼錯(cuò)誤的原因是〔 A 。沒有catch和finally沒有拋出異常的代碼不能出現(xiàn)在try代碼塊內(nèi)如果沒有catch塊而使用try,main(classA沒有throwsIOException考慮一下代碼,編譯運(yùn)行之后,會(huì)〔 D Strings=null;System.out.println(s.charAt(0));輸出null沒有輸出編譯錯(cuò)誤編譯成功,但是運(yùn)行時(shí)報(bào)NullPointerException研究下面的Java代碼:publicclasstestException{publicstaticvoidmain(String[]args){inta[]={0,1,2,3,4};intsum=0;try{for(inti=1;i<6;i++)sum=sum+a[i];System.out.println("sum="+sum);}catch(ArrayIndexOutOfBoundsExceptione){System.out.println("數(shù)組越界");}finally{System.out.println("程序完畢");}}}輸出結(jié)果將是〔 C 。10數(shù)組越界程序完畢10程序完畢數(shù)組越界程序完畢程序完畢第五章java.lang包和字符串一、 選擇題Java編程所必須的默認(rèn)引用包為〔 B 〕java.sys包 B. java.lang包C. java.new包 D. 以上都不是在Java中,所有類的根類是〔 A 〕java.lang.Object B. java.lang.ClassC. java.applet.Applet D. java.awt.Frame設(shè)有下面兩個(gè)賦值語(yǔ)句:x1=Integer.parseInt("123");x2=Integer.valueOf("123").intValue();下述說(shuō)法正確的選項(xiàng)是〔 D x1為int型變量,為Integer類的對(duì)象x2為int型變量,為Integer類的對(duì)象x1、x2均為Integerx1、x2int在Java中,存放字符串常量的對(duì)象屬于〔 B 〕類對(duì)象。Character B. StringC. StringBuffer D. Vector如下定義:Stringstr="Ilove";下面〔 D 〕表達(dá)式是合法的。charch=str[0]; B. intlen=str.length;C. Stringto=str.delete(1,2); D. str+="China";設(shè)有以下程序段,執(zhí)行后,屏幕輸出〔 A Strings1="Ilove"+"China";Strings2=newString(s1);if(s1==s2)System.out.println("==");if(s1.equals(s2)==true)System.out.print("equals");equals B. == C. ==equals D. 不輸出以下方法中,不屬于類String的方法是〔 D 。toLowerCase() B. replace() C. charAt() D. append()有以下程序:publicclassaa{publicstaticvoidmain(String[]args){Strings="18.03";try{doublenumber1=Double.parseDouble(s);System.out.print(number1);intnumber2=Integer.parseInt(s);System.out.println(""+number2);}catch(NumberFormatExceptionnfe){System.out.println("Sorry");}catch(Exceptione){}}}執(zhí)行結(jié)果是〔CA. 18.03B.SorryC. 18.03SorryD.程序編譯錯(cuò)誤第六章java.lang包和字符串一、選擇題以下〔A〕集合不能含有重復(fù)元素。Set B. List C. Map D. Collection當(dāng)元素個(gè)數(shù)固定時(shí),使用〔 D 〕集合查找效率最高。Set B. List C. Map D. Arrays你希望存儲(chǔ)少量數(shù)據(jù)并能快速訪.你并不需要排序這些數(shù)據(jù),那種數(shù)據(jù)構(gòu)造最適合種需"〔 D 〕TreeSet B. HashMap C. LinkedList D.數(shù)組欲構(gòu)造ArrayList類的一個(gè)實(shí)例此類繼承了List接口以下哪個(gè)方法是正確的〔B 〕ArrayListmyList=newObject();ListmyList=newArrayList();ArrayListmyList=newList();ListmyList=newList();關(guān)于HashMap和TreeMap類,判斷以下那種說(shuō)法是正確的?〔 A 〕它們都能方便地定位映射中的值對(duì)象它們都實(shí)現(xiàn)了SortedMap它們都能高效地按照順序遍歷鍵以上說(shuō)法都不對(duì)以下哪個(gè)不是Iterator接口所定義的方法?〔 D 〕hasNext() B. next() C. remove() D. nextElement()關(guān)于鏈表構(gòu)造,陳述錯(cuò)誤的選項(xiàng)是哪個(gè)?〔 B 〕鏈表可動(dòng)態(tài)增長(zhǎng)在鏈表中查找對(duì)象是最有效的鏈表中的元素可以重復(fù)通常情況下,向鏈表中插入元素的效率高于向ArrayList中插入元素的效率Java語(yǔ)言的集合框架類定義在〔 B 〕語(yǔ)言包中。java.lang B. java.util C. java.array D.java.collectionsSet集合如何處理重復(fù)的元"〔 B 〕如果試圖向Set集合中添加一個(gè)與集合中已有元素值一樣的元素時(shí),將拋出異常如果試圖向Set方法返回false如果試圖向Set誤可以在Set集合中添加一個(gè)與集合中已有元素值一樣的元素以下哪項(xiàng)是正確〔 D 〕CollectionCollection接口中提供了enumeratorinterator方法返回Vector實(shí)現(xiàn)Set給定以下java代碼:importjava.util.*;publicclassLetterASort{publicstaticvoidmain(String[]args){ArrayList<String>strings=newArrayList<String>(strings.add("aAaA");strings.add("AaA");strings.add("aAa");strings.add("AAaa");Collections.sort(strings);for(Strings:strings){System.out.print(s+"");}}}對(duì)該程序編譯運(yùn)行,結(jié)果是〔C〕。編譯失敗aAaAaAaAAaaAaAAAaaAaAaAaaAaAAaAAAaaaAaAaAaaAaAaAaAaAAAaa運(yùn)行時(shí)拋出異常給定以下java代碼://在這里插入privateNmin,max;publicNgetMin(){returnmin;}publicNgetMax(){returnmax;}publicvoidadd(Nadded){if(min==null||added.doubleValue()<min.doubleValue())min=added;if(max==null||added.doubleValue()>max.doubleValue())max=added;}}選擇以下哪兩行中任一行插入指定位置,程序可以通過(guò)編譯。〔 AC 〕publicclassMinMax<NextendsNumber>{publicclassMinMax<"extendsNumber>{publicclassMinMax<NextendsObject>{publicclassMinMax<">{publicclassMinMax<"extendsObject>{publicclassMinMax<NextendsInteger>{給定以下java代碼:importjava.util.*;publicclassOld{publicstaticObjectget(Listlist){returnlist.get(0);}}以下選項(xiàng)中,哪三個(gè)能編譯成功?〔ADE〕Objecto=Old.get(newLinkedList());Objecto=Old.get(newLinkedList<">());Strings=Old.get(newLinkedList<String>());Objecto=Old.get(newLinkedList<Object>());Strings=(String)Old.get(newLinkedList<String>());給定以下javapublicvoidtakeList(List<"extendsString>list){//在這里插入}將以下哪些語(yǔ)句插入指定位置,能夠編譯成功?〔 D 〕list.add("STRING");list=newArrayList<String>();list=newArrayList<Object>();Strings=list.get(0);Objecto=list;給定以下javapublicclassScoreimplementsparable<Score>{privateintwins,losses;publicScore(intw,int1){wins=w;losses=1;}publicintgetWins(){returnwins;}publicintgetLosses(){returnlosses;}publicStringtoString(){return"<"+wins+","+losses+">";}//在這里插入代碼}以下哪個(gè)方法能完成這個(gè)類?〔 B 〕publicintpareTo(Objecto)*/}publicintpareTo(Scoreother)*/}publicintpare(Scores1,Scores2){/*這里是實(shí)現(xiàn)代碼*/}publicintpare(Objecto1,Objecto2){/*這里是實(shí)現(xiàn)代碼*/}給定以下javapublicstaticvoidappend(Listlist){list.add(〞0042〞);}publicstaticvoidmain(String[]args){List<Integer>intList=newArrayList<Integer>();append(intList);System.out.println(intList.get(0));}對(duì)該程序編譯運(yùn)行,結(jié)果是〔 D 。42B. 0042運(yùn)行時(shí)發(fā)生異常編譯錯(cuò)誤二、閱讀程序,并填空。有以下程序:publicclassGen<T>{private T publicGen_( T object)this.object=object;}public T getObject()returnobject;}publicstaticvoidmain(String[]args){Gen<String>str=newGen<String>(“[answer]〞);Gen<Integer>intg=newGen<Integer>(42);System.out.println(str.getObject()+“=〞+intg.getObject());}}該程序運(yùn)行結(jié)果為42,請(qǐng)將以下選項(xiàng)填入下劃線內(nèi)。注意每個(gè)選項(xiàng)均可重復(fù)選擇。Gen<T>Gen<">Gen"T有以下程序:importpublicclassMyInt implements privateinti;publicMyInt(inti){this.i=i;}publicStringtoString(){returnInteger.toString(i);public int pareTo(Objecto){MyInti2=(MyInt)o;return i-i2.i;}publicstaticvoidmain(String[]args){ArrayList<MyInt>list=newArrayList<MyInt>();list.add(newMyInt(2));list.add(newMyInt(1));Collections.sort(list);System.out.println(list);}}該程序運(yùn)行結(jié)果為[1,2],請(qǐng)將以下選項(xiàng)填入下劃線內(nèi)。implementsObjectparableprotectedpublici-i2.iii2.i–ipare(MyInto,MyInti2)pare(Objecto,Objecti2)pareTo(MyInto)pareTo(Objecto)三、綜合編程題1. =3,a=8,……,a

+2a ,使用堆棧構(gòu)造輸出

的假設(shè)干項(xiàng)。1 2 n n-1 n-2 nimportjava.util.HashMap;publicclassNumNameMap{publicstaticvoidmain(String[]args){HashMap<String,String>stu=newHashMap<String,String>();stu.put("1","list");stu.put("2","Bill");stu.put("3","Ann");System.out.println(stu);}}2. 有如下的類:publicclassNumberList{privateArrayListal;publicNumberList(int[]value){//將數(shù)組value中的元素添加到al中}Mapcount(){//統(tǒng)計(jì)al對(duì)保存到Map}}要求如下:〔1〕按注釋中的要XX現(xiàn)其中的方法。〔2〕定義一個(gè)測(cè)試類,用以驗(yàn)證NumberList類的正確性。importjava.util.ArrayList;importjava.util.HashMap;importjava.util.HashSet;importjava.util.Iterator;importjava.util.Map;classNumberList{privateArrayListal;publicNumberList(int[]value){//將數(shù)組value中的元素添加到al中al=newArrayList();for(inti=0;i<value.length;++i)al.add(value[i]);}publicMap<Integer,Integer>count(){//統(tǒng)計(jì)al中每個(gè)元素出現(xiàn)的次數(shù),并將“元素值,這個(gè)元素出現(xiàn)的次數(shù)〞作為鍵值對(duì)保存到對(duì)象中HashSetset1=newHashSet();set1.addAll(al);HashMaphm=newHashMap();Iteratorit=set1.iterator();while(it.hasNext()){intn=(int)it.next();hm.put(n,0);}it=al.iterator();while(it.hasNext()){intn=(int)it.next();hm.put(n,(int)hm.get(n)+1);}returnhm;}publicstaticvoidmain(String[]args){int[]arr={1,3,2,4,7,1,1,3,4,8};NumberListnl=new NumberList(arr);Map<Integer,Integer>hm=nl.count();System.out.println(hm);}}第七章輸入輸出和序列化一、選擇題下面關(guān)于System.out的說(shuō)法哪個(gè)正確?〔 ABC 〕System.out是一個(gè)PrintStreamSystem.out是一個(gè)OutputStreamSystem.out是一個(gè)FilterOutputStreamSystem.out不是一個(gè)PrintStream下面哪個(gè)語(yǔ)句可以建立文件“file.txt〞的字節(jié)輸入流?〔 D 〕InputStreamin=newInputStream("file.txt")InputStreamin=newFileReader("file.txt")FileInputStreamin=newFileOutputStream("file.txt")FileInputStreamin=newFileInputStream("file.txt")當(dāng)前文件系統(tǒng)中已經(jīng)存在了文件file.txt,該文件包涵有ASCIItry{Filef=newFile("file.txt");outputStreamout=newFileOutputStream(f,true);}catch(IOException){}結(jié)果是什么?〔 B 〕代碼不能編譯代碼可以編譯并運(yùn)行,對(duì)該文件不會(huì)有改變代碼可以編譯并運(yùn)行,并將該文件的長(zhǎng)度設(shè)置為0拋出異常,因?yàn)樵撐募]有關(guān)閉代碼可以編譯運(yùn)行,并從文件系統(tǒng)中刪除該文件。下面哪個(gè)選項(xiàng)可以將〞字符寫入文件file.txt的末尾?〔 B 〕OutputStreamout=newFileOutputStreamOut.writeBytes("hello");OutputStreamos=newFileOutputStream("file.txt",DataOutputStreamout=newDataOutputStream(os);out.writeBytes("hello");OutputStreamos=newFileOutputStream("file.txt");DataOutputStreamout=newDataOutputStream(os);out.writeBytes("hello");OutputStreamos=newOutputStream("file.txt",DataOutputStreamout=newDataOutputStream(os);out.writeBytes("hello");哪個(gè)類是FilterOutputStreamB〕InputStreamOutputStreamFileRandomAccessFile/r

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論