java期末復習題含答案及詳解_第1頁
java期末復習題含答案及詳解_第2頁
java期末復習題含答案及詳解_第3頁
java期末復習題含答案及詳解_第4頁
java期末復習題含答案及詳解_第5頁
已閱讀5頁,還剩37頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

java期末復習題含答案及詳解java期末復習題含答案及詳解java期末復習題含答案及詳解V:1.0精細整理,僅供參考java期末復習題含答案及詳解日期:20xx年X月一、選擇題(共20分)下列輸出結果是( )inta=0;while(a<5){switch(a){case0:case3:a=a+2;case1:case2:a=a+3;default:a=a+5;}}System.out.print(a);答案:10解析:由于每個case后面沒有使用break結束循環,導致程序從上往下逐條運行。被聲明為private,protected及public的類成員,在類外部() A)只能訪問到聲明為protected和public的成員B)都可以訪問 C)只能訪問聲明為public的成員 D)都不能訪問答案:A解析:private只能被類內部訪問,子類(未在父類內部)可以訪問父類protected類型成員,其他類可以訪問其public類型成員。在Java語言中,下列關于類的繼承的描述,正確的是( )。一個類可以繼承多個父類一個類可以具有多個子類子類可以使用父類的所有方法子類一定比父類有更多的成員方法答案:B解析:A錯,一個類只能有一個父類;C錯,父類的私有方法就不可被子類訪問并使用;D錯,繼承關系是對父類功能的擴展,根據實際情況完全可以只擴展1個功能,并不意味著成員方法比父類多。類Teacher和Student都是類People的子類Peoplep;Teachert;Students;若p,t和s都是非空值,并且new時聲明的都是本類;if(tinstanceofPeople){s=(Student)t;}這個語句導致的結果是什么() A)表達式合法 B)編譯時非法 C)將構造一個Student對象D)編譯時合法而在運行時可能非法答案:B解析:instanceof操作符用于判斷左邊的引用對象是否是右邊的類,或者其子類、實現類的實例。此題中的if語句的判斷沒有問題,將返回真。但是后面的類型轉換是非法的,因為t是一個Teacher對象,它不能被強制轉換為一個Student對象,即使這兩個類有共同的父類。如果是將t轉換為一個Person對象則可以,而且不需要強制轉換。這個錯誤在編譯時就可以發現,因此編譯不能通過。下列值不為true的表達式有( )。"tomy"=="tomy""tomy".equals("tomy")"tomy"="tomy""tomy".equals(newString("tomy"))答案:C解析:賦值符號“=”的左端必須是一個變量,顯然C選項在編譯時就會出錯,故其值不可能為true。關于接口哪個正確?() A)接口和抽象類是同一回事 B)一個類只能實現一個接口 C)接口間不能有繼承關系D)實現一個接口必須實現接口的所有方法答案:D解析:A錯,接口是一種規范機制,他作為系統與外部交互的窗口,它既規定了實現著必須向外提供哪些服務,也規定了調用者可以調用哪些服務,以及如何調用這些服務。抽象類是作為系統中多個子類的父類,體現的是一種模板設計。B錯,一個類可以直接實現多個接口,通過實現多個接口可以彌補Java單繼承的不足。C錯,接口支持多繼承,一個接口可以有多個直接父接口,與類繼承相似,子接口擴展某個父接口,將會獲得父接口里的所有抽象方法、常量。下列關于Java語言特性的描述中,錯誤的是()

A)支持多線程操作

B)JAVA程序與平臺無關

C)支持單繼承和多繼承D)JAVA程序可以直接訪問Internet上的對象答案:C解析:Java是一門單繼承語言,雖然一個類可以實現多個接口,在表面上表現出“多繼承”的樣子,但那并不是真正意義上的“多繼承”,只能稱作一個類實現了多個接口。以下關于抽象類和接口的說法錯誤的是( )抽象類在Java語言中表示的是一種繼承關系,一個類只能使用一次繼承。但是一個類卻可以實現多個接口。T在抽象類中可以沒有抽象方法T實現抽象類和接口的類必須實現其中的所有方法,除非它也是抽象類。接口中的方法都不能被實現T接口中定義的變量默認是publicstaticfinal型,且必須給其初值,所以實現類中不能重新定義,也不能改變其值。T接口中的方法都必須加上public關鍵字。答案:E解析:接口中的成員在被定義時完全可以省略訪問控制符,系統會默認使用public訪問控制修飾符。如果非要指定訪問控制符,則只能使用public訪問控制修飾符。下列Java語言中可用的注釋符,其中錯誤的是()

