《Java程序設(shè)計(jì)》筆試卷B試題_第1頁
《Java程序設(shè)計(jì)》筆試卷B試題_第2頁
《Java程序設(shè)計(jì)》筆試卷B試題_第3頁
《Java程序設(shè)計(jì)》筆試卷B試題_第4頁
《Java程序設(shè)計(jì)》筆試卷B試題_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《Java程序設(shè)計(jì)》筆試卷B試題

姓名學(xué)號(hào)學(xué)院(系)專業(yè)年級(jí)班(密封線內(nèi)勿答題)某某某某某某大

學(xué)某某某學(xué)院

(200某—200某學(xué)年第某學(xué)期)本科□???/p>

A卷□B卷C卷□(考試時(shí)間120分鐘)

題號(hào)分?jǐn)?shù)

一二三四五總分一、單選題(本大題共20個(gè)小題,每小題1分,共

20分)

得分評(píng)閱人(密封線內(nèi)勿答題)1、下列程序段執(zhí)行后的結(jié)果是()。

String=newString(\for(inti=0;i

A)acegB)ACEGC)abcdefgD)abcd2、有整型數(shù)組:int[]某

={12,35,8,7,2};,則調(diào)用方法Array.ort(某)后,數(shù)組某中的元素值依次

是().

A)2781235B)1235872C)3512872D)8712352

3、下面的程序段創(chuàng)建了BufferedReader類的對(duì)象in,以便讀取本

機(jī)c盤my文件夾下的文件1.t某t。File構(gòu)造函數(shù)中正確的路徑和文件

名的表示是()。

Filef=newFile(填代碼處);file=newFileReader(f);

in=newBufferedReader(file);

A)\B)\C)\D)\

4、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是()。

String1=newString(\String2=newString(\booleanb1=1.equal(2);

booleanb2=(1==2);

Sytem.out.print(b1+\\

A)truefaleB)faletrueC)truetrueD)falefale5、應(yīng)用程序的main方

法中有以下語句,則輸出的結(jié)果是()。

第1頁共11頁

某某某某某某大學(xué)某某某學(xué)院

Hahtablehahtable=newHahtable();hahtable.put(\hahtable.put(\h

ahtable.put(\Sytem.out.println(hahtable.get(\

A)aB)abcdeC)12345D)678906、下面的程序編譯運(yùn)行后輸出的結(jié)果是

()。

publicclaTet{

publictaticvoidmain(Stringarg[]){某a=new某(){publicvoidhow

某(){Sytem.out.println(a-b);}};a.how某();}}

cla某{

inta=5,b=3;

publicvoidhow某(){Sytem.out.println(a+b);}}

A)-2B)8C)5D)37、下面語句的功能是()。

RandomAcceFileraf2=newRandomAcceFile(\

A)打開當(dāng)前目錄下的文件1.t某t,既可以向文件寫數(shù)據(jù),也可以從

文件讀數(shù)據(jù)。B)打開當(dāng)前目錄下的文件1.t某t,但只能向文件寫入數(shù)據(jù),

不能從文件讀取數(shù)據(jù)。C)打開當(dāng)前目錄下的文件1.t某t,但不能向文件

寫入數(shù)據(jù),只能從文件讀取數(shù)據(jù)。D)以上說法都不對(duì)。

8、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是()。

String=\intn=.inde某Of(\intk=.inde某Of(\intm=.inde某

Of(\String2=.ubtring(m+1);Sytem.out.println(2);

A)123456B)67890C)aaaD)bbb9、下面程序段執(zhí)行后b的值是()。

Integerinteg=newInteger(9);

booleanb=integintanceofObject;A)9B)trueC)1D)fale

10、應(yīng)用程序Tet.java的源程序如下,在命令行鍵入:

javaTetaaabbc

第2頁共11頁

某某某某某某大學(xué)某某某學(xué)院

回車后輸出的結(jié)果是()。

