(完整word版)java期末復(fù)習(xí)題含答案及詳解_第1頁
(完整word版)java期末復(fù)習(xí)題含答案及詳解_第2頁
(完整word版)java期末復(fù)習(xí)題含答案及詳解_第3頁
(完整word版)java期末復(fù)習(xí)題含答案及詳解_第4頁
(完整word版)java期末復(fù)習(xí)題含答案及詳解_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一、選擇題(共20分)1.下列輸出結(jié)果是()int a = 0 ;while ( a < 5 ) switch(a)case 0:case 3 : a = a + 2;case 1 :case 2 : a = a + 3;default : a = a + 5; System.out.print ( a );答案:10解析:由于每個case后面沒有使用break結(jié)束循環(huán),導(dǎo)致程序從上往下逐條運行。2 .被聲明為private, protected及public的類成員,在類外部()A)只能訪問到聲明為protected和public的成員 B)都可以訪問C)只能訪問聲明為public的成

2、員D)都不能訪問答案:A解析:private只能被類內(nèi)部訪問,子類(未在父類內(nèi)部)可以訪問父類 protected類型成員,其他類可以訪 問其public類型成員。3 .在Java語言中,下列關(guān)于類的繼承的描述,正確的是()。A) 一個類可以繼承多個父類B) 一個類可以具有多個子類C)子類可以使用父類的所有方法D)子類一定比父類有更多的成員方法答案:B解析:A錯,一個類只能有一個父類;C錯,父類的私有方法就不可被子類訪問并使用;D錯,繼承關(guān)系是對父類功能的擴展,根據(jù)實際情況完全可以只擴展1個功能,并不意味著成員方法比父類多。4 .類Teacher和Student都是類People的子類Peop

3、le p;Teacher t;Student s;若p,t和s都是非空值,并且new時聲明的都是本類if(t instanceof People) s = (Student)t; 這個語句導(dǎo)致的結(jié)果是什么?()A)表達式合法B)編譯時非法C)將構(gòu)造一個Student對象D)編譯時合法而在運行時可能非法答案:B解析:instanceof 操作符用于判斷左邊的引用對象是否是右邊的類,或者其子類、實現(xiàn)類的實例。此題中的if語句的判斷沒有問題,將返回真。但是后面的類型轉(zhuǎn)換是非法的,因為t是一個Teacher對象,它不能被強制轉(zhuǎn)換為一個 Student對象,即使這兩個類有共同的父類。如果是將 t轉(zhuǎn)換為一

4、個Person對 象則可以,而且不需要強制轉(zhuǎn)換。這個錯誤在編譯時就可以發(fā)現(xiàn),因此編譯不能通過。5 .下列值不為true的表達式有()。A) "tomy" = = "tomy"B) "tomy".equals("tomy")C) "tomy" = "tomy"D) "tomy".equals(new String("tomy")答案:C解析:賦值符號“=”的左端必須是一個變量,顯然C選項在編譯時就會出錯,故其值不可能為true。6 .關(guān)于

5、接口哪個正確? ()A)接口和抽象類是同一回事B)一個類只能實現(xiàn)一個接口C)接口間不能有繼承關(guān)系D)實現(xiàn)一個接口必須實現(xiàn)接口的所有方法答案:D解析:A錯,接口是一種規(guī)范機制,他作為系統(tǒng)與外部交互的窗口,它既規(guī)定了實現(xiàn)著必須向外提供哪些服務(wù),也規(guī)定了調(diào)用者可以調(diào)用哪些服務(wù),以及如何調(diào)用這些服務(wù)。抽象類是作為系統(tǒng)中多個子類的父類,體現(xiàn)的是一種模板設(shè)計。B錯,一個類可以直接實現(xiàn)多個接口,通過實現(xiàn)多個接口可以彌補Java單繼承的不足。C錯,接口支持多繼承,一個接口可以有多個直接父接口,與類繼承相似,子接口擴展某個父接口, 將會獲得父接口里的所有抽象方法、常量。7 .下列關(guān)于Java語言特性的描述中,錯