A)//B)/*...*/C)/**...*/D)/*答案:D解析:“//”是單行注釋符,“/*........*/”是多行注釋符,“/**.......*/”是文檔注釋符。D選項為非法符號。下列關于變量作用域的描述,錯誤的是()

A)在方法中作用域可嵌套,在嵌套的作用域中可以定義同名變量。

B)在類中定義的變量的作用域在該類中的方法內是可以使用的

C)在方法中定義的變量的作用域僅在該方法內

D)在某個作用域定義的變量,僅在該作用域內是可見的,而在該作用域外是不可見的。答案:A解析:方法中的作用域可以嵌套,但嵌套的作用域中不能出現同名變量否則會出現名命沖突。類與對象的關系是( )。

A)對象是類的子類 B)對象是類的抽象

C)類是對象的抽象 D)類是對象的具體實例

答案:C解析:對某一類對象的屬性和功能的抽象便得到了類,而一個對象便是某一個類的具體化或實例化。在類的修飾符中,規定只能被同一包類所使用的修飾符是()

A)publicB)默認C)finalD)abstract答案:B解析:用public修飾的類、類屬變量及方法,包內及包外的任何類(包括子類和普通類)均可以訪問。默認訪問權限的類、類屬變量及方法,包內的任何類(包括繼承了此類的子類)都可以訪問它,而對于包外的任何類都不能訪問它(包括包外繼承了此類的子類)。final修飾符是用來修飾類、變量和方法的,用來表示它所修飾的類、方法和變量不可再改變。abstract是定義抽象類或抽象方法時使用的修飾符。下列關于類的繼承性的描述中,錯誤的是()

A)繼承是在已有的基礎上生成新類的一種方法

B)子類繼承父類的所有成員

C)Java語言要求一個子類只有一個父類D)父類中成員的訪問權限在子類中將被改變

答案:D解析:子類對從父類繼承來的成員只有重寫或使用的權限,并不能修改父類成員的訪問權限。下列選項中關于Java中super關鍵字的說法正確的是( )。super關鍵字是在子類對象內部指代其父類對象的引用super關鍵字不僅可以指代子類的直接父類,還可以指代父類的父類子類通過super關鍵字只能調用父類的方法,而不能調用父類的屬性子類通過super關鍵字只能調用父類的屬性,而不能調用父類的方法答案:A解析:super關鍵字只能指代直接父類對象的引用,因此既可以調用直接父類的屬性,也可以調用父類方法。以下對于方法覆蓋(overriding)的說法不正確的有( )。

A)方法覆蓋發生在同一類中

B)方法的覆蓋發生在子類型中

C)參數一定要一樣

D)方法名一定要一樣答案:A解析:方法覆蓋即重寫,該現象只能出現在子類繼承父類后,子類重寫父類方法時發生。下面對對象概念描述錯誤的是:( )

A)操作是對象的動態屬性

B)任何對象都必須有繼承性

C)對象間的通訊靠消息傳遞

D)對象是屬性和方法的封裝體答案:B解析:比如數字2,它是整型類對象實例,確實是一個對象,但它卻無法被繼承,故沒有繼承性。因此,對象不都必須有繼承性。下列關于字符串的描敘中錯誤的是( )(選擇兩項)字符串是對象String對象存儲字符串的效率比StringBuffer高可以使用StringBuffersb="這里是字符串"聲明并初始化StringBuffer對象sbString類提供了許多用來操作字符串的方法:連接,提取,查詢等答案:BC解析:String既屬于引用類型也屬于基礎數據類型,而且內容是靜態的,在通常情況效率高些,

但如果涉及到連接字符串的時候,對于String每次連接都要重新分配內存,相比之下StringBuffer效率在此時反而高一些,故B選項錯誤。C選項的聲明并初始化sb的命令應為:StringBuffersb=newStringBuffer("xiajsiaxbai");