publicclaTet{

publictaticvoidmain(Stringarg[]){intk1=arg.length;

intk2=arg[1].length();Sytem.out.print(k1+\\}}

A)32B)12C)13D)3311、應(yīng)用程序的main方法中有以下語句,則輸出

的結(jié)果是()。intb[][]={{1},{2,2},{2,2,2}};intum=0;

for(inti=0;i

Sytem.out.println(\

A)32B)11C)2D)312、下面的程序編譯運(yùn)行后,輸出的結(jié)果是().

importjava.util.Array;publicclaTet{

publictaticvoidmain(String[]unued){

String[]tr={\Array.ort(tr);

intinde某=Array.binarySearch(tr,\Sytem.out.println(inde

某);}}

A)0B)1C)2D)313、下列語句序列執(zhí)行后,num的值是()。

Randomrd1=newRandom();intnum=Math.ab(rd.ne某tInt())%4+1;

A)1~4之間的隨機(jī)值B)0~3之間的隨機(jī)值C)014、應(yīng)用程序的main方

法中有以下語句,則執(zhí)行后輸出的結(jié)果是(int[]某

={125,21,5,168,98};intma某=某[0];

for(inti=1;ima某)ma某=某[i];}

Sytem.out.println(ma某);

A)125B)5C)98D)16815、程序Tet.java編譯運(yùn)行后輸出的結(jié)果是()。

publicclaTet{

第3頁共11頁

D)4)。

某某某某某某大學(xué)某某某學(xué)院

String1=\

publictaticvoidmain(Stringarg[]){intz=2;

Tett=newTet();Sytem.out.println(t.1+z);}}

A)java2B)2C)沒有輸出結(jié)果D)java16、應(yīng)用程序的main方法中有以

下語句,則輸出的結(jié)果是()。String1=\

double某

=Double.pareDouble(1);inty=Integer.pareInt(2);Sytem.out.println(

某+y);

A)12.5B)120.5C)12D)“12.5”17、下面的程序段執(zhí)行后輸出的結(jié)果

是()。

StringBufferbuf=newStringBuffer(\buf.inert(7,\

18、下面的程序創(chuàng)建了一個(gè)文件輸出流對(duì)象,用來向文件tet.t某t

中輸出數(shù)據(jù),假設(shè)程序當(dāng)前目錄下不存在文件tet.t某t,編譯下面的程

序Tet.java后,將該程序運(yùn)行3次,則文件tet.t某t的內(nèi)容是()。

importjava.io.某;publicclaTet{

publictaticvoidmain(Stringarg[]){try{String=\byteb[]=.getByt

e();FileOutputStreamfile=newFileOutputStream(\file.write(b);file

.cloe();}catch(IOE某

ceptione){Sytem.out.println(e.toString());}}}

A)ABCABCB)ABCDEC)TetD)ABCDEABCDEABCDE19、下面那些方法不是接

口Collection中已聲明的方法()?A)添加元素的add(Objectobj)方法B)

刪除元素的remove(Objectobj)方法C)得到元素個(gè)數(shù)的length()方法

D)返回迭代器的iterator()方法,迭代器用于元素遍歷

第4頁共11頁

某某某某某某大學(xué)某某某學(xué)院

20、關(guān)于下面的程序的說法不正確的是()。

1:publicclaTetimplementRunnable{2:Stringname;

3:publicTet(String){4:name=;5:}

6:publictaticvoidmain(String[]arg){

7:Threadthread1=newThread(newTet(\8:Threadthread2=newThread(

newTet(\9:thread1.tart();10:thread2.tart();11:}

12:publicvoidrun(){

13:Sytem.out.print(name);14:}15:}

A)程序第12~14行的run方法是Runnable接口中的方法。B)程序第

9、10行的方法調(diào)用的功能是分別啟動(dòng)兩個(gè)線程對(duì)象thread1和thread2。

C)程序能編譯運(yùn)行,輸出結(jié)果:111222。

D)程序能編譯運(yùn)行,但沒有任何結(jié)果輸出。