6、誤的是()A)支持多線程操作B)JAVA程序與平臺無關(guān)C)支持單繼承和多繼承D) JAVA程序可以直接訪問Internet上的對象答案:C解析:Java是一門單繼承語言,雖然一個類可以實現(xiàn)多個接口,在表面上表現(xiàn)出“多繼承”的樣子,但那 并不是真正意義上的“多繼承”,只能稱作一個類實現(xiàn)了多個接口。8 .以下關(guān)于抽象類和接口的說法錯誤的是()A)抽象類在Java語言中表示的是一種繼承關(guān)系,一個類只能使用一次繼承。但是一個類卻可以實現(xiàn) 多個接口。TB)在抽象類中可以沒有抽象方法TC)實現(xiàn)抽象類和接口的類必須實現(xiàn)其中的所有方法,除非它也是抽象類。接口中的方法都不能被實 現(xiàn)TD)接口中定義的變量默認是p

7、ublic static final型,且必須給其初值,所以實現(xiàn)類中不能重新定義,也不能改變其值。TE)接口中的方法都必須加上public關(guān)鍵字。答案:E解析:接口中的成員在被定義時完全可以省略訪問控制符,系統(tǒng)會默認使用public訪問控制修飾符。如果非要指定訪問控制符,則只能使用public訪問控制修飾符。9 .下列Java語言中可用的注釋符,其中錯誤的是()A)/ B)/*.*/C) I*.*/D)/*答案:D解析:“/”是單行注釋符,"/*.*/”是多行注釋符,"/*.*/”是文檔注釋符。D選項為非法符號。10 .下列關(guān)于變量作用域的描述,錯誤的是()A)在方法中作用

8、域可嵌套,在嵌套的作用域中可以定義同名變量。B)在類中定義的變量的作用域在該類中的方法內(nèi)是可以使用的C)在方法中定義的變量的作用域僅在該方法內(nèi)D)在某個作用域定義的變量,僅在該作用域內(nèi)是可見的,而在該作用域外是不可見的 答案:A解析:方法中的作用域可以嵌套,但嵌套的作用域中不能出現(xiàn)同名變量否則會出現(xiàn)名命沖突。11 .類與對象的關(guān)系是()。A)對象是類的子類B)對象是類的抽象C)類是對象的抽象D)類是對象的具體實例答案:C解析:對某一類對象的屬性和功能的抽象便得到了類,而一個對象便是某一個類的具體化或?qū)嵗?2 .在類的修飾符中,規(guī)定只能被同一包類所使用的修飾符是()A) public B)默

9、認 C) finalD) abstract答案:B解析:用public修飾的類、類屬變量及方法,包內(nèi)及包外的任何類(包括子類和普通類)均可以訪問。默認訪問權(quán)限的類、類屬變量及方法,包內(nèi)的任何類(包括繼承了此類的子類)都可以訪問它,而對于包外的任何類都不能訪問它(包括包外繼承了此類的子類)。final修飾符是用來修飾類、變量和方法的,用來表示它所修飾的類、方法和變量不可再改變。abstract是定義抽象類或抽象方法時使用的修飾符。13 .下列關(guān)于類的繼承性的描述中,錯誤的是 ()A)繼承是在已有的基礎(chǔ)上生成新類的一種方法B)子類繼承父類的所有成員C) Java語言要求一個子類只有一個父類D)父類

