河南理工大學(xué)JAVA期末考試試卷和習(xí)題及答案_第1頁
河南理工大學(xué)JAVA期末考試試卷和習(xí)題及答案_第2頁
河南理工大學(xué)JAVA期末考試試卷和習(xí)題及答案_第3頁
河南理工大學(xué)JAVA期末考試試卷和習(xí)題及答案_第4頁
河南理工大學(xué)JAVA期末考試試卷和習(xí)題及答案_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

河南理工大學(xué)JAVA期末考試試卷和習(xí)題及答案匯總

一、單項選擇題

1.下面哪個不是Java中的容器?B

A、ScrollPaneB、CanvasC、AppletD、Dialog

2.下面哪個方法與applet的顯示無關(guān)?A

A、draw。B、update()C、repaint0D、paint()

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

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

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

A、FlowLayoutB、CardLayoutC、BorderLayoutD、GridLayout

5.有如下代碼段:

1)

2){if(unsafe()){//dosomething,?,}

3)elseif(safe()){//dotheother…}

4))

其中,方法unsafe。將拋出lOException,請問可將以下哪項填入第1行?D

A、publiclOExceptionmethodName()

B、publicvoidmethodName()

C、publicvoidmethodName()throwlOException

D、publicvoidmethodName。throwslOException

6.以下哪個關(guān)鍵字可以用來對對象加互斥鎖?B

A、transientB、synchronizedC、serializeD>static

7.編譯并運(yùn)行以下程序,以下描述哪個選項是正確的C

1.classA{

2.protectedbooleanequals(){

3.returnsuper,equals();}

4.)

A、編譯通過運(yùn)行無異常B、編譯通過但運(yùn)行時出錯

C、行2出錯,不能成功編譯D、不能成功編譯,行3出錯

8.在使用interface聲明一個接口時,只可以使用(D)修飾符修飾該接口。

A、privateB、protectedC、privateprotectedD、public

9.Java的字符類型采用的是Unicode編碼方案,每個Unicode碼占用(B)個

比特位。

A、8B、16C、32D、64

10.在編寫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[l]);}

)

A、編譯將產(chǎn)生錯誤B、編譯時正確,但運(yùn)行時將產(chǎn)生錯誤

C、正確,輸出0D、正確,輸出null

13.有語句Strings="rhelloworld";,以下操作哪個是不合法的?(B)

A、inti=s.length();B、s>>>=3;C、Stringts=s.trim。;D、Stringt=s+"!

14.給出如下代碼:

classTest{

privateintm;

publicstaticvoidfun(){

//somecode...

)

)

如何使成員變量m被函數(shù)fun()直接訪問?(C)

A、將privateintm改為protectedintm

B、將privateintm改為publicintm

C、將privateinim改為sialicinim

D、將privateintm改為intm

15.Javaapplication中的主類需包含main方法,main方法的返回類型是什

么?(D)

A、intB、floatC、doubleD、void

16.有以下方法的定義,請選擇該方法的返回類型(D)o

ReturnTypemethod(bytex,doubley)

(

return(short)x/y*2;

}

A、byteB、shortC>intD、double

17.下列哪些語句關(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、BorderLayoutB、FlowLayoutC、GridLayoutD、CardLayout

20.設(shè)有下面兩個賦值語句:

a=Integer,parselnt("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.//dosth

4.)

A、importjava.awt.*;B^packagemypackage;

C、classOtherClass{}D、publicclassMyClass{}

23.以下哪個不是Java的關(guān)鍵字?(A)

A、TRUEB、constC、superD、void

24.關(guān)于以下application的說明,正確的是(C)o

1.classStaticStuff

2.{

3.staticintx;

4.static{x+=5;}

5.publicstaticvoidmain(Stringargs[])

6.{

7.System,out.printin("x="+x);

8.)

9.static{x/=5;}

10.)

A、4行與9行不能通過編譯,因為缺少方法名和返回類型

B、9行不能通過編譯,因為只能有一個靜態(tài)初始化器

C、編譯通過,執(zhí)行結(jié)果為:x=l

D、能通過編譯,但程序運(yùn)行結(jié)果不可預(yù)知,因為變量x沒有初始化

25.FilterOutputStream是BufferedOutputStream>DataOutputStream及

PrintStream的父類,以下哪個類可能是FilterOutputStream構(gòu)造函數(shù)的參數(shù)

類型?B

A、OutputstreamB、FileC、InputStreamD、BufferedOutputStream

26.在使用interface聲明一個接口時,只可以使用(D)修飾符修飾該接口。

A、privateB^protectedC、privateprotectedD、public

27.有程序片段如下,以下哪個表示式的結(jié)果為true?(B)

Floats=newFloat(0.If);

Floatt=newFloat(0.If);

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)0