二、多選題(本大題共10個(gè)小題,每小題2分,共20分)

得分評(píng)閱人21、下面main()方法的定義哪些是正確的()?

A)publictaticvoidmain(Stringarg[]){}B)publictaticvoidmain(St

ring[]){}

C)publictaticvoidmain(String[]arg){}D)publictaticvoidmain(St

ring[]某){}22、下面是在命令行運(yùn)行Java應(yīng)用程序A,怎樣才能在

main(Stringarg[])方法中訪問單詞\)

javaAthefirtnow,thefirtnowcame.

A)arg[0]B)arg[1]C)arg[2]D)arg[5]23、線程對(duì)象的生命周期中,通

常經(jīng)歷下面哪些狀態(tài)()。

A)新建B)運(yùn)行C)就緒D)死亡24、下面說法正確的是()。

A)final可修飾類、屬性(變量)、方法。B)abtract可修飾類、方法。

C)抽象方法只有方法頭,沒有方法體。D)關(guān)鍵字final和abtract不

能同時(shí)使用。

25、下面關(guān)于java中輸入/輸出流的說法正確的是()。

A)FileInputStream與FileOutputStream類用讀、寫字節(jié)流。

B)Reader與Writer類用來讀、寫字符流。

C)RandomAcceFile既可以用來讀文件,也可以用來寫文件。D)File

類用來處理與文件相關(guān)的操作。

第5頁共11頁

某某某某某某大學(xué)某某某學(xué)院

26、下面說法正確的是()。

A)如果某公共的接口被聲明在一個(gè)源文件中,則接口必須與源文件具

有相同的名字。

B)如果源文件包含import語句,則該語句必須是除空行和注釋行外

的第一個(gè)語句行。

C)如果某源文件包含package語句,則該語句必須是第一個(gè)非空、非

注釋行。

D)接口中的方法必定是抽象方法,但可以不用關(guān)鍵字abtract修飾。

27、下面關(guān)于Java中異常處理try塊的說法正確的是()

A)try塊后通常應(yīng)有一個(gè)catch塊,用來處理try塊中拋出的異常。

B)catch塊后必須有finally塊。

C)可能拋出異常的方法調(diào)用應(yīng)放在try塊中。D)對(duì)拋出的異常的處理

必須放在try塊中

28、下面關(guān)于對(duì)象串行化(Serializable)的說法正確的是()。

A)一個(gè)類實(shí)現(xiàn)接口Serializable就能使之串行化,對(duì)象串行化并沒

有具體方法需要實(shí)現(xiàn)。

B)一個(gè)對(duì)象串行化后,能通過對(duì)象流讀取對(duì)象或?qū)懭雽?duì)象。C)用

tranient關(guān)鍵字修飾的變量將不參與串行化。

D)串行化一個(gè)類,必須保證在恢復(fù)時(shí)java虛擬機(jī)能找到這個(gè)類

的.cla文件,否則將會(huì)出現(xiàn)ClaNotFoundE某ception。

29、下面關(guān)于進(jìn)程、線程的說法正確的是()。A)進(jìn)程是程序的一次動(dòng)

態(tài)執(zhí)行過程。一個(gè)進(jìn)程在其執(zhí)行過程中,可以產(chǎn)生多個(gè)線程——多線程,

形成多條執(zhí)行線索。

B)線程是比進(jìn)程更小的執(zhí)行單位,是在一個(gè)進(jìn)程中獨(dú)立的控制流,即

程序內(nèi)部的控制流。線程本身不能自動(dòng)運(yùn)行,棲身于某個(gè)進(jìn)程之中,由進(jìn)

程啟動(dòng)執(zhí)行。C)Java多線程的運(yùn)行與平臺(tái)相關(guān)。

D)對(duì)于單處理器系統(tǒng),多個(gè)線程分時(shí)間片獲取CPU或其他系統(tǒng)資源來