10、中成員的訪問權(quán)限在子類中將被改變答案:D解析:子類對從父類繼承來的成員只有重寫或使用的權(quán)限,并不能修改父類成員的訪問權(quán)限。14 .下列選項中關(guān)于Java中super關(guān)鍵字的說法正確的是()。A) super關(guān)鍵字是在子類對象內(nèi)部指代其父類對象的引用B) super關(guān)鍵字不僅可以指代子類的直接父類,還可以指代父類的父類C)子類通過super關(guān)鍵字只能調(diào)用父類的方法,而不能調(diào)用父類的屬性D)子類通過super關(guān)鍵字只能調(diào)用父類的屬性,而不能調(diào)用父類的方法答案:A解析:super關(guān)鍵字只能指代直接父類對象的引用,因此既可以調(diào)用直接父類的屬性,也可以調(diào)用父類方 法。15 .以下對于方法覆蓋(overr

11、iding)的說法不正確的有()。A)方法覆蓋發(fā)生在同一類中B)方法的覆蓋發(fā)生在子類型中C)參數(shù)一定要一樣D)方法名一定要一樣答案:A解析:方法覆蓋即重寫,該現(xiàn)象只能出現(xiàn)在子類繼承父類后,子類重寫父類方法時發(fā)生。16 .下面對對象概念描述錯誤的是:()A)操作是對象的動態(tài)屬性B)任何對象都必須有繼承性C)對象間的通訊靠消息傳遞D)對象是屬性和方法的封裝體答案:B解析:比如數(shù)字 2,它是整型類對象實例,確實是一個對象,但它卻無法被繼承,故沒有繼承性。因此, 對象不都必須有繼承性。17 .下列關(guān)于字符串的描敘中錯誤的是()(選擇兩項)A)字符串是對象B) String對象存儲字符串的效率比Stri

12、ngBuffer高C)可以使用StringBuffer sb="這里是字符串"聲明并初始化 StringBuffer對象sbD) String類提供了許多用來操作字符串的方法:連接,提取,查詢等答案:BC解析:String既屬于引用類型也屬于基礎(chǔ)數(shù)據(jù)類型,而且內(nèi)容是靜態(tài)的,在通常情況效率高些,但如果涉及到連接字符串的時候,對于String每次連接都要重新分配內(nèi)存,相比之下StringBuffer效率在此時反而高一些,故 B選項錯誤。C選項的聲明并初始化sb的命令應(yīng)為:StringBuffer sb = new StringBuffer( "xiajsiaxbai&

13、quot; );18 .對象的特征在類中表示為變量,稱為類的()。A)對象B)屬性C)方法D)數(shù)據(jù)類型試卷編號:1-B第4頁共11頁答案:B解析:類中的成員在類中表現(xiàn)出什么樣的特征就相當于類的對應(yīng)成員。變量在類中只可能做屬性。19 .應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是()。String s = "xxx#678#9123#zzzzz"int n = s.indexOf("#");int k = s.indexOf("#", n+1);String s2 = s.substring(n+1, k+4);System. o

14、ut .println(s2);答案:678#912解析:indexof( S1")表示返回字符"s1"的索引。indexof( S1" , index)表示查找字符串中的字符 s1從第index 個開始查找,返回所在字符的索引。substring(a, b)表示截取包含索引 a處的字符開始到不包含索引 b處的字 符為止的字符串。故 n=3,k=7。從而S2= "678#912”。20 .覆蓋與重載的關(guān)系是()A)覆蓋方法可以不同名,而重載方法必須同名B)覆蓋與重載是同一回事C) final修飾的方法可以被覆蓋,但不能被重載D)覆蓋只有發(fā)生在父

15、類與子類之間,而重載可以發(fā)生在同一個類中答案:D解析:此處的覆蓋表示重寫,重寫發(fā)生在繼承關(guān)系中即父類與子類之間。函數(shù)名相同,函數(shù)的參數(shù)列表不同(包括參數(shù)個數(shù)和參數(shù)類型 ),返回類型可同可不同的現(xiàn)象叫重載。21 .在Java中,下面對于構(gòu)造函數(shù)的描述錯誤的是()(選擇兩項)A)類不一定要顯式定義構(gòu)造函數(shù)8) 一個類可以定義多個構(gòu)造函數(shù)C)如果構(gòu)造函數(shù)不帶任何參數(shù),那么構(gòu)造函數(shù)的名稱和類名可以不同D)構(gòu)造函數(shù)的返回類型是 void答案:CD解析:構(gòu)造函數(shù)名與類名必須一樣,C錯。構(gòu)造函數(shù)無返回值類型。D錯。22 .下列代碼輸出結(jié)果是()int i = 5;while ( i > 0 )i =