A.javaB.class

C.htmlD.exe

2、以下哪一個不是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.JavaH標(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、以下項中,不屬于成員變量的定義部分的是:D

A.訪問級;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).

A.放置并排列組件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)用框架對象的selTille函數(shù)顯示

D調(diào)用框架對象的Border對象的setTitle函數(shù)顯示

15、下列關(guān)于Java語言的特點(diǎn),描述錯誤的是(C)

A.Java是跨平臺的編程語言B.Java支持分布式計算

CJava是面向過程的編程語言D.Java支持多線程

16、下述概念中不屬于面向?qū)ο蠓椒ǖ氖荄―o

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.abstractdoubled;D.AbstractfinaldoublehyperbolicCosine()

19>Applet可以做下列哪些操作?C

A.讀取客戶端文件B.在客戶端主機(jī)上創(chuàng)建新文件

C在客戶端裝載程序庫D.讀取客戶端部分系統(tǒng)變量

20、下列關(guān)于for循環(huán)和while循環(huán)的說法中哪個是正確的?c

A.while循環(huán)能實現(xiàn)的操作,for循環(huán)也都能實現(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.exe

2、設(shè)x=1,y=2,z=3,則表達(dá)式y(tǒng)+=z---/++x的值是(A)。

A.3B,3.5C.4D.5

3、在JavaApplet程序用戶自定義的Applet子類中,一般需要重載父類的

(D)方法來完成一些畫圖操作。

A.start()B.stop()C.init()D.paint()

4、不允許作為類及類成員的訪問控制符的是(C)「

A.publicB.privateC.sialicD.protected

5、為AB類的一個無形式參數(shù)無返回值的方法method書寫方法頭,使得使用類

名AB作為前綴就可以調(diào)用它,該方法頭的形式為(A)o

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.Of;

Intq=6;

System,out.printin((t++)*(一q));

A.40B.40.0C.45.0D.36.0

3、下列關(guān)于修飾符混用的說法,錯誤的是(D)

A.abstract不能與final并列修飾同一■個類

B.abstract類中可以有非abstract的方法

C.普通類(非abstract類)中不能有abstract方法

D.sialic方法中能處理非sialic的屬性

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.3

6、以下賦值語句正確的是(D)

A.charcl="a"B.floatf1=3.22C.bytebl=266D.longLl=0xAC8L

7、Java不支持多重繼承,但我們可以通過(B)實現(xiàn)

A.多態(tài)B.接口C.覆蓋D.抽象類

8.已知類person是類student的父類,以下數(shù)組定義和賦值哪些是正確的(A)

A.personp[]=newperson[3];p[l]=newstudent。;

B.students[]=newperson[3];s[1]=newperson();

C.personp[]=newstudent[3];p[l]=newpersonO;

D.students[]=newstudent[3];s[1]=newperson;

9編譯MyClass.java之后,得到了三個字節(jié)碼文件:MyClass.class,

MyClasslittle$.classMyClass$l.class.這表明(C)

A.MyClass類中的兩個方法:little和1

B.MyClass.Java中有三個類:MyClass>little和1

CMyClass類中有兩個內(nèi)部類:一個是命名的litlle,另一個是匿名的1

D.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(String

arg口)

11、當(dāng)編譯和運(yùn)行下面的代碼會出現(xiàn)什么情況?(A)

Importjava.io.*;

ClassExBase{

Abstractpublicvoidmartley()

)

PublicclassMyExextendsExBase{

Publicstaticvoidmain(Stringargv[]){

DatalnputStreamfi=newDatalnputStream(System,in);

Try{

Fi.readChar();

)

Catch(lOEceptione){

System,exit(0);

)

Finally{System,out.println(uDoingfinally");)

)

)

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被定義為private

B編譯錯誤,System,out調(diào)用的s沒有被初始化

C可以編譯和運(yùn)行,沒有輸出結(jié)果

D可以編譯和運(yùn)行,輸出結(jié)果為99

13、給出下面的代碼:

ClassBase{}

ClassAggextendsBase{

PublicStringgetFields(){

Stringname=wAgg”;

Returnname;

}

}

PublicclassAvf{

Publicstaticvoidmain(Stringargv[]){

Basea=newAgg();

//Here

)

)

當(dāng)把下面的代碼添加到注釋"/Here"后面,程序的輸出結(jié)果是“Agg”(D)

A.System,out.printin(a.getFields())B.System,out.println(a.name)

C.System,out.printin((Base)a.getFields())

D?System.oul.prinlln(((Agg)a),getFields())

14、當(dāng)編譯和運(yùn)行下面的代碼會出現(xiàn)什么情況?(A)

AbstractclassBase{

Abstractpublicvoidmyfunc();

Publicvoidanother(){

System,out.println(uAnothermethod");

}

)

PublicclassAbsextendsBase{)

Publicstaticvoidmain(Stringargv[]){

Absa=newAbs();

a.amethodO;

Publicvoidmyfunc(){

System,out.printin(^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{

PublicvoidamethodOthrowsFileNotFoundException{}

)

PublicclassExcepDemoextendsBase{

Publicstaticvoidmain(Stringargv[J){

NewExcepDemo();

}

PublicvoidamethodO{}

ProtectedExcepDemo(){

try{

BufferedReaderinputStream=newBufferedReader(newInputStreamReader);

System.out.println("Pausing");

inputstream.readLine0;

System,out.println("Contimuing”);

This,amethod();

}catch(lOExceptionioe){}

)

A編譯錯誤,因為構(gòu)造方法被聲明為protected

B編譯錯誤,因為方法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();

A、Aclass

Aclass

B、Bclass

Bclass

C、Aclass

Bclass

D、Bclass

Aclass

18、看以下程序

Booleana=false;

Booleanb=true;

Booleanc=(a&&b)&&(!b);

Intresult=c==false?l:2;

這段程序執(zhí)行完后,c與result的值是:(A)

Ac二false;result=1;Bc=true;result=2;

Cc=true;result=l;Dc=false;result=2;

19、下面哪個單詞是Java語言的關(guān)鍵字(B)

A.FloatB.thisC.stringD.unsigned

20>switch語句(A)

A.都可以用if-elseif結(jié)構(gòu)實現(xiàn)

B.都不可以用if-elseif結(jié)構(gòu)實現(xiàn)

C.有的可以用if-elseif結(jié)構(gòu)實現(xiàn)

D.大部分不可以用if-elseif結(jié)構(gòu)實現(xiàn)

21、在異常處理中,如釋放資源、關(guān)閉文件等善后操作由(C)來完成。

A.try子句B,catch子句Afinally子句D.throw子句

22、下面哪個是Java語言中正確的標(biāo)識符(C)

A.3comB.importC.thatD.this

23、下面哪個修飾符修加布族只能被本類中的其他方法使用(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.final

27、下面關(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.FlowLouLayout

30、給出如下代有一

ClassTest{

Privateintm;

Publicstaticvoidfun(){

//somecode…

如何使成員變量m被函數(shù)fun()直接訪問?(C)

A將privateintm改為protectedintm

B將privateintm改為publicintm

C將privateintm改為staticintm

D將privateintm改為intm

31、有個無形式參數(shù)無返回值的方法method書寫方法頭,使得使用類名AB作為

前綴就……法頭的形式為(A)

A.staticvoidmethod。B.publicvoidmethod()

C.finalvoidmethod()D.abstractvoidmethod()

32、編譯JavaApplication源程序文件將產(chǎn)生相應(yīng)的字節(jié)碼文件,這些字節(jié)碼

文件的擴(kuò)展名為(B)

A.javaB.class

C.htmlD.exe

33、如果只要讓類中的成員變量可以被同一包訪問,則使用如下哪個訪問控制

符?(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、為實現(xiàn)多線程之間的通信,需要使用下列哪種流才合適(D)

AFilterstream;BFilestream

CRandomaccessstream;DPipedInputStream和PipedOutputStream

37、函數(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)的范圍為至數(shù)組長度減1

6、若x=5,y=10,則x<y和x>=y的邏輯值分別為true和false。

8^創(chuàng)建一個名為MyPackage的包的語句是packageMyPackage;該語

句應(yīng)該放在程序的位置為:應(yīng)該在程序第一句。

9、在Java程序中,通過類的定義只能實現(xiàn)單重繼承,但通過接口的定義

可以實現(xiàn)多重繼承關(guān)系。

10、在文件操作中,publicStringgetNameO功能是得到文件名。

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和

false0

7、抽象(abstract)方法方法是一種僅有方法頭,沒有具體方法體和操

作實現(xiàn)的方法,該方法必須在抽象類之中定義。最終(final)方法方法是不

能被當(dāng)前類的子類重新定義的方法。

8、創(chuàng)建一個名為MyPackage的包的語句是package

MyPackag,

該語句應(yīng)該放在程序的位置為:應(yīng)該在程序第一句O

9、設(shè)有數(shù)組定義:intMylntArrayE]={10,20,30,40,50,60,

70);則執(zhí)行以下幾個語句后的輸出結(jié)果是120。

ints=0;

for(inti=0;i<MylntArray.length;i++)

if(i%2==1)s+=MylntArray[i];

System,out.println(s);

10、在Java程序中,通過類的定義只能實現(xiàn)單一重繼承,但通過接口的

定義可以實現(xiàn)多重繼承關(guān)系。

三、判斷題。

IJava語言是平臺無關(guān)的語言。T

2類的靜態(tài)方法中可以訪問該類的非靜態(tài)數(shù)據(jù)成員.F

3Java中方法調(diào)用時參數(shù)傳遞都是按值傳遞的,因此從方法中退出時,參數(shù)的值

是不會變的。T

4覆蓋方法所拋出的異常不能比原方法更多。T

5Final方法不能被覆蓋。T

6抽象類中一定包含抽象方法。F

7接口中的方法必須是抽象方法。T

8在方法定義中,所以可能發(fā)生的異常都必須用try{}catch。。捕捉。F

9Java支持多重繼承。F

lOFinal修飾的類不能派生子類。T

11覆蓋的同名方法中,子類方法不能比父類方法的訪問權(quán)限更嚴(yán)格。T

12不能在靜態(tài)方法中使用this.T

13抽象類中不能創(chuàng)建對象。T

14一個類可以實現(xiàn)多接口。T

15接口中可以包含非靜態(tài)成員。F

16不論是否捕捉到異常try{}catch(){}final{}語句中finally塊中的代碼總

要被執(zhí)行。T

17一個類實現(xiàn)一個接口,則該類必須實現(xiàn)接口中的所有方法。F

18線程使用sleep方法去休眠后可以使用notify方法喚醒。F

19線程使用sleep方法休眠是會釋放該線程同步鎖定的對象。F

20Final類中的屬性和方法都必須是final的。F

1、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。方法,要么使一個類實現(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是正確

的。(錯)

lOJava程序里,創(chuàng)建新的類對象用關(guān)鍵字new,回收無用的類對象使用關(guān)鍵字

free。(錯)

11由繼承性可知,程序中子類擁有的成員數(shù)目一定大于等于父類擁有的成員數(shù)

目。(錯)

12靜態(tài)初始化器是在其所屬的類加載內(nèi)存時由系統(tǒng)自動調(diào)用執(zhí)行。

(對)

13Applet是一種特殊的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ù)

和返回值。接口方法不能包含任何實現(xiàn),CLR允許接口可以包含事件、屬性、索

引器、靜態(tài)方法、靜態(tài)字段、靜態(tài)構(gòu)造函數(shù)以及常數(shù)。如果創(chuàng)建的功能將在大

范圍的全異對象間使用,則使用接口。

抽象類提供多個派生類共享基類的公共定義,它既可以提供抽象方法,也可

以提供非抽象方法。抽象類不能實例化,必須通過繼承由派生類實現(xiàn)其抽象方法。

相同點(diǎn):都不能被直接實例化,都可以通過繼承實現(xiàn)其抽象方法。都是面向抽

象編程的技術(shù)基礎(chǔ),實現(xiàn)了諸多的設(shè)計模式。

不同點(diǎn):接口支持多繼承;抽象類不能實現(xiàn)多繼承。接口只能定義抽象規(guī)

則;抽象類既可以定義規(guī)則,還可能提供已實現(xiàn)的成員。接口是一組行為規(guī)范;

抽象類是一個不完全的類,著重族的概念。接口可以用于支持回調(diào);抽象類不能

實現(xiàn)回調(diào),因為繼承不支持。接口只包含方法、屬性、索引器、事件的簽名,

但不能定義字段和包含實現(xiàn)的方法;抽象類可以定義字段、屬性、包含有實現(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)建實例時,如果不創(chuàng)建實例,則后面的不執(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.

classFileI0Demo(

publicstaticvoidmain(Stringt]args)throwslOException{

intb;

FilelnputStreamfileln=new

FileInputStream("test,java");

while((b=fileln.readO)!=-1){

System,out.print((char)b);}}

)

3.寫出以下程序的運(yùn)行結(jié)果。Str0strlstr2str0str2

importjava.util.

publicclassVec{

publicstaticvoidmain(String[]args){

Stringt]s;

s=newString[2];

s[0]=newString(〃strl〃);

s[l]=newString(,zstr2z/);

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.printin();

v.removeElement(^strT');

for(inti=0;i<v.size();i++)

System,out.print(v.elementAt(i)+〃〃);

System.out.printlnO;}

)

4.寫出以下程序的運(yùn)行結(jié)果。int

classOverloadDemo{

voidtestOverload(inti){

System.out.println(“int");}

voidtestOverload(Strings){

System.out.println("String");}

publicstaticvoidmain(Stringargs[]){

OverloadDemoa=newOverloadDemo();

charch='x';

a.testOverload(ch);}

)

5.閱讀以下程序,寫出輸出結(jié)果。inSecondclass

classFirst{

publicFirst(){

aMethodO;}

publicvoidaMethod(){

System,out.printin("inFirstclass");}

)

publicclassSecondextendsFirst{

publicvoidaMethodO{

System,out.println("inSecondclass");}

publicstaticvoidmain(String[]args){

newSecond();}

}

6.寫出以下程序的運(yùn)行結(jié)果。

classStaticTest{

staticintx=l;

inty;

StaticTest()

{y++;}

publicstaticvoidmain(Stringargs[]){

StaticTestst=newStaticTest();

System,out.printinCzx=/,+x);

System,out.println(z,st.y=//+st.y);

st=newStaticTest();

System,out.printin(/?st.y=/z+st.y);}

static{x++;}

)

x=2sty=lsty=l

7.閱讀以下程序:

classExpl

(

publicstaticvoidmain(String[]args)

(

Strings,sl=〃〃;

charc;

s=args[0];

for(inti=0;i<s.length();i++)

{c=s.charAt(i);

if(c>=,a&&c<=,z'){

sl=sl+Character.toUpperCase(c);

}else{

sl=sl+Character.toLowerCase(c);)

)

System,out.printin(si);

)

)

若在dos命令行輸入:javaExplcHINA,則輸出為JAVAeXPlChina。

8.閱讀以下程序:

importjava.io.publicclassAboutFile{

publicstaticvoidmain(String[]args){

BufferedReaderb=newBufferedReader(new

InputStreamReader(System,in));

Strings;

溫馨提示

  • 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

提交評論