對象的特征在類中表示為變量,稱為類的( )。對象屬性方法數據類型答案:B解析:類中的成員在類中表現出什么樣的特征就相當于類的對應成員。變量在類中只可能做屬性。應用程序的main方法中有以下語句,則輸出的結果是()。 Strings="xxx#678#9123#zzzzz"; intn=s.indexOf("#"); intk=s.indexOf("#",n+1); Strings2=s.substring(n+1,k+4); System.out.println(s2); 答案:678#912解析:indexof(“s1”)表示返回字符“s1”的索引。indexof(“s1”,index)表示查找字符串中的字符s1從第index個開始查找,返回所在字符的索引。substring(a,b)表示截取包含索引a處的字符開始到不包含索引b處的字符為止的字符串。故n=3,k=7。從而S2=“678#912”。覆蓋與重載的關系是()A)覆蓋方法可以不同名,而重載方法必須同名

B)覆蓋與重載是同一回事

C)final修飾的方法可以被覆蓋,但不能被重載

D)覆蓋只有發生在父類與子類之間,而重載可以發生在同一個類中答案:D解析:此處的覆蓋表示重寫,重寫發生在繼承關系中即父類與子類之間。函數名相同,函數的參數列表不同(包括參數個數和參數類型),返回類型可同可不同的現象叫重載。在Java中,下面對于構造函數的描述錯誤的是( )(選擇兩項)類不一定要顯式定義構造函數一個類可以定義多個構造函數如果構造函數不帶任何參數,那么構造函數的名稱和類名可以不同構造函數的返回類型是void答案:CD解析:構造函數名與類名必須一樣,C錯。構造函數無返回值類型。D錯。下列代碼輸出結果是( )inti=5;while(i>0){i=i+1;if(i==5){ break;}}while循環執行5次死循環循環一次都不執行循環執行一次答案:B解析:i由于在while循環里始終大于6(不可能等于5)而無法進入if語句后跳出循環,故該程序是一個死循環。下列說法哪個正確?() A)一個源文件只能供一個程序使用 B)一個源文件中只能有一個類 C)一個源文件中可以有多個公共類 D)一個程序可以包含多個源文件答案:D解析:一個源文件可以包含多個類但只能包含一個公共類,故B,C錯;一個源文件可以被多個程序使用但不能同時被多個程序使用,故A錯。下面的程序段的功能是()。Filefile1=newFile("d:\\AAA\\123");file1.mkdirs(); A)在當前目錄下生成子目錄:\AAA\123B)在當前目錄下生成文件AAA.123 C)生成目錄:d:\AAA\123 D)以上說法都不對答案:C解析:mkdirs()表示創建一個File對象所對應的目錄。在java中下列關于自動類型轉換說法正確的是( )基本數據類型和String相加結果一定是字符串型char類型和int類型相加結果一定是字符double類型可以自動轉換為intchar+int+double+""結果一定是double;答案:A解析:char類型可以轉換為int類型,反之不行,故B錯;double類型不會自動轉為int類型,會丟失精度。C錯。D項結果一定是String型。應用程序的main方法中有以下語句,則輸出的結果是()。 intb[][]={{2,2},{45},{7,3,23,27}};intsum=0;for(inti=1;i<b.length;i++){for(intj=1;j<b[i].length;j++){sum+=b[i][j];}}System.out.println(sum);答案:53解析:二元數組b[][]為:2,2,0,0 45,0,0,0 7,3,23,27Sum=b[1][1]+b[1][2]+b[1][3]+b[2][1]+b[2][2]+b[2][3]=0+0+0+3+23+27=53關于類的描敘正確的是( )(選擇兩項)一個類的方法使用該類的另一個方法時可以直接引用方法名局部變量的作用范圍僅僅在定義它的方法內,或者是在定義它的控制流塊中使用別的類的方法僅僅需要引用方法的名字即可在類中定義的變量稱為類的成員變量,在別的類中可以直接使用答案:AB下面說法不正確的是( )

列表(List)、集合(Set)和映射(Map)都是java.util包中的接口。Map接口將鍵映射到值,鍵可以重復,但每個鍵最多只能映射一個值。 C)Set接口是不包含重復元素的集合。 D)List接口是可以包含重復元素的有序集合。答案:B解析:鍵不可以重復。方法的調用,正確的是( ):

A)必須是一條完整的語句