16、i + 1;if ( i = =5 ) break; A) while循環(huán)執(zhí)行5次 B)死循環(huán) C)循環(huán)一次都不執(zhí)行 D)循環(huán)執(zhí)行一次 答案:B解析:i由于在while循環(huán)里始終大于 6 (不可能等于5)而無法進入if語句后跳出循環(huán),故該程序是一個試卷編號:1-B第5頁共11頁死循環(huán)。23 .下列說法哪個正確?()A)一個源文件只能供一個程序使用B) 一個源文件中只能有一個類C) 一個源文件中可以有多個公共類D) 一個程序可以包含多個源文件答案:D解析:一個源文件可以包含多個類但只能包含一個公共類,故 B, C錯;一個源文件可以被多個程序使用 但不能同時被多個程序使用,故 A錯。24 .下面的

17、程序段的功能是()。File file1=new File("d:AAA123 ");file1.mkdirs();A)在當前目錄下生成子目錄:AAA123 B)在當前目錄下生成文件AAA.123C)生成目錄:d: AAA123D)以上說法都不對答案:C解析:mkdirs()表示創(chuàng)建一個File對象所對應(yīng)的目錄。25 .在java中下列關(guān)于自動類型轉(zhuǎn)換說法正確的是()A)基本數(shù)據(jù)類型和String相加結(jié)果一定是字符串型B) char類型和int類型相加結(jié)果一定是字符C) double類型可以自動轉(zhuǎn)換為intD) char + int + double +"&quo

18、t; 結(jié)果一定是 double;答案:A解析:char類型可以轉(zhuǎn)換為int類型,反之不行,故B錯;double類型不會自動轉(zhuǎn)為int類型,會丟失精度。C錯。D項結(jié)果一一定是 String 型。26 .應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是 ()。int b=2,2, 45,7, 3, 23,27;int sum=0;for (int i=1; i<b.length; i+) for (int j=1; j<bi.length; j+) sum+=bij;System. out .println(sum);答案:53解析:二元數(shù)組b為:2, 2, 0, 045, 0, 0

19、, 07, 3, 23, 27Sum=b11+b12+b13+b21+b22+b23=0+0+0+3+23+27=5327 .關(guān)于類的描敘正確的是()(選擇兩項)A) 一個類的方法使用該類的另一個方法時可以直接引用方法名B)局部變量的作用范圍僅僅在定義它的方法內(nèi),或者是在定義它的控制流塊中C)使用別的類的方法僅僅需要引用方法的名字即可D)在類中定義的變量稱為類的成員變量,在別的類中可以直接使用答案:AB28 .下面說法不正確的是()?A)列表(List)、集合(Set)和映射(Map)都是java.util包中的接口。B) Map接口將鍵映射到值,鍵可以重復(fù),但每個鍵最多只能映射一個值。C)

20、Set接口是不包含重復(fù)元素的集合。D) List接口是可以包含重復(fù)元素的有序集合。答案:B解析:鍵不可以重復(fù)。29 .方法的調(diào)用,正確的是():A)必須是一條完整的語句B)只能是一個表達式C)可能是語句,也可能是表達式D)必須提供實際參數(shù)答案:C解析:根據(jù)實際情況,調(diào)用方法的形式可以不同。30 .下列Java語言中可用的注釋符,其中錯誤的是()A)/創(chuàng)建主類 B) /*創(chuàng)建主類*/C) /*創(chuàng)建子類/D) /*創(chuàng)建子類*/答案:C解析:“/”是單行注釋符," /*.*/”是多行注釋符," /*.*/ ”是文檔注釋符。D選項為非法符號。31 .關(guān)鍵字()表明一個對象或變量在初

21、始化后不能修改。A) extends B) this C) final D) finalizer答案:c解析:略,(考察終止修飾符:final)二、填空題(共20分)1. 單例模式的構(gòu)造方法的訪問控制符應(yīng)該是 private。2. Java源文件中最多只能有一個_public一類,其它類的個數(shù)不限。3. 為Student類的一個無形式參數(shù)和返回值的myprintln方法,寫方法頭,此方法使用類名Student.myprintln()就可以調(diào)用,該方法定義時,方法頭的形式為 public static void_4. “The constructor Student(String) is und

