JAVA期末考試試卷和習(xí)題及答案匯總_第1頁
JAVA期末考試試卷和習(xí)題及答案匯總_第2頁
JAVA期末考試試卷和習(xí)題及答案匯總_第3頁
JAVA期末考試試卷和習(xí)題及答案匯總_第4頁
JAVA期末考試試卷和習(xí)題及答案匯總_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

JAVA期末考試試卷和習(xí)題和答案匯總一、單項選擇題1.下面哪個不是Java中的容器BA、

ScrollPane B、Canvas C、Applet D、Dialog2.下面哪個方法與applet的顯示無關(guān)A

A、draw()

B、

update()

C、repaint()

D、paint()

3.以下哪個方法用于定義線程的執(zhí)行體?

CA、

start() B、init() C、run() D、synchronized()

4.當(dāng)Frame改變大小時,放在其中的按鈕大小不變,則使用如下哪種布局方式A

A、

FlowLayout

B、CardLayout

C、BorderLayout

D、GridLayout5.有如下代碼段:1)2){if(unsafe()){//dosomething…}3)elseif(safe()){//dotheother…}4)}其中,方法unsafe()將拋出IOException,請問可將以下哪項填入第1行?DA、publicIOExceptionmethodName() B、publicvoidmethodName()C、publicvoidmethodName()throwIOExceptionD、publicvoidmethodName()throwsIOException6.以下哪個關(guān)鍵字可以用來對對象加互斥鎖?BA、transient B、synchronizedC、serialize D、static7.編譯并運(yùn)行以下程序,以下描述哪個選項是正確的C1.classA{ 2. protectedbooleanequals(){ 3. returnsuper.equals();} 4. }A、編譯通過運(yùn)行無異常 B、編譯通過但運(yùn)行時出錯C、行2出錯,不能成功編譯 D、不能成功編譯,行3出錯8.在使用interface聲明一個接口時,只可以使用(D)修飾符修飾該接口。A、private B、protected C、privateprotected D、public9.Java的字符類型采用的是Unicode編碼方案,每個Unicode碼占用(B)個比特位。A、8 B、16C、32 D、6410.在編寫JavaApplet程序時,若需要對發(fā)生的事件作出響應(yīng)和處理,一般需要在程序的開頭寫上(D)語句。A、importjava.awt.*;B、importjava.applet.*;C、importjava.io.*;D、importjava.awt.event.*;11.以下關(guān)于構(gòu)造函數(shù)的描述錯誤的是(A)。A、構(gòu)造函數(shù)的返回類型只能是void型。B、構(gòu)造函數(shù)是類的一種特殊函數(shù),它的方法名必須與類名相同。C、構(gòu)造函數(shù)的主要作用是完成對類的對象的初始化工作。D、一般在創(chuàng)建新對象時,系統(tǒng)會自動調(diào)用構(gòu)造函數(shù)。12.有程序如下,關(guān)于程序的描述哪個是正確的?(C)publicclassPerson{staticintarr[]=newint[10];publicstaticvoidmain(Stringa[]){System.out.println(arr[1]);}}A、編譯將產(chǎn)生錯誤 B、編譯時正確,但運(yùn)行時將產(chǎn)生錯誤C、正確,輸出0 D、正確,輸出

null13.有語句Strings=”helloworld”;,以下操作哪個是不合法的?(B)A、inti=s.length();B、s>>>=3;C、Stringts=s.trim(); D、Stringt=s+”!”;14.給出如下代碼:class

Test{

private

int

m;

public

static

void

fun()

{

//

some

code...

}

}如何使成員變量m

被函數(shù)fun()直接訪問(C)A、將private

int

m

改為protected

int

mB、將private

int

m

改為

public

int

mC、將private

int

m

改為

static

int

mD、將private

int

m

改為

int

m15.Javaapplication中的主類需包含main方法,main方法的返回類型是什么?(D)A、int B、float C、double D、void16.有以下方法的定義,請選擇該方法的返回類型(D)。 ReturnTypemethod(bytex,doubley) { return(short)x/y*2; }A、byte B、short C、int D、double17.下列哪些語句關(guān)于Java內(nèi)存回收的說明是正確的(B)A、程序員必須創(chuàng)建一個線程來釋放內(nèi)存B、內(nèi)存回收程序負(fù)責(zé)釋放無用內(nèi)存C、內(nèi)存回收程序允許程序員直接釋放內(nèi)存D、內(nèi)存回收程序可以在指定的時間釋放內(nèi)存對象18.在編寫JavaApplet程序時,若需要對發(fā)生的事件作出響應(yīng)和處理,一般需要在程序的開頭寫上(D)語句。A、importjava.awt.*;B、importjava.applet.*;C、importjava.io.*;D、importjava.awt.event.*;19.容器Panel和Applet缺省使用的布局編輯策略是(B)A、BorderLayout B、FlowLayout C、GridLayout D、CardLayout20.設(shè)有下面兩個賦值語句:a=Integer.parseInt(“123”);b=Integer.valueOf(“123”).intValue();下述說法正確的是(D)A、a是整數(shù)類型變量,b是整數(shù)類對象。B、a是整數(shù)類對象,b是整數(shù)類型變量。C、a和b都是整數(shù)類對象并且值相等。D、a和b都是整數(shù)類型變量并且值相等。21.編譯并運(yùn)行以下程序,以下描述哪個選項是正確的(C)。1.classA{2. protectedStringtoString(){3. returnsuper.toString();}4. }A、編譯通過運(yùn)行無異常 B、編譯通過但運(yùn)行時出錯C、行2出錯,不能成功編譯 D、不能成功編譯,行3出錯22.有以下程序片段,下列哪個選項不能插入到行1。(D)1.2.publicclassInteresting{3.//dosth4.}A、importjava.awt.*; B、packagemypackage; C、classOtherClass{} D、publicclassMyClass{}23.以下哪個不是Java的關(guān)鍵字?(A)A、TRUE B、const C、super D、void24.關(guān)于以下application的說明,正確的是(C)。1. classStaticStuff2.{3. staticintx;4. static{x+=5;}5. publicstaticvoidmain(Stringargs[])6. {7. System.out.println(“x=”+x);8. }9. static{x/=5;}10.}A、4行與9行不能通過編譯,因為缺少方法名和返回類型 B、9行不能通過編譯,因為只能有一個靜態(tài)初始化器C、編譯通過,執(zhí)行結(jié)果為:x=1D、能通過編譯,但程序運(yùn)行結(jié)果不可預(yù)知,因為變量x沒有初始化25.FilterOutputStream是BufferedOutputStream、DataOutputStream和PrintStream的父類,以下哪個類可能是FilterOutputStream構(gòu)造函數(shù)的參數(shù)類型?BA、OutputStreamB、FileC、InputStreamD、BufferedOutputStream26.在使用interface聲明一個接口時,只可以使用(D)修飾符修飾該接口。A、private B、protected C、privateprotected D、public27.有程序片段如下,以下哪個表示式的結(jié)果為true?(B)Floats=newFloat(0.1f);Floatt=newFloat(0.1f);Doubleu=newDouble(0.1);A、s==tB、s.equals(t)C、u.equals(s)D、t.equals(u)=========================================================1、編譯JavaApplication源程序文件將產(chǎn)生相應(yīng)的字節(jié)碼文件,這些字節(jié)碼文件的擴(kuò)展名為(B)。A.javaB.classC.htmlD.exe2、以下哪一個不是JAVA的標(biāo)準(zhǔn)數(shù)據(jù)流(D)。A.標(biāo)準(zhǔn)輸出數(shù)據(jù)流B.標(biāo)準(zhǔn)輸入數(shù)據(jù)流C.標(biāo)準(zhǔn)錯誤數(shù)據(jù)流D.標(biāo)準(zhǔn)運(yùn)算數(shù)據(jù)流3、.class和.java文件的含義分別是:(A)A.Java目標(biāo)碼文件和源文件;B.Java可執(zhí)行文件和目標(biāo)碼文件;C.Java源文件和目標(biāo)碼文件;D.Java源文件和Java平臺配置文件;4、面板的邊框有哪幾種?(D)A.面板沒有邊框;B.僅有單線邊框;C.僅有黑色的邊框;D.面板缺省沒有邊框,但可以設(shè)置單線、斜坡、不光滑等多種線形,可以設(shè)置邊框的顏色、寬度等,還可以設(shè)置邊框與內(nèi)容之間的舉例等;5、以下幾個命名方法,不符合Java命名規(guī)范的是:(D)A.類的名稱:MyClassName;B.變量的名稱:myArray;C.常量的名稱:PI_VALUE;D.成員函數(shù)的名稱:GetName;6、在下面的代碼中,break語句的作用是:(C)for(inti=0;i<10;i++)if(aData[i]==TargetData){FoundID=i;break;}A.退出if程序塊;B.退出此次循環(huán),直接進(jìn)入下一次循環(huán);C.退出整個循環(huán);D.退出整個函數(shù);7、以下項中,不屬于成員變量的定義部分的是:DA.訪問級;B.變量名稱;C.變量類型;D.變量的初始化方式;8、以下關(guān)于異常捕獲的原則中,錯誤的是(D)ARuntimeException可以不被捕獲,Java會自動處理運(yùn)行期異常。B先列出子類,后列出父類。C先列出具體的異常類,后列出通用的異常類。DException類必須出現(xiàn),而且必須作為catch塊中第一個匹配的類。9、Java的一個重要特點(diǎn)是結(jié)構(gòu)中立性,這種結(jié)構(gòu)中立性表現(xiàn)在(C)A用Java編寫的源程序無需編譯,直接通過Java平臺解釋執(zhí)行。BJava源程序在不同的硬件和操作系統(tǒng)下,直接編譯成該硬件和操作系統(tǒng)能夠運(yùn)行的程序并運(yùn)行。CJava源程序編譯成一種結(jié)構(gòu)中立的目標(biāo)文件格式,再有Java平臺在不同的硬件和操作系統(tǒng)下運(yùn)行。DJava源程序編譯成一種通用的可執(zhí)行程序,現(xiàn)在的硬件和操作系統(tǒng)都支持這種通用的可執(zhí)行程序。10、在Swing中,一下列出的面板的作用中,錯誤的是(C).放置并排列組件B顯示背景圖案;C接收事件;D顯示面板的邊框;11、.在Swing中,如何設(shè)置組件的邊框(C)A通過根窗格的setBorder函數(shù)設(shè)置某各組件的邊框;B通過內(nèi)容窗格的setBorder函數(shù)設(shè)置某各組件的邊框;C通過組件的setBorder函數(shù)設(shè)置;D通過框架的setBorder函數(shù)設(shè)置某各組件的邊框;12、以下關(guān)于框架和其他窗口之間的關(guān)系中,錯誤的是(D)A對話框必須依附于某個框架B當(dāng)框架最小化時,所有依附于它的窗口也會最小化C框架是一個程序的主窗口,每個具有圖形界面的程序都至少要有一個框架D內(nèi)部框架也是頂級容器組件13、創(chuàng)建并顯示框架的步驟中,錯誤的是(A)A將框架對象與入口類相連接B在框架中加如組件C創(chuàng)建一個框架對象D調(diào)用框架對象的setVisible函數(shù)顯示框架14、如何在框架中顯示標(biāo)題?(C)A調(diào)用根窗格的setTitle函數(shù)顯示B調(diào)用內(nèi)容窗格的setTitle函數(shù)顯示C調(diào)用框架對象的setTitle函數(shù)顯示D調(diào)用框架對象的Border對象的setTitle函數(shù)顯示15、下列關(guān)于Java語言的特點(diǎn),描述錯誤的是(C)A.Java是跨平臺的編程語言B.Java支持分布式計算C.Java是面向過程的編程語言D.Java支持多線程16、下述概念中不屬于面向?qū)ο蠓椒ǖ氖荄___。A.對象、消息B.繼承、多態(tài)C.類、封裝D.過程調(diào)用17、結(jié)構(gòu)化程序設(shè)計所規(guī)定的三種基本控制結(jié)構(gòu)是(C)A.輸入、處理、輸出B.樹形、網(wǎng)形、環(huán)形C.順序、選擇、循環(huán)D.主程序、子程序、函數(shù)18、以下聲明合法的是(B)A.defaultStrings; B.publicfinalstaticnativeintw()C.a(chǎn)bstractdoubled; D.AbstractfinaldoublehyperbolicCosine()19、Applet可以做下列哪些操作?CA.讀取客戶端文件B.在客戶端主機(jī)上創(chuàng)建新文件C.在客戶端裝載程序庫D.讀取客戶端部分系統(tǒng)變量20、下列關(guān)于for循環(huán)和while循環(huán)的說法中哪個是正確的?

c

A.while循環(huán)能實(shí)現(xiàn)的操作,for循環(huán)也都能實(shí)現(xiàn)

B.while循環(huán)判斷條件一般是程序結(jié)果,for循環(huán)判斷條件一般是非程序結(jié)果

C.兩種循環(huán)任何時候都可替換

D.兩種循環(huán)結(jié)構(gòu)中都必須有循環(huán)體,循環(huán)體不能為空====================================================================1、編譯JavaApplication源程序文件將產(chǎn)生相應(yīng)的字節(jié)碼文件,這些字節(jié)碼文件的擴(kuò)展名為(B)。A.javaB.classC.htmlD.exe2、設(shè)x=1,y=2,z=3,則表達(dá)式y(tǒng)+=z--/++x的值是(A)。A.3B.3.5C.4D.53、在JavaApplet程序用戶自定義的Applet子類中,一般需要重載父類的(D)方法來完成一些畫圖操作。A.start()B.stop()C.init()D.paint()4、不允許作為類和類成員的訪問控制符的是(C)。A.publicB.privateC.staticD.protected5、為AB類的一個無形式參數(shù)無返回值的方法method書寫方法頭,使得使用類名AB作為前綴就可以調(diào)用它,該方法頭的形式為(A)。A.staticvoidmethod()B.publicvoidmethod()C.finalvoidmethod()D.abstractvoidmethod()*********************************************************************1、Java中復(fù)合數(shù)據(jù)類型不包括(D)A.類類型B.數(shù)組C.接口類型D.指針2、請從四個選項中選擇答案,下列代碼的執(zhí)行結(jié)果是:(C)PublicclassTest{Publicstaticvoidmain(Stringargs[]){Floatt=9.0f;Intq=6;System.out.println((t++)*(--q));}}A.40B.40.0C.45.0D.36.03、下列關(guān)于修飾符混用的說法,錯誤的是(D)A.abstract不能與final并列修飾同一個類B.a(chǎn)bstract類中可以有非abstract的方法C.普通類(非abstract類)中不能有abstract方法D.static方法中能處理非static的屬性4、關(guān)于被保護(hù)訪問控制符protected修飾的成員變量,以下說法正確的是(A)A.可以被該類自身、與它在同一個包中的其它類、在其它包中的該類的子類所訪問B.只能被該類本身和該類的所有的子類訪問C.只能被該類自身所訪問D.只能被同一個包中的類訪問5、x=2,y=3,z=4,則表達(dá)式z*=y++*--x的值是(A)A.12B.24C.16D.36、以下賦值語句正確的是(D)A.charc1=”a”B.floatf1=3.22C.byteb1=266D.longL1=0xAC8L7、Java不支持多重繼承,但我們可以通過(B)實(shí)現(xiàn)A.多態(tài)B.接口C.覆蓋D.抽象類8.已知類person是類student的父類,以下數(shù)組定義和賦值哪些是正確的(A)A.personp[]=newperson[3];p[1]=newstudent();B.students[]=newperson[3];s[1]=newperson();C.personp[]=newstudent[3];p[1]=newperson();D.students[]=newstudent[3];s[1]=newperson;9編譯MyClass.java之后,得到了三個字節(jié)碼文件:MyClass.class,MyClasslittle$.classMyClass$1.class.這表明(C)A.MyClass類中的兩個方法:little和1B.MyClass.Java中有三個類:MyClass、little和1C.MyClass類中有兩個內(nèi)部類:一個是命名的little,另一個是匿名的1D.MyClass、little和1,這三者沒什么關(guān)系10、main方法是javaApplication程序執(zhí)行的入口點(diǎn),關(guān)于main方法的方法頭以下(B)是合法的。A.publicstaticvoidmain()B.publicstaticvoidmain(Stringarg[])C.publicstaticintmain(String[]arg)D.B.publicvoidmain(Stringarg[])11、當(dāng)編譯和運(yùn)行下面的代碼會出現(xiàn)什么情況?(A)Importjava.io.*;ClassExBase{Abstractpublicvoidmartley()}PublicclassMyExextendsExBase{Publicstaticvoidmain(Stringargv[]){DataInputStreamfi=newDataInputStream(System.in);Try{Fi.readChar();}Catch(IOEceptione){System.exit(0);}Finally{System.out.println(“Doingfinally”);}}}A.編譯錯誤B.可以運(yùn)行,沒有打印出”Doingfinally”C.可以運(yùn)行,在打印出”Doingfinally”后退出D.在運(yùn)行之后立即退出12、當(dāng)編譯和運(yùn)行下面的代碼會出現(xiàn)什么情況?(D)PublicclassSandys{Privateintcourt;Publicstaticvoidmain(Stringargv[]){Sandyss=newSandys(99);System.out.println(s.court);}Sandys(intballeount){court=ballcount;}}A編譯錯誤,變量court被定義為privateB編譯錯誤,System.out調(diào)用的s沒有被初始化C可以編譯和運(yùn)行,沒有輸出結(jié)果D可以編譯和運(yùn)行,輸出結(jié)果為9913、給出下面的代碼:ClassBase{}ClassAggextendsBase{PublicStringgetFields(){Stringname=”Agg”;Returnname;}}PublicclassAvf{Publicstaticvoidmain(Stringargv[]){Basea=newAgg();//Here}}當(dāng)把下面的代碼添加到注釋“/Here”后面,程序的輸出結(jié)果是”Agg”(D)A.System.out.println(a.getFields())B.System.out.println()C.System.out.println((Base)a.getFields())D.System.out.println(((Agg)a).getFields())14、當(dāng)編譯和運(yùn)行下面的代碼會出現(xiàn)什么情況?(A)AbstractclassBase{Abstractpublicvoidmyfunc();Publicvoidanother(){Systern.out.println(“Anothermethod”);}}PublicclassAbsextendsBase{}Publicstaticvoidmain(Stringargv[]){Absa=newAbs();a.amethod();}Publicvoidmyfunc(){System.out.println(“MyFunc”)}A可以編譯和運(yùn)行,輸出的結(jié)果是”Myfunc”B出現(xiàn)編譯錯誤:Base類中沒有抽象方法C可以編譯,但運(yùn)行是提示Base類中沒有抽象方法D出現(xiàn)編譯錯誤,Base類中的方法myfunc沒有方法體15、編譯和運(yùn)行下面的代碼會出現(xiàn)(D)Importjava.io.*;ClassBase{Publicvoidamethod()throws{}}PublicclassExcepDemoextendsBase{Publicstaticvoidmain(Stringargv[]){NewExcepDemo();}Publicvoidamethod(){}ProtectedExcepDemo(){try{BufferedReaderinputStream=newBufferedReader(newInputStreamReader);System.out.println(“Pausing”);inputStream.readLine();System.out.println(“Contimuing”);This.amethod();}catch(IOExceptionioe){}}A編譯錯誤,因為構(gòu)造方法被聲明為protectedB編譯錯誤,因為方法amethod沒有拋出異常C運(yùn)行時錯誤,因為方法amthod沒有拋出異常D可以編譯和運(yùn)行,輸出的結(jié)果是:Pausing…Continuing其中…表示等待用戶的鍵盤輸入17、以下程序的輸出結(jié)果是(C)classAclass{voidgo(){System.out.println(“Aclass”);}}publicclassBclassextendsAclass{Voidgo{System.out.println(“Bclass”);}Publicstaticvoidmain(Stringargs[]){Aclassa=newAclass();Aclassal=newBclass();a.go();al.go();}}AclassAclassB、BclassBclassC、AclassBclassD、BclassAclass18、看以下程序Booleana=false;Booleanb=true;Booleanc=(a&&b)&&(!b);Intresult=c==false1:2;這段程序執(zhí)行完后,c與result的值是:(A)Ac=false;result=1;Bc=true;result=2;Cc=true;result=1;Dc=false;result=2;19、下面哪個單詞是Java語言的關(guān)鍵字(B)A.FloatB.thisC.stringD.unsigned20、switch語句(A)A.都可以用if-elseif結(jié)構(gòu)實(shí)現(xiàn)B.都不可以用if-elseif結(jié)構(gòu)實(shí)現(xiàn)C.有的可以用if-elseif結(jié)構(gòu)實(shí)現(xiàn)D.大部分不可以用if-elseif結(jié)構(gòu)實(shí)現(xiàn)21、在異常處理中,如釋放資源、關(guān)閉文件等善后操作由(C)來完成。A.try子句B.catch子句C.finally子句D.throw子句22、下面哪個是Java語言中正確的標(biāo)識符( C)A.3comB.importC.thatD.this23、下面哪個修飾符修飾的方法只能被本類中的其他方法使用(C)A.protectedB.staticC.privateD.24、下面哪條語句定義了5個元素的數(shù)組(A)A.int[]a={22,23,24,25,12};B.inta[]=newint(5);C.int[5]array;D.int[]arr;25、下面哪項可以得到數(shù)組元素的個數(shù),Java中定義數(shù)組名為abc。(B)A.abc.length()B.abc.lengthC.len(abc)D.ubound(abc)26、下面哪個修飾符修飾的變量是所有同一個類生成的對象共享的(C)A.publicB.privateC.staticD.final27、下面關(guān)于構(gòu)造方法的說法不正確的是(B)A、構(gòu)造方法也屬于類的方法,用于創(chuàng)建對象的時候給成員變量賦值。B、構(gòu)造方法不可以重載。C、構(gòu)造方法沒有返回值D、構(gòu)造方法一定要和類名相同28、監(jiān)聽事件和處理事件(A)A、都由Listener完成B、都由相應(yīng)事件Listener處登記過的構(gòu)件完成C、由Listener和構(gòu)件分別完成D、由Listener和窗口分別完成29、如果希望所有的控件在界面上均勻排列,應(yīng)使用下列那種布局管理器?(B)A.BoxLayoutB.GridLayoutC.BorderLayoutD.FlowLouLayout30、給出如下代碼:ClassTest{Privateintm;Publicstaticvoidfun(){//somecode…}}如何使成員變量m被函數(shù)fun()直接訪問?(C)A將privateintm改為protectedintmB將privateintm改為publicintmC將privateintm改為staticintmD將privateintm改為intm31、有個無形式參數(shù)無返回值的方法method書寫方法頭,使得使用類名AB作為前綴就……法頭的形式為(A)A.staticvoidmethod()B.publicvoidmethod()C.finalvoidmethod()D.abstractvoidmethod()32、編譯JavaApplication源程序文件將產(chǎn)生相應(yīng)的字節(jié)碼文件,這些字節(jié)碼文件的擴(kuò)展名為(B)A.javaB.classC.htmlD.exe33、如果只要讓類中的成員變量可以被同一包訪問,則使用如下哪個訪問控制符?(D)Aprivate;BPublic;CProtected;D不使用訪問控制符34、以下哪個方法用于定義線程的執(zhí)行體?(C)Astart();Binit();Crun();Dmain();35、Java語言具有許多優(yōu)點(diǎn)和特點(diǎn),下列選項中,哪個反映了Java程序并行機(jī)制(B)A、安全性 B、多線程C、跨平臺D、可移植36、為實(shí)現(xiàn)多線程之間的通信,需要使用下列哪種流才合適(D)AFilterstream;BCRandomaccessstream;DPipedInputStream和PipedOutputStream37、函數(shù)重載是指(A)A兩個或兩個以上的函數(shù)取相同的函數(shù)名,但形參的個數(shù)或類型不同B兩個以上的函數(shù)取相同的名字和具有相同的形參個數(shù)和類型C兩個以上的函數(shù)名字不同,但形參的個數(shù)或類型相同D兩個以上的函數(shù)取相同的函數(shù)名,并且函數(shù)的返回類型相同38、構(gòu)造方法何時被調(diào)用(B)A、類定義時B、創(chuàng)建對象時C、調(diào)用對象方法時D、使用對象的變量時39、Java中哪個類提供了隨機(jī)訪問文件的功能(A)A.RandomAccessFile類B.RandomFile類C.File類D.AccessFile類40、當(dāng)方法遇到異常又不知如何處理時,應(yīng)該怎么做(B)A.捕獲異常B.拋出異常C.聲明異常D.嵌套異常===============================================================================================================================================================================================================二、填空題:(10小題,每題1分,共10分)1、開發(fā)與運(yùn)行Java程序需要經(jīng)過的三個主要步驟為編輯源程序、編譯生成自節(jié)碼和解釋運(yùn)行字節(jié)。2、如果一個JavaApplet源程序文件只定義有一個類,該類的類名為MyApplet,則類MyApplet必須是Applet類的子類并且存儲該源程序文件的文件名為MyApplet.java。3、如果一個JavaApplet程序文件中定義有3個類,則使用Sun公司的JDK編譯器javac.exe編譯該源程序文件將產(chǎn)生3個文件名與類名相同而擴(kuò)展名為.class的字節(jié)碼文件。4、在Java的基本數(shù)據(jù)類型中,char型采用Unicode編碼方案,每個Unicode碼占用2字節(jié)內(nèi)存空間,這樣,無論是中文字符還是英文字符,都是占用2字節(jié)內(nèi)存空間。5、使用數(shù)組時,下標(biāo)表達(dá)式是整型表達(dá)式,下標(biāo)的范圍為0至數(shù)組長度減16、若x=5,y=10,則x<y和x>=y的邏輯值分別為true和false。8、創(chuàng)建一個名為MyPackage的包的語句是packageMyPackage;該語句應(yīng)該放在程序的位置為:應(yīng)該在程序第一句。9、在Java程序中,通過類的定義只能實(shí)現(xiàn)單重繼承,但通過接口的定義可以實(shí)現(xiàn)多重繼承關(guān)系。10、在文件操作中,publicStringgetName()功能是得到文件名。publicStringgetAbsolutePath()功能是返回文件絕對路徑。==================================================================1、開發(fā)與運(yùn)行Java程序需要經(jīng)過的三個主要步驟為編輯源程序、編譯生成字節(jié)碼和解釋運(yùn)行字節(jié)碼。2、如果一個JavaApplet源程序文件只定義有一個類,該類的類名為MyApplet,則類MyApplet必須是Applet類的子類并且存儲該源程序文件的文件名為MyApplet。3、如果一個JavaApplet程序文件中定義有3個類,則使用Sun公司的JDK編譯器javac.exe編譯該源程序文件將產(chǎn)生3個文件名與類名相同而擴(kuò)展名為.class的字節(jié)碼文件。4、在Java的基本數(shù)據(jù)類型中,char型采用Unicode編碼方案,每個Unicode碼占用2字節(jié)內(nèi)存空間,這樣,無論是中文字符還是英文字符,都是占用2字節(jié)內(nèi)存空間。5、設(shè)x=2,則表達(dá)式(x++)/3的值是1。6、若x=5,y=10,則x<y和x>=y的邏輯值分別為true和false。7、抽象(abstract)方法方法是一種僅有方法頭,沒有具體方法體和操作實(shí)現(xiàn)的方法,該方法必須在抽象類之中定義。最終(final)方法方法是不能被當(dāng)前類的子類重新定義的方法。8、創(chuàng)建一個名為MyPackage的包的語句是packageMyPackag,該語句應(yīng)該放在程序的位置為:應(yīng)該在程序第一句。9、設(shè)有數(shù)組定義:intMyIntArray[]={10,20,30,40,50,60,70};則執(zhí)行以下幾個語句后的輸出結(jié)果是120。ints=0;for(inti=0;i<MyIntArray.length;i++)if(i%2==1)s+=MyIntArray[i];System.out.println(s);10、在Java程序中,通過類的定義只能實(shí)現(xiàn)單重繼承,但通過接口的定義可以實(shí)現(xiàn)多重繼承關(guān)系。====================================================三、判斷題。1Java語言是平臺無關(guān)的語言。T2類的靜態(tài)方法中可以訪問該類的非靜態(tài)數(shù)據(jù)成員.F3Java中方法調(diào)用時參數(shù)傳遞都是按值傳遞的,因此從方法中退出時,參數(shù)的值是不會變的。T4覆蓋方法所拋出的異常不能比原方法更多。T5Final方法不能被覆蓋。T6抽象類中一定包含抽象方法。F7接口中的方法必須是抽象方法。T8在方法定義中,所以可能發(fā)生的異常都必須用try{}catch(){}捕捉。F9Java支持多重繼承。F10Final修飾的類不能派生子類。T11覆蓋的同名方法中,子類方法不能比父類方法的訪問權(quán)限更嚴(yán)格。T12不能在靜態(tài)方法中使用this.T13抽象類中不能創(chuàng)建對象。T14一個類可以實(shí)現(xiàn)多接口。T15接口中可以包含非靜態(tài)成員。F16不論是否捕捉到異常try{}catch(){}final{}語句中finally塊中的代碼總要被執(zhí)行。T17一個類實(shí)現(xiàn)一個接口,則該類必須實(shí)現(xiàn)接口中的所有方法。F18線程使用sleep方法去休眠后可以使用notify方法喚醒。F19線程使用sleep方法休眠是會釋放該線程同步鎖定的對象。F20Final類中的屬性和方法都必須是final的。F1、Java中的引用變量需要初始化,簡單變量可以不進(jìn)行初始化(x)2、子類可以繼承父類的除私有成員以外的其它所有成員。(v)3、Java只支持單繼承,也就是說子類只能有一個直接父類。(v)4、框架是一個程序的主窗口,它是頂級容器。(v)5、關(guān)閉框架時,缺省地也會關(guān)閉整個應(yīng)用程序。(x)6、Java可以設(shè)置程序的界面外觀,即可以讓程序在不同操作系統(tǒng)下按照系統(tǒng)特有的外觀風(fēng)格顯示,也可以將風(fēng)格統(tǒng)一。(v)7、中間容器,原子組件,菜單欄,工具欄等都直接放在頂級容器下(x)8、++op運(yùn)算符的作用是先將變量的值加1再返回變量的值(v)9、為了不影響程序的正常運(yùn)行,Javadoc命令全部嵌入在注釋語句中,以“/**”開頭,以“*/”結(jié)尾。(v)10、標(biāo)簽是最常用的組件,它的作用是在界面上顯示一行文字,標(biāo)簽也可以顯示圖片,或者即顯示圖片也顯示文字。(v)1即使一個類中未顯式定義構(gòu)造函數(shù),也會有一個缺省的構(gòu)造函數(shù),缺省的構(gòu)造函數(shù)是無參函數(shù),函數(shù)體為空。(對)2在Java的方法中定義一個常量要用const關(guān)鍵字。(錯)3在異常處理中總是將可能產(chǎn)生異常的語句放在try塊中,用catch子句去處理異常,而且一個try塊之后只能對應(yīng)一個catch語句。(錯)4Applet是一種特殊的Panel,它是JavaApplet程序的最外層容器。(對)5一個線程對象的具體操作是由run()方法的內(nèi)容確定的,但是Thread類的run()方法是空的,其中沒有內(nèi)容;所以用戶程序要么派生一個Thread的子類并在子類里重新定義run()方法,要么使一個類實(shí)現(xiàn)Runnable接口并書寫其中run()方法的方法體。(對)6Java的字符類型采用的是Unicode編碼,但所占字節(jié)由具體軟硬件環(huán)境決定。(錯)7所有的鼠標(biāo)事件都由MouseListener監(jiān)聽接口的監(jiān)聽者來處理。(錯)8Java語言中的數(shù)組元素下標(biāo)總是從0開始,下標(biāo)可以是整數(shù)或整型表達(dá)式。(對)9如果p是父類Parent的對象,而c是子類Child的對象,則語句p=c是正確的。(錯)10Java程序里,創(chuàng)建新的類對象用關(guān)鍵字new,回收無用的類對象使用關(guān)鍵字free。(錯)11由繼承性可知,程序中子類擁有的成員數(shù)目一定大于等于父類擁有的成員數(shù)目。(錯)12靜態(tài)初始化器是在其所屬的類加載內(nèi)存時由系統(tǒng)自動調(diào)用執(zhí)行。 (對)13 Applet是一種特殊的Panel,它是JavaApplet程序的最外層容器。 (對)14注釋的作用是使程序在執(zhí)行時在屏幕上顯示//之后的內(nèi)容。 (錯)15在異常處理中,若try中的代碼可能產(chǎn)生多種異常則可以對應(yīng)多個catch語句,若catch中的參數(shù)類型有父類子類關(guān)系,此時應(yīng)該將父類放在后面,子類放在前面。(對)==============================================================================================================================================================================================================四、簡答1比較接口與抽象類的共同點(diǎn)和不同點(diǎn).什么情況下應(yīng)采用接口,什么情況下應(yīng)采用抽象類.答:接口是包含一組虛方法的抽象類型,其中每一種方法都有其名稱、參數(shù)和返回值。接口方法不能包含任何實(shí)現(xiàn),CLR允許接口可以包含事件、屬性、索引器、靜態(tài)方法、靜態(tài)字段、靜態(tài)構(gòu)造函數(shù)以和常數(shù)。如果創(chuàng)建的功能將在大范圍的全異對象間使用,則使用接口。抽象類提供多個派生類共享基類的公共定義,它既可以提供抽象方法,也可以提供非抽象方法。抽象類不能實(shí)例化,必須通過繼承由派生類實(shí)現(xiàn)其抽象方法。相同點(diǎn):都不能被直接實(shí)例化,都可以通過繼承實(shí)現(xiàn)其抽象方法。都是面向抽象編程的技術(shù)基礎(chǔ),實(shí)現(xiàn)了諸多的設(shè)計模式。不同點(diǎn):接口支持多繼承;抽象類不能實(shí)現(xiàn)多繼承。接口只能定義抽象規(guī)則;抽象類既可以定義規(guī)則,還可能提供已實(shí)現(xiàn)的成員。接口是一組行為規(guī)范;抽象類是一個不完全的類,著重族的概念。接口可以用于支持回調(diào);抽象類不能實(shí)現(xiàn)回調(diào),因為繼承不支持。接口只包含方法、屬性、索引器、事件的簽名,但不能定義字段和包含實(shí)現(xiàn)的方法;抽象類可以定義字段、屬性、包含有實(shí)現(xiàn)的方法。接口可以作用于值類型和引用類型;抽象類只能作用于引用類型。例如,Struct就可以繼承接口,而不能繼承類。2類的加載和構(gòu)造方法的調(diào)用順序類的加載的順序:先遞歸地加載父類的靜態(tài)成員/代碼塊(object的最先);再依次加載到本類的靜態(tài)成員。調(diào)用構(gòu)造方法:先遞歸地調(diào)用父類的構(gòu)造方法;默認(rèn)調(diào)用父類空參的同,也可在第一行寫明調(diào)用用父類某個帶參的。再依次到本類的構(gòu)造方法;先初始化父類的靜態(tài)代碼--->初始化子類的靜態(tài)代碼-->====(創(chuàng)建實(shí)例時,如果不創(chuàng)建實(shí)例,則后面的不執(zhí)行)初始化父類的非靜態(tài)代碼--->====初始化父類構(gòu)造函數(shù)--->初始化子類非靜態(tài)代碼--->初始化子類構(gòu)造函數(shù)==3什么是重載,什么是覆蓋,有什么區(qū)別和共同點(diǎn)答:重載是指在同一個類中定義了多個名字相同而內(nèi)容不同的成員方法;覆蓋則是指在子類中定義了與父類具有相同名字的成員方法。重載與覆蓋的區(qū)別在于:重載是存在于同一個類的不同方法之間的多態(tài)關(guān)系,它們主要通過參數(shù)表中參數(shù)的個數(shù)、參數(shù)的數(shù)據(jù)類型和參數(shù)的順序等方面的不同來區(qū)分;面覆蓋是存在于父類與子類之間的多態(tài)關(guān)系,它們在引用時通過指出所屬類的類名來區(qū)分。==============================================================================================================================================================================================================五.程序閱讀題1.寫出以下程序的運(yùn)行結(jié)果。(54321)publicclassTestArray{publicstaticvoidmain(Stringargs[]){ inti,j; inta[]={1,3,2,5,4}; for(i=0;i<a.length-1;i++){ intk=i; for(j=i;j<a.length;j++) if(a[j]>a[k])k=j; inttemp=a[i]; a[i]=a[k]; a[k]=temp; } for(i=0;i<a.length;i++) System.out.print(a[i]+""); System.out.println();}}2.寫出以下程序的功能。(在屏幕上輸出test.java文件的內(nèi)容)importjava.io.*;class{ publicstaticvoidmain(String[]args)throwsIOException{ intb; (“test.java”); while((b=())!=-1){ System.out.print((char)b); } }}寫出以下程序的運(yùn)行結(jié)果。Str0str1str2str0str2importjava.util.*;publicclassVec{publicstaticvoidmain(String[]args){String[]s;s=newString[2];s[0]=newString("str1");s[1]=newString("str2");Vectorv=newVector();for(inti=0;i<2;i++)v.addElement(s[i]);v.insertElementAt(newString("str0"),0);Enumeratione=v.elements();while(e.hasMoreElements())System.out.print(e.nextElement()+"");System.out.println();v.removeElement("str1");for(inti=0;i<v.size();i++)System.out.print(v.elementAt(i)+"");System.out.println();}}4.寫出以下程序的運(yùn)行結(jié)果。intclassOverloadDemo{voidtestOverload(inti){System.out.println(“int”);}voidtestOverload(Strings){System.out.println(“String”);}publicstaticvoidmain(Stringargs[]){OverloadDemo a=newOverloadDemo();charch=’x’;a.testOverload(ch);}}5.閱讀以下程序,寫出輸出結(jié)果。inSecondclassclassFirst{ publicFirst(){ aMethod(); } publicvoidaMethod(){ System.out.println(“inFirstclass”);}}publicclassSecondextendsFirst{ publicvoidaMethod(){ System.out.println(“inSecondclass”);}publicstaticvoidmain(String[]args){ newSecond(); }}6.寫出以下程序的運(yùn)行結(jié)果。classStaticTest{staticintx=1;inty;StaticTest() { y++; } publicstaticvoidmain(Stringargs[]){ StaticTestst=newStaticTest(); System.out.println("x="+x); System.out.println("st.y="+st.y); st=newStaticTest(); System.out.println("st.y="+st.y); } static{x++;}}x=2sty=1sty=17.閱讀以下程序:classExp1{publicstaticvoidmain(String[]args) { Strings,s1=""; charc; s=args[0]; for(inti=0;i<s.length();i++) { c=s.charAt(i); if(c>='a'&&c<='z'){s1=s1+Character.toUpperCase(c);}else{ s1=s1+Character.toLowerCase(c); } } System.out.println(s1); }}若在dos命令行輸入:javaExp1cHINA,則輸出為JAVAeXP1China。8.閱讀以下程序:importjava.io.*;publicclassAboutFile{ publicstaticvoidmain(String[]args){ BufferedReaderb=newBufferedReader(newInputStreamReader(System.in)); Strings; System.out.flush(); s=b.readLine(); System.out.println(“Stringis:”+s); }}運(yùn)行以上程序,若從鍵盤輸入:java<回車>則輸出結(jié)果為Stringis:java。9.閱讀以下程序,寫出輸出結(jié)果。classAnimal{Animal(){System.out.print("Animal");}}publicclassCatextendsAnimal{Cat(){System.out.print("Cat");}publicstaticvoidmain(String[]args){Catkitty=newCat();}}AnimalCat10.以下程序段的輸出結(jié)果為int,intclassCruncher{ voidcrunch(inti){ System.out.print(“int”); }voidcrunch(Strings){System.out.print(“String”);}publicstaticvoidmain(Stringargs[]){Cruncher crun=newCruncher();charch=’h’;inti=12;crun.crunch(ch);System.out.print(“,”);crun.crunch(i);}}11.閱讀以下程序,輸出結(jié)果為cooljava。importjava.io.*;publicclassTestString{publicstaticvoidmain(Stringargs[]){StringCs=newStringC("cool","java");System.out.println(s);}}classStringC{Strings1;Strings2;StringC(Stringstr1,Stringstr2){s1=str1;s2=str2;}publicStringtoString(){returns1+s2;}}12.以下程序段的輸出結(jié)果為1v0v11vo。importjava.util.*;publicclassVecApp{publicstaticvoidmain(String[]args){Vectorv=newVector();for(inti=0;i<2;i++)v.addElement("v"+i);v.insertElementAt(newInteger(1),0);Enumeratione=v.elements();while(e.hasMoreElements())System.out.print(e.nextElement()+"");System.out.println();v.removeElement("v1");for(inti=0;i<v.size();i++)System.out.print(v.elementAt(i)+"");System.out.println();}}四.編程題1.編寫一個輸出"WelcometoJavaWorld!"的Applet程序和嵌入該Applet的HTML頁面。①//Welcome.java②//Welcome.html<html></html>importjava.applet.*;importjava.awt.*;publicclassWelcomeextendsApplet{publicstaticStringstr=null;publicvoidinit(){str="WelcometoJavaWorld!";};publicvoidpaint(Graphicsg){g.drawString(str,10,50);};}編寫一個完整的JavaApplication程序。包含接口ShapeArea,類Circle、Rectangle、Test,具體要求如下:⑴接口ShapeArea:①接口方法doublegetArea():求一個形狀的面積doublegetPerimeter():求一個形狀的周長⑵類Rectangle:實(shí)現(xiàn)ShapeArea接口,并有以下屬性和方法:屬性width:double型,表示長方形的寬度height:double型,表示長方形的長度方法Rectangle(doublew,doubleh):構(gòu)造函數(shù)toString():輸出矩形的描述信息,如“width=1.0,height=2.0,perimeter=6.0,area=2.0”⑶Test類作為主類要完成測試功能生成Rectangle對象②調(diào)用對象的toString方法,輸出對象的描述信息publicclassTest{//主類定義2分publicstaticvoidmain(Stringargs[]){Rectangler=newRectangle(1,2);System.out.println(r.toString());}}interfaceShapeArea//接口定義2分{publicabstractdoublegetPerimeter();publicabstractdoublegetArea();}classRectangleimplementsShapeArea{doublewidth,height;//屬性定義1分Rectangle(doublew,doubleh)//構(gòu)造函數(shù)定義1分{width=w;height=h;}publicdoublegetPerimeter()//1分{return2*(width+height);}publicdoublegetArea()//1分{returnwidth*height;}publicStringtoString()//2分{return"width="+width+",height="+height+",perimeter="+getPerimeter()+",area="+getArea();}}================================================================1、打印出所有的“水仙花數(shù)”,所謂的“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字的立方和等于其本身。例如:153是個“水仙花數(shù)”,因為153=13+53+33classsxh{publicstaticvoidmain(Stringargs[]){intfirst,second,third;for(inta=100;a<1000;a++){first=a/100;second=a/10%10;third=a%10;if(a==first*first*first+second*second*second+third*third*third){System.out.println(a);}}}}2、編寫一種從小到大排序程序。例如:a數(shù)組中有10個數(shù)。分別是{3,2,5,21,9,10,7,16,8,20},經(jīng)過排序算法后,a數(shù)組變?yōu)閧2,3,5,7,8,9,10,16,20,21,}。classpaixu{publicstaticvoidmain(Stringargs[]){inta[]={3,2,5,21,9,10,7,16,8,20};intb,c,d;System.out.println("beforsorted");for(b=0;b<10;b++){System.out.print(a+"");}System.out.println("");for(b=1;b<=9;b++)for(c=0;c<=9-b;c++){if(a[c]>a[c+1]){d=a[c];a[c]=a[c+1];a[c+1]=d;}}System.out.println("aftersorted");for(b=0;b<10;b++){System.out.print(a+"");}System.out.println("");====================================================================寫出下列程序完成的功能。(每小題5分,)1、publicclassSum{publicstaticvoidmain(Stringargs[]){doublesum=0.0;for(inti=1;i<=100;i++)sum+=1.0/(double)i;System.out.println("sum="+sum);}}答:計算1/1+1/2+1/3+...+1/100的值2、importjava.io.*;publicclassReverse{publicstaticvoidmain(Stringargs[]){inti,n=10;inta[]=newint[10];for(i=0;i<n;i++)try{BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));a[i]=Integer.parseInt(br.readLine());//輸入一個整數(shù)}catch(IOExceptione){};for(i=n-1;i>=0;i――)System.out.print(a[i]+"");System.out.println();}}答:從標(biāo)準(zhǔn)輸入(鍵盤)讀入10個整數(shù)存入整型數(shù)組a中,然后逆序輸出這10個整數(shù)3、importjava.awt.*;publicclassabc{publicstaticvoidmain(Stringargs[]){newFrameOut();}}classFrameOutextendsFrame//Frame為系統(tǒng)定{Buttonbtn;//義的窗框類FrameOut(){super("按鈕");btn=newButton("按下我");setLayout(newFlowLayout());add(btn);setSize(300,200);show();}}答:創(chuàng)建一個標(biāo)題為"按鈕"的窗框,窗框中顯示有"按下我"字樣的按鈕。4、importjava.io.*;publicclassabc{publicstaticvoidmain(Stringargs[]){SubClasssb=newSubClass();System.out.println(sb.max());}}classSuperClass{inta=10,b=20;}classSubClassextendsSuperClass{intmax()

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論