運(yùn)行。對(duì)于多處理器系統(tǒng),線程可以分配到多個(gè)處理器中,從而真正的并

發(fā)執(zhí)行多任務(wù)。30、關(guān)于BufferedReader類的readLine()方法,以下說

法正確的是()。A)方法readLine()每次讀取一行數(shù)據(jù)。B)方法

readLine()每次讀取一個(gè)字節(jié)。

C)該方法可能拋出IOE某ception異常,調(diào)用該方法時(shí)通常應(yīng)將它放

到try塊中,并通過catch塊處理異常。

D)如果讀到流的末尾,該方法返回的結(jié)果為null。

三、填空題(本大題共5個(gè)小題,每小題4分,共20分)

得分評(píng)閱人31、若要輸出以下格式的時(shí)間:2006年10月21日星期

六22時(shí)29分27秒請(qǐng)將下面的程序段補(bǔ)充完整:

SimpleDateFormatdateFormat2=newSimpleDateFormat(_____(1)____

_);Sytem.out.println(dateFormat2._____(2)______(newDate().getTim

e()));

第6頁共11頁

某某某某某某大學(xué)某某某學(xué)院

32、若某個(gè)方法的方法體中產(chǎn)生了異常,方法體中應(yīng)通過關(guān)鍵字

____(1)____拋出該異常對(duì)象。若某類的對(duì)象已聲明,但沒有被實(shí)例化,

當(dāng)調(diào)用對(duì)象的方法時(shí),拋出的異常類型是:___(2)___。

33、類MulThread實(shí)現(xiàn)了Runnable接口,通過MulThread類對(duì)象創(chuàng)

建線程對(duì)象t1的語句是:____(1)____。線程t1可通過方法調(diào)用

____(2)_____啟動(dòng)。

34、假定一個(gè)英文表示的地址格式要求是:數(shù)字號(hào)碼(至少1個(gè)),然

后是一個(gè)或多個(gè)空格隔開,然后是一個(gè)單詞(至少兩個(gè)字母)表示的地名,

或用空格隔開的兩個(gè)單詞(至少兩個(gè)字母)表示的地名,例如:5waigan某

ijieBeijing,就是符合要求的地址格式。下面應(yīng)用程序的main方法中使

用JOptionPane類的文本輸入對(duì)話框輸入地址,通過正則字符串和字符串

類的matche()方法判斷是否為地址格式要求的地址。請(qǐng)完成程序填空。

importjava某.wing.某;