22、efined” 此條錯誤提示的意思是Student 類的構(gòu)造方法未被定義5. Jav杯支持多重繼承,但類可以實現(xiàn)多個接口。6. 導(dǎo)入mypackage包中的所類的命令是import mypackage.* 。7. 使用String類的 Length()方法可以獲取一個字符串的長度。8. 創(chuàng)建類對象的運算符是(new )。9. 對于 抽象 方法,只允許聲明,而不允許實現(xiàn)。10. read()方法給程序提供一個從輸入流中讀取數(shù)據(jù)的基本方法。11. 一個實現(xiàn)了Runnable接口的類實際上定義了一個主線程之外的新線程的操作。12. 子類通過成員變量的隱藏和方法的重寫可以把父類的狀態(tài)和行為改變?yōu)樽陨淼?/p>

23、狀態(tài)和行為。13. 設(shè)t=3 ,則表達式(t + +)* 4的佰是 12。14. 在Java的基本數(shù)據(jù)類型中,char型采用Unicode編碼方案,每個Unicode碼占用 2 字 節(jié)內(nèi)存空間,這樣,無論是中文字符還是英文字符,都是占用2 字節(jié)內(nèi)存空間。15. 一維數(shù)組通過下標符訪問自己的元素,需要注意的是下標從0 開始。16. 拋出異??梢岳?throw 語句。17. start()方法將啟動線程對象,使之從新建狀態(tài)轉(zhuǎn)入就緒狀態(tài)并進入就緒隊列排隊。18. 開發(fā)與運行Java程序需要經(jīng)過的三個主要步驟為編輯源程序、編譯牛成字節(jié)碼和解釋運行字節(jié)碼。19. Java語言中,通常把可能發(fā)生異常的方

24、法調(diào)用語句放到try塊中,并用緊跟其后的catch塊來捕獲和處理異常。20. 在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和操作的機制稱為繼承21. List集合的特點:元素有序,可重復(fù) 。22. 在Java語言中,所有的數(shù)組都有一個lenght屬性,這個屬性存儲了該數(shù)組的 儲存了該數(shù) 組的元素個數(shù)或長度23. 抽象方法是一種僅有方法頭,沒有具體方法體和操作實現(xiàn)的方法,該方法必須在抽象類之中定義。24. Math類提供了許多用于數(shù)學(xué)運算的靜態(tài)方法。25. Java中用于兩個數(shù)相等比較的運算符是:=,用于不相等比較的運算符是!=。26. 如果要把某個類的對象保存到 HashSet集合中,應(yīng)該重寫equals

25、。和 hashCode()。27. 在一個時間只能由一個線程訪問的資源稱為臨界資源。訪問臨界資源的代碼為臨界代碼。28. Map 集合的特點是:雙列集合(用干存放金侑對): 無序:key 侑不可重復(fù) 。三、簡答題(共20分)1.package aa.bb;public class Test public static void main(String args) int a = 10,11, 12, 13, 14, 15,16, 17 ;試卷編號:1-B第8頁共11頁System. out .println(" 0 is " + a1);System. out

26、.println(" 5 is " +fun (a, a2);static int fun( int x口,int y) for ( int i = 1; i < x.length; i+)if (y < x.length) xi = xi - 1 + 4;return x2;答:is 115 is 12public class T1 int t1=50; public void aa()t1-; publicstaticvoid main(String口 args)S1 y = new S1();y.aa();System. out .println(y.ge

27、tT1();System. out .println(y.t1);. y.plus();System. out .println( y.getT1();System. out .println(y.t1);class S1 extends T1 int t1 = 10;public void plus() t1+; public int getT1() return super .t1; 答:491049112.import java.io.*;class People void myPrint() System. out .println("People"); class Student extends People void myPrint() System. out .println(&q

溫馨提示

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

評論

0/150

提交評論