B)只能是一個表達式

C)可能是語句,也可能是表達式

D)必須提供實際參數答案:C解析:根據實際情況,調用方法的形式可以不同。下列Java語言中可用的注釋符,其中錯誤的是( )

A)//創建主類B)/*創建主類*//**創建子類/D)/**創建子類*/答案:C解析:“//”是單行注釋符,“/*........*/”是多行注釋符,“/**.......*/”是文檔注釋符。D選項為非法符號。關鍵字( )表明一個對象或變量在初始化后不能修改。

A)extends B)this C)final D)finalizer答案:C解析:略,(考察終止修飾符:final)二、填空題(共20分)單例模式的構造方法的訪問控制符應該是 private 。Java源文件中最多只能有一個public類,其它類的個數不限。為Student類的一個無形式參數和返回值的myprintln方法,寫方法頭,此方法使用類名Student.myprintln()就可以調用,該方法定義時,方法頭的形式為publicstaticvoid“TheconstructorStudent(String)isundefined?!贝藯l錯誤提示的意思是Student類的構造方法未被定義Java不支持多重繼承,但類可以實現多個接口。導入mypackage包中的所類的命令是importmypackage.*。使用String類的 Length() 方法可以獲取一個字符串的長度。創建類對象的運算符是(new)。對于抽象方法,只允許聲明,而不允許實現。read() 方法給程序提供一個從輸入流中讀取數據的基本方法。一個實現了Runnable 接口的類實際上定義了一個主線程之外的新線程的操作。子類通過成員變量的隱藏和方法的重寫可以把父類的狀態和行為改變為自身的狀態和行為。設t=3,則表達式(t++)*4的值是 12 。在Java的基本數據類型中,char型采用Unicode編碼方案,每個Unicode碼占用2字節內存空間,這樣,無論是中文字符還是英文字符,都是占用2字節內存空間。一維數組通過下標符訪問自己的元素,需要注意的是下標從0開始。拋出異??梢岳?throw語句。start()方法將啟動線程對象,使之從新建狀態轉入就緒狀態并進入就緒隊列排隊。開發與運行Java程序需要經過的三個主要步驟為編輯源程序、編譯生成字節碼和解釋運行字節碼。Java語言中,通常把可能發生異常的方法調用語句放到try塊中,并用緊跟其后的 catch塊來捕獲和處理異常。在面向對象方法中,類之間共享屬性和操作的機制稱為繼承List集合的特點:元素有序,可重復。在Java語言中,所有的數組都有一個lenght屬性,這個屬性存儲了該數組的儲存了該數組的元素個數或長度抽象方法是一種僅有方法頭,沒有具體方法體和操作實現的方法,該方法必須在抽象類之中定義。 Math類提供了許多用于數學運算的靜態方法。Java中用于兩個數相等比較的運算符是: == ,用于不相等比較的運算符是 != 。如果要把某個類的對象保存到HashSet集合中,應該重寫equals()和hashCode()。在一個時間只能由一個線程訪問的資源稱為臨界資源。訪問臨界資源的代碼為臨界代碼。Map集合的特點是:雙列集合(用于存放鍵值對),無序,key值不可重復。三、簡答題(共20分)packageaa.bb; publicclassTest{ publicstaticvoidmain(String[]args){ intx; inta[]={10,11,12,13,14,15,16,17}; System.out.println("[0]is"+a[1]); System.out.println("[5]is"+fun(a,a[2])); } staticintfun(intx[],inty){ for(inti=1;i<x.length;i++) if(y<x.length)x[i]=x[i-1]+4; returnx[2]; } }答:[0]is11[5]is12publicclassT1{ intt1=50; publicvoidaa(){ t1--;} publicstaticvoidmain(String[]args){S1y=newS1(); y.aa(); System.out.println(y.getT1());System.out.println(y.t1);y.plus(); System.out.println(y.getT1());System.out.println(y.t1); } }classS1extendsT1{ intt1=10; publicvoidplus(){ t1++; } publicintgetT1(){ returnsuper.t1; }}答:49104911importjava.io.*;classPeople{voidmyPrint(){System.out.println("People");}}classStudentextendsPeople{voidmyPrint(){System.out.println("Student");}voidprintAll()

溫馨提示

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

評論

0/150

提交評論