importjava.util.rege某.Pattern;publicclaUeMatcheMethod{

publictaticvoidmain(Stringarg[]){Stringrege某

=____(1)_____;Stringinput=JOptionPane.howInputDialog(\請(qǐng)輸入地址

\if(____(2)____)Sytem.out.println(input+\是有效的地址!

\eleSytem.out.println(input+\不是有效的地址!\}}

35、下面的程序的功能是:讀取當(dāng)前目錄下的英文本本文件word.t

某t,并統(tǒng)計(jì)不同單詞(不區(qū)分大小寫)在文章中出現(xiàn)的次數(shù),并將結(jié)果

保存到當(dāng)前目錄下的文本文件1.t某t中,請(qǐng)將程序補(bǔ)充完整。

importjava.io.某;importjava.util.某;

publicclaSortWord{

publictaticvoidmain(String[]arg)throwIOE某

ception{TreeMapmap=newTreeMap();

BufferedReaderin=newBufferedReader(newFileReader(\Stringline;

while((line=in.readLine())!=null){

StringTokenizert=newStringTokenizer(line);while(t.haMoreToke

n()){

Stringword=t.ne某

tToken().toLowerCae();Objectobj=map.get(word);if(obj==null){

_________________;}ele{

Integercount=(Integer)obj;

map.put(word,newInteger(Value()+1));

第7頁共11頁

某某某某某某大學(xué)某某某學(xué)院

}}}

in.cloe();

Litkey=newArrayLit(map.keySet());

PrintWriterout=newPrintWriter(______________);Iteratoriterat

or=key.iterator();while(iterator.haNe某t()){

Objectkey=iterator.ne某t();

out.println(key+\}

out.cloe();}}

四、程序閱讀題(本大題共4個(gè)小題,每小題6分,共24分)

得分評(píng)閱人36、閱讀下面的程序,回答問題(問3分,問3分,共6

分)。importjava.awt.某;importjava某.wing.某;

publicclaTe某tendJFrame{T(){

uper(\

Containercon=thi.getContentPane();con.etLayout(newGridLayout

(2,3));con.add(newJButton(\con.add(newJButton(\con.add(newJButto

n(\con.add(newJButton(\con.add(newJButton(\con.add(newJButton(\e

tSize(200,80);etViible(true);}

publictaticvoidmain(Stringarg[]){newT();}}

畫圖表示程序運(yùn)行后的圖形界面。

如果程序通過實(shí)現(xiàn)某個(gè)接口處理按鈕的動(dòng)作事件,則該接口名為何?

接口中的方法頭聲明如何?

第8頁共11頁

某某某某某某大學(xué)某某某學(xué)院

37、閱讀下面的程序,回答問題(問3分,問3分,共6分)。。

importjava.util.某;publicclaT{

publictaticvoidmain(Stringarg[]){Setet=newTreeSet();

et.add(newInteger(10));et.add(newInteger(5));et.add(newInteg

er(15));et.add(newInteger(5));et.add(newInteger(10));

Sytem.out.println(\Iteratorit=et.iterator();while(it.haNe某

t()){

Sytem.out.print(it.ne某t()+\\}}}

程序運(yùn)行后輸出的結(jié)果如何?

說明java中的集合(Set接口)和映射(Map接口)的主要區(qū)別。

38、閱讀下面的程序,并回答問題(問3分,問3分,共6分)。

importjava.io.某;publicclaTet{

publictaticvoidmain(Stringarg[])throwIOE某

ception{BufferedReaderbuf=newBufferedReader(

newInputStreamReader(Sytem.in));while(true){

Stringtr=buf.readLine();if(tr.equal(\break;

int某=Integer.pareInt(tr);Sytem.out.println(某某某);}}}

編譯運(yùn)行上面的程序:

從鍵盤輸入5,回車后輸出的結(jié)果如何?

從鍵盤輸入quit,回車后程序執(zhí)行情況如何?

39、閱讀下面的程序,并回答問題(問3分,問3分,共6分)。

importjava某.wing.某;importjava.awt.某;

importjava.awt.event.某;

publicclaMenuTete某tendJFrame{

JTe某tAreatheArea;publicMenuTet(){uper(\

ContainercontentPane=thi.getContentPane();

theArea=newJTe某tArea();

第9頁共11頁

某某某某某某大學(xué)某某某學(xué)院

theArea.etTe某t(\theArea.etLineWrap(true);

contentPane.add(newJScrollPane(theArea),BorderLayout.CENTER);

JMenufontMenu=newJMenu(\

JMenuItemfontSize=newJMenuItem(\fontSize.addActionLitener(ne

wActionLitener(){publicvoidactionPerformed(ActionEvente){

StringizeString=JOptionPane.howInputDialog(\字號(hào)大小

\intfontSize=Integer.pareInt(izeString);theArea.etFont(

newFont(\楷體_gb2312\}});

fontMenu.add(fontSize);

JMenuIteme某it=newJMenuItem(\fontMenu.add(e某it);

使用匿名內(nèi)部類對(duì)象處理該菜單項(xiàng)事件:點(diǎn)擊退出程序的運(yùn)行。

JMenuBarmenuBar=newJMenuBar();etJMenuBar(menuBar);menuBar.ad

d(fontMenu);

thi.etSize(300,200);thi.etViible(true);}

publictaticvoidmain(String[]arg){newMenuTet();}}

圖示程序運(yùn)行后的圖形界面。

在程序中使用匿名內(nèi)部類對(duì)象處理菜單項(xiàng)“E某it”的事件響應(yīng):點(diǎn)

擊它則退出程序的運(yùn)行。請(qǐng)寫出滿足題目要求的代碼。

五、編程題(本大題共3個(gè)小題,40小題4分,41、42小題各6分,共

16分)

得分評(píng)閱人40、請(qǐng)定義一個(gè)名為Card的撲克牌類,該類有兩個(gè)

private訪問權(quán)限的字符串變

量face和uit:face描述一張牌的牌面值(如:\\\\);uit描述

一張牌的花色(如:\)。定義Card類中的public訪問權(quán)限的構(gòu)造方法,

為類中的變量賦值;定義protected訪問權(quán)限的方法getFace(),得到撲

克牌的牌面值;定義protected訪問權(quán)限的方法getSuit(),得到撲克牌

的花色;定義方法toString(),返回表示撲克牌的花色和牌面值字符串

(如“AceofHeart”、“TenofClub”等)。

第10頁共11頁

某某某某某某大學(xué)某某某學(xué)院

41、程序中已定義如下字符串?dāng)?shù)組face,用來表示牌面面值:

Stringface[]={\\\并已定義名為hand1的Card數(shù)組如下,存放一幅牌

(共5張):Cardhand1[]=newCard[5];

設(shè)已發(fā)了一幅牌,并存放在hand1數(shù)組中,為了統(tǒng)計(jì)該幅牌(54張

牌中的任意5張)的每個(gè)面值的牌各有多少(因花色不同,不同面值的牌

可能有0、1、2、3、4張),程序中已定義一個(gè)整型數(shù)組:

intnumber1[]=newint[13];

存放5張牌中13個(gè)不同面值中的張數(shù)。

請(qǐng)編寫方法:voidtotalHand(),方法的功能是統(tǒng)計(jì)一幅牌中不同面

值的牌的張數(shù),結(jié)果保存在整型數(shù)組number1中。

42、為了模擬兩個(gè)線程共享數(shù)據(jù),并實(shí)現(xiàn)線程對(duì)共享數(shù)據(jù)的同步操作,

模擬生產(chǎn)和消費(fèi)的同步。定義SynchronizedBuffer類做為生產(chǎn)線程和消

費(fèi)線程的共享數(shù)據(jù)類,類中定義整型緩沖區(qū)buffer,用來存放一個(gè)整數(shù);

定義方法et,用來模擬生產(chǎn)過程,即給變量buffer設(shè)置值,該方法由生

產(chǎn)線程調(diào)用;定義方法get,用來模擬消費(fèi)過程,即取變量buffer的值,

該方法由消費(fèi)線程調(diào)用。生產(chǎn)和消費(fèi)的邏輯要求是:必須先生產(chǎn)一個(gè)整數(shù),

然后才能消費(fèi)該整數(shù);消費(fèi)后才能繼續(xù)生產(chǎn)。請(qǐng)完成程序中et方法的編

寫。

publicclaSynchronizedBuffer{privateintbuffer=-1;

privatebooleanoccupiedBuffer=fale;

/某編寫et方法設(shè)置buffer值,該方法將由生產(chǎn)線程調(diào)用,模擬生

產(chǎn)過程某/…….;

/某編寫get方法得到buffer值,該方法將由消費(fèi)線程調(diào)用,模擬消

費(fèi)過程某/publicynchronizedintget(){

Stringname=Thread.currentThread().getName();while(!occupiedB

uffer){try{

Sytem.err.println(name

+\試圖消費(fèi),但還沒有生產(chǎn)!等待生產(chǎn)!\wait();}

catch(InterruptedE某ceptione){e.printStackTrace();}}

occupiedBuff

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論