JAVA語言程序設(shè)計復(fù)習(xí)題及答案_第1頁
JAVA語言程序設(shè)計復(fù)習(xí)題及答案_第2頁
JAVA語言程序設(shè)計復(fù)習(xí)題及答案_第3頁
JAVA語言程序設(shè)計復(fù)習(xí)題及答案_第4頁
JAVA語言程序設(shè)計復(fù)習(xí)題及答案_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

JAVA語言程序設(shè)計考試試題及部分答案

一、單選題:(每題1分)下列各題A)、B)、C)、D)四個選項中,只有一個選

項是正確的,請將正確選項的標(biāo)記寫在題干后的括號內(nèi)。

1.下列語句序列執(zhí)行后,k的值是(B)。

intm=3,n=6,k=0;

while((m++)<(―n))++k;

A)0B)1C)2D)3

2.設(shè)i、j為int型變量名,a為int型數(shù)組名,以下選項中,正確的賦值語句是(B)。

A)i=i+2B)a[0]=7;

0i++——j;D)a(0)=66;

3.Java語言的類間的繼承關(guān)系是(B)o

A)多重的B)單重的C)線程的D)不能繼承

4.設(shè)有定義inti=6;,則執(zhí)行以下語句后,i的值為(C)o

i+=i-1;

A)10B)121C)11D)100

5.下列選項中,用于在定義子類時聲明父類名的關(guān)鍵字是(C)。

A)interfaceB)packageC)extendsD)class

6.若已定義byte[]x={11,22,33,-66};

其中OWk這3,則對x數(shù)組元素錯誤的引用是(C)。

A)x[5-3]B)x[k]C)x[k+5]D)x[0]

7.下列語句序列執(zhí)行后,chi的值是(B)o

charchl='A*,ch2='Wr;

if(chl+2<ch2)++chl;

A)'A'B)'B'C)'CrD)B

8.下列語句序列執(zhí)行后,i的值是(D)0

inti=8,j=16;

if(i-l>j)i―;elsej-;

A)15B)16C)7D)8

9.下列語句序列執(zhí)行后,k的值是(C)o

inti=10,j=18,k=30;

switch(j-i)

{case8:k++;

case9:k+=2;

case10:k+=3;

default:k/=j;

)

A)31B)32C)2D)33

10.下面語句執(zhí)行后,i的值是(B)o

for(inti=0,j=l;j<5;j+=3)i=i+j;

A)4B)5C)6D)7

11.設(shè)有定義floatx=3.5f,y=4.6f,z=5.7f;則以下的表達(dá)式中,值為true的是

(B)o

A)x>y||x>zB)x!=y

C)z>(y+x)D)x<y&!(x<z)

12.下列語句序列執(zhí)行后,i的值是(D)。

inti=16;

do{i/=2;}while(i>3);

A)16B)8C)4D)2

13.以下由for語句構(gòu)成的循環(huán)執(zhí)行的次數(shù)是(B)o

for(inti=0;true;i++);

A)有語法錯,不能執(zhí)行B)無限次

0執(zhí)行1次D)一次也不執(zhí)行

14.定義類頭時能使用的修飾符是(C)。

A)privateB)staticC)abstractD)protected

15.設(shè)int型變量a、b,float型變量x、y,char型變量ch均已正確定義并賦

值,

正確的switch語句是D)o

A)switch(x+y)B)switch(ch+1)

C)switchchD)switch(a+b);

{.....}{.....}

16.下列最終屬性i的定義中,正確的是()o

A)staticfinalint1=100;B)finalinti=l.2;

C)finali=*w';D)finalchari;

17.下列類定義中,不正確的是(C)o

A)classx{….}

B)classxextendsy{....}

C)staticclassximplementsyl,y2{....}

D)publicclassxextendsApplet{….}

18.設(shè)x、y為已定義的類名,下列聲明x類的對象xl的語句中正確的是()o

A)staticxxl;B)publicxxl=newx(int123);

C)yxl;D)xxl=x();

19.設(shè)i、j、k為類x中定義的int型變量名,下列類x的構(gòu)造函數(shù)中不正確的

是(B)0

A)x(intm){...}B)voidx(intm){...j

C)x(intm,intn){...}D)x(inth,intDI,intn)(...}

20.下列方法定義中,正確的是(A)o

A)intx(){charch=*a';return(int)ch;}

B)voidx(){...returntrue;}

C)intx(){...returntrue;}

D)intx(inta,b){returna+b;}

21.用于定義類成員的訪問控制權(quán)的一組關(guān)鍵字是(D)。

A)class,float,double,public

B)float,boolean,int,long

C)char,extends,float,double

D)public,private,protected

22.不能構(gòu)成循環(huán)的語句是(C)。

A)for語句B)while語句C)switch語句D)do__while語句

23.下列程序段執(zhí)行后b3的結(jié)果是(D)。

10.下面是一個JavaApplication的主類的定義,其功能是輸出所有命令行參數(shù)。

importjava.io.*;

publicclassMyClass

(

publicstaticvoidmain(Stringargs[])

(

if(args,length!=_0_)

for(inti=0;i<args,length;i++)

System.out.printin(_'ri=w+i);

elseSystem,out.printin(沒有命令行參數(shù));

}

)

11下面是一個小程序的主類myprogram的定義,其中A、B是該主類所在源程序中已

定義的另兩個類的類名:

importjavaawt.*;

importjavaapplet.*;

publicclassmyprogramextendsApplet〃定義小程序的主類

{

Aa;Bb;

publicmyprograminit()

{a=newA();b=new_B();}

}

12.Java的復(fù)合數(shù)據(jù)類型有:類、數(shù)組和—接口—等。Java的簡單數(shù)據(jù)類型有:

數(shù)值類型(整形和浮點類型),自負(fù)類型和布爾類型

13.表達(dá)式3/6*5的計算結(jié)果是_0o

14.定義初值為10的10次方的長整型變量Ivar的語句是:______long

lvar=l*el0。

15.順序結(jié)構(gòu)、分支結(jié)構(gòu)(或稱選擇結(jié)構(gòu))、_循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計

的三種基本流程控制結(jié)構(gòu)。

16.以下方法m的功能是求兩參數(shù)之積的整數(shù)部分。

intm(floatx,floaty)

{k=(int)x*y;}

17.Java源程序文件編譯后產(chǎn)生的文件稱為一字節(jié)碼—文件,其擴(kuò)展名為

.class____o

18.Java和C++都是面向?qū)ο蟮某绦蛟O(shè)計語言。

三、程序分析:(每題4分)

1.下面是一個排序的程序:

importjava.io.*;

publicclassTest56_Sort

(

publicstaticvoidmain(StringargsE])

(

int[]a={42,99,5,63,95,36,2,69,200,96);

System.out.printin(排序前的數(shù)據(jù)序列:);

ShowArray(a);

Sort(a);

System.out.printin(排序后的數(shù)據(jù)序列:);

ShowArray(a);

)

publicstaticvoidSort(int[]x)

(

intw;

for(inti=l;i<x.length;i++)

(

for(intj=0;j<x.length-1;j++)

if(x[j]>x[j+l])

{w=x[j];x[j]=x[j+l];x[j+l]=w;}

/*if(i==l||i==2)ShowArray(x);

if(i==2)break;*/

)

}

publicstaticvoidShowArray(intb[])

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

System,out.print(wb[iH+i+M]=°+b[i]);

System,out.println();

)

)

問題:如果將方法Sort()中的一對注釋符(/**/)去掉,程序輸出的結(jié)果是什么?

排序前的數(shù)據(jù)序列:

b[0]=42b[l]=99b[2]=5b[3]=63b[4]=95b[5]=36b[6]=2b[7]=69b[8]=200b[9]=96

b[0]=42b[l]=5b[2]=63b[3]=95b[4]=36b[5]=2b[6]=69b[7]=99b[8]=96b[9]=200

b[0]=5b[l]=42b[2]=63b[3]=36b[4]=2b[5]=69b[6]=95b[7]=96b[8]=99b[9]=200

排序后的數(shù)據(jù)序列:

b[0]=5b[1]=42b[2]=63b[3]=36b[4]=2b[5]=69b[6]=95b[7]=96b[8]=99b[9]=200

2.請寫下程序的輸出結(jié)果:

publicclassTest52

{

Stringstrl=MHello,Javaworld!\t'r;

Stringstr2=wHello,students!,r;

publicstaticvoidmain(Stringargs[])

(

System,out.print(strl);

System,out.printin(str2);

)

)

輸出結(jié)果:

3.請寫下程序的輸出結(jié)果:

publicclassT2_4(

publicstaticvoidmain(String[]args)

inti,j;

charc='*";

for(i=0;i<5;i++)

(

for(j=0;j<=i;j++)

System.out.print(M*");

System.out.printin();

}

}

}

輸出結(jié)果:

4、請寫下程序的輸出結(jié)果:

publicclassex2_2

(

publicstaticvoidmain(Stringargs[])

(

intx,y;

byteb=6;

floatz=1.234f;

doublew=1.23;

booleanflag:

x=12;

Y=300;

flag=x>y;

System.out.printin(nx>y==,,+flag);

flag=z>w;

System.out.printin(nz>w==',+flag);

)

)

四、問答題:(每題5分,)

1.Java的接口和C++的虛類的相同和不同處,

由于Java不支持多繼承,而有可能某個類或?qū)ο笠褂梅謩e在幾個類或?qū)ο罄?/p>

面的方法或?qū)傩裕F(xiàn)有的單繼承機(jī)制就不能滿足要求。與繼承相比,接口有更高的靈

活性,因為接口中沒有任何實現(xiàn)代碼。當(dāng)一個類實現(xiàn)了接口以后,該類要實現(xiàn)接口里

面所有的方法和屬性,并且接口里面的屬性在默認(rèn)狀態(tài)下面都是publicstatic,所

有方法默認(rèn)情況下是public.一個類可以實現(xiàn)多個接口。

2.垃圾回收的優(yōu)點和原理。并考慮2種回收機(jī)制。

Java語言中一個顯著的特點就是引入了垃圾回收機(jī)制,使C++程序員最頭疼的內(nèi)

存管理的問題迎刃而解,它使得Java程序員在編寫程序的時候不再需要考慮內(nèi)存管

理。由于有個垃圾回收機(jī)制,Java中的對象不再有“作用域”的概念,只有對象的引

用才有"作用域:垃圾回收可以有效的防止內(nèi)存泄露,有效的使用可以使用的內(nèi)存。

垃圾回收器通常是作為一個單獨的低級別的線程運行,不可預(yù)知的情況下對內(nèi)存堆中

已經(jīng)死亡的或者長時間沒有使用的對象進(jìn)行清楚和回收,程序員不能實時的調(diào)用垃圾

回收器對某個對象或所有對象進(jìn)行垃圾回收?;厥諜C(jī)制有分代復(fù)制垃圾回收和標(biāo)記垃

圾回收,增量垃圾回收,

3,談?wù)刦inal,finally,finalize的區(qū)別。

Final一修飾符(關(guān)鍵字)如果一個類被聲明為final,意味著它不能再派生出

新的子類,不能作為父類被繼承。因此一個類不能既被聲明為abstract的,又被聲

明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲

明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。

被聲明為final的方法也同樣只能使用,不能重載。

Finally一再異常處理時提供finally塊來執(zhí)行任何清除操作。如果拋出一個異

常,那么相匹配的catch子句就會執(zhí)行,然后控制就會進(jìn)入finally塊(如果有的

話)。

Finalize一方法名,Java技術(shù)允許使用finalize()方法在垃圾收集器將對象

從內(nèi)存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象

沒有被引用時對這個對象調(diào)用的。它是在Object類中定義的,因此所有的類都繼承

了它。子類覆蓋finalizeC)方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize

O方法是在垃圾收集器刪除對象之前對這個對象調(diào)用的。

4,數(shù)組有沒有l(wèi)ength()這個方法?String有沒有l(wèi)ength()這個方法?舉

例說明使用方法?

數(shù)組沒有l(wèi)ength()這個方法,有l(wèi)ength的屬性。

String有有l(wèi)ength()這個方法。

5.Java中的異常處理機(jī)制的簡單原理和應(yīng)用。

當(dāng)JAVA程序違反7JAVA的語義規(guī)則時,JAVA虛擬機(jī)就會將發(fā)生的錯誤表示為

一個異常。違反語義規(guī)則包括2種情況。一種是JAVA類庫內(nèi)置的語義檢查。例如數(shù)

組下標(biāo)越界,會引發(fā)IndexOutOfBoundsException;訪問null的對象時會引發(fā)

NullPointerExccption,另一種情況就是JAVA允許程序員擴(kuò)展這種語義檢查,程序員

可以創(chuàng)建自己的異常,并自由選擇在何時用thro不關(guān)鍵字引發(fā)異常。所有的異常都

是java.lang.Thowable的子類。

五、程序設(shè)計:(每題11分,共33分)

1、編程:編寫一個截取字符串的函數(shù),輸入為一個字符串和字節(jié)數(shù),輸出為按字節(jié)

截取的字符串。但是要保證漢字不被截半個,如“我ABC”4,應(yīng)該截為“我AB",輸入

"我ABC漢DEF",6,應(yīng)該輸出為"我ABC"而不是"我ABC+漢的半個,

2、編程求解:所有兩位整數(shù)能被3整除的數(shù)的和,以及不能被3整除的數(shù)的各位數(shù)

字之和。

3、設(shè)計一個程序求解e的值。精度達(dá)到l.Oe-6,

4、請設(shè)計一個對N個數(shù)進(jìn)行排序的程序

一、選擇題(每道題只有一個正確答案,每小題2分,共30分)15道題

1、關(guān)于Java語言敘述錯誤的是:(C)

A.Java語言具有跨平臺性

B.Java是一種面向?qū)ο蟮恼Z言

C.Java語言中的類可以多繼承

D.Java的垃圾收集機(jī)制自動回收程序已不再使用的對象

2、以下敘述正確的是:(B)的確臺a

A.構(gòu)造方法必須是public方法

B.main方法必須是public方法

C.Java應(yīng)用程序的文件名可以是任意的

D.構(gòu)造方法應(yīng)該聲明為void類型

3、關(guān)于Java中數(shù)據(jù)類型敘述正確的是:(B)

A、整型數(shù)據(jù)在不同平臺下長度不同

B.boolean類型數(shù)據(jù)只有2個值,true和false

C.數(shù)組屬于簡單數(shù)據(jù)類型

D.Java中的指針類型和C語言的一樣

4、設(shè)intx=l,float尸2,則表達(dá)式x/y的值是:(D)

A.0

B.1

C.2

D.以上都不是

5、以下語句有語法錯的是:(A)

A.intx=l;y=2;z=3

B.for(intx=10,y=0;x>0;x++);

C.while(x>5);

D.for(;;);

6、關(guān)于類和對象的敘述正確的是:(A)

A.Java的類分為兩大部分:系統(tǒng)定義的類和用戶自定義的類

B.類的靜態(tài)屬性和全局變量的概念完全一樣,只是表達(dá)形式不同

C.類的成員至少有一個屬性和一個方法

D.類是對象的實例化

7、以下有關(guān)構(gòu)造方法的說法,正確的是:(A)

A.一個類的構(gòu)造方法可以有多個

B.構(gòu)造方法在類定義時被調(diào)用

C.構(gòu)造方法只能由對象中的其它方法調(diào)用

D.構(gòu)造方法可以和類同名,也可以和類名不同

8、以下有關(guān)類的繼承的敘述中,正確的是:(D)

A.子類能直接繼承父類所有的非私有屬性,也可通過接口繼承父類的私有屬性

B.子類只能繼承父類的方法,不能繼承父類的屬性

C.子類只能繼承父類的非私有屬性,不能繼承父類的方法

D.子類不能繼承父類的私有屬性

9、下列屬于容器的組件有:(B)

A.JButton

B.JPane

C.Canvas

D.JTextArea

10、void的含義:(C)

A.方法體為空

B.定義的方法沒有形參

C.定義的方法沒有返回值

D.方法的返回值不能參加算術(shù)運算

11、關(guān)于Java中異常的敘述正確的是:(D)

A.異常是程序編寫過程中代碼的語法錯誤

B.異常是程序編寫過程中代碼的邏輯錯誤

C.異常出現(xiàn)后程序的運行馬上中止

D.異常是可以捕獲和處理的

12、所有的異常類皆繼承哪一個類?(C)

A.java.io.Exception

B.java.lang.Throwable

C.java.lang.Exception

D.java.lang.Error

13、下面哪個不是java語言中的關(guān)鍵字?(B)

A.long

B.sizeof

C.instanceof

D.const

14、為實現(xiàn)進(jìn)程之間的通信,需要使用下列那種流才合適?(D)

A.Datastream

B.Filestream

C.Bufferedstream

D.Pipedstream

15、在復(fù)選框中移動鼠標(biāo),然后單擊一選項,要捕獲所選項必需實現(xiàn)哪個接口?(D)

A.ActionListener

B.MouseListener

C.MouseMotionListern

D.TtemListener

二、填空題(每空1分,共20分)

1、面向?qū)ο蟪绦蛟O(shè)計所具有的基本特征是:—抽象性_封裝性_繼承性

―多態(tài)性—

2、數(shù)組x定義如下

intx[][]=newint[3][2]

則x..length的值為____3________,

x[0].length的值為2_______。

3、Java中實現(xiàn)多線程一般使用兩種方法,一是___繼承Thread類,二是

實現(xiàn)Runnable方法

4、Java的圖形用戶界面設(shè)計中,有很多布局管理器用來擺放組件的位置,一般用到

的布局管理器有(列出四種即可)—FlowLaycut,GridLayout,

―BorderLayout,CardLayout

5、Applet常用的方法是:—init()_._run()—、—stop()—和destroy。。

三、閱讀程序,寫出程序的輸出結(jié)果(每題5分,共20分)

1、classA{

privateintprivateVar;

A(int_privateVar){

privateVar=_privateVar;

}

booleanisEqualTo(AanotherA){

if(this.privateVar==anotherA.privateVar)

returntrue;

else

returnfalse;

)

publicclassB{

publicstaticvoidmain(Stringargs[]){

Aa=newA(l);

Ab=newA(2);

System,out.printin(a.isEqualTo(b));

)

}

程序的輸出結(jié)果為:____false_____

2、classA{

doublef(doublex,doubley){

returnx*y;

}

}

classBextendsA{

doublef(doublex,doubley){

returnx+y;

}

}

publicclassTest{

publicstaticvoidmain(Stringargs口)(

Bobj=newB();

System.out.println(MTheprogramoutputis"+obj.f(4,6));

}

}

程序的輸出結(jié)果為:―Theprogramoutputis10_

3、publicclassUnchecked{

publicstaticvoidmain(String[]args){

try(

method():

}catch(Exceptione){

System,out.printin(,rA");

}finally{

System,out.printin(,rB");

}

)

staticvoidmethod(){

try(

wrench();

System.out.printin("C");

}catch(ArithmeticExceptione){

System.out.printin("D");

}finally{

System.out.printin('rEM);

)

System.out.printin(,rF");

1

staticvoidwrench(){

thrownewNulIPointerException();

}

}

程序的輸出結(jié)果為:

E

A

B

4、publicclassTest{

publicstaticvoidmain(String[]args){

intx;

inta[]={0,0,0,0,0,0};

calculate(a,a[5]);

System,out.printinC1thevalueofa[0]isw+a[0]);

System.out.printin(,rthevalueisa[5]is"+a[5]);

)

staticintcalculate(intx[],inty){

for(inti=1;i<x.length;i++)

if(y<x.length)

x[i]=x[i-1]+1;

returnx[0];

)

}

程序的輸出結(jié)果為:

thevalueofa[0]is0

thevalueisa[5]is5

1.下面哪些是short型的取值范圍[C]

A,-27-27-1

B.0-216-1

C.-215-215-1

D.-231-231-1

2.下面哪些是合法的標(biāo)識符[ABE]

A.{persons

B.TwoUsers

C.*point

D.this

E._endline

3.哪些是將一個十六進(jìn)制值賦值給一個long型變量[D]

A.longnumber=345L;

B.longnumber=0345;

C.longnumber=0345L;

D.longnumber=0x345L;

4.下面的哪些程序片斷可能導(dǎo)致錯誤。[BD]

A.

Strings="Gonewiththewind',;

Stringt="good";

Stringk=s+t;

B.

Strings="Gonewiththewind'1;

Stringt;

t=s[3]+"one";

C.

Strings="Gonewiththewind'1;

Stringstandard=s.toUpperCase();

D.

Strings="homedirectory

Stringt=s-"directory”;

5.在〃pointx處的哪些聲明是合法的[DE]

classPerson(

privateinta;

publicintchange(intin){returnm;}

}

publicclassTeacherextendsPerson{

publicintb;

publicstaticvoidmain(Stringarg[]){

Personp=newPerson();

Teachert=newTeacher();

inti;

//pointx

)

}

A.i=m;

B.i=b;

C.i=p.a;

D.i=p.change(30);

E.i=t.b;

6.當(dāng)Frame的大小被改變時,F(xiàn)rame中的按鈕的位置也可能被改變,請問此時使用

的是什么布局管理器[B]

A.BorderLayout

B.FlowLayout

C.CardLayout

D.GridLayout

7.給出下面的代碼片斷

1publicvoidcreate(){

2VectormyVect;

3myVect=newVector();

4)

下面的哪些陳述是正確的?[ADE]

A.第二行的聲明不會為變量myVect分配內(nèi)存空間。〃指的是堆空間,只是在棧中

分配;這里不用較真.自己理解就好;

B.第二行的聲明分配一個到Vector對象的引用的內(nèi)存空間。

C.第二行語句創(chuàng)建一個Vector類對象。

D.第三行語句創(chuàng)建一個Vector類對象。

E.第三行語句為一個Vector類對象分配內(nèi)存空間。

〃分配棧空間,相當(dāng)于指針,但是不分配"到Vector對象的引用的空間”;選項二的意

思是分配了堆空間;

8.下面的哪些答案可以用以表示八進(jìn)制值8?[A]

A.010

B.0x10

C.08

D.0x8

9.哪些不是Java關(guān)鍵字[AB]

A.TRUE

B.sizeof

C.const

D.super

E.void

10.下面的哪些敘述為真。[AD]

A.equals。方法判定引用值是否指向同一對象?!ú徽f是誰的就是默認(rèn)的

B.==操作符判定兩個分立的對象的內(nèi)容和類型是否一致。

C.equals。方法只有在兩個對象的內(nèi)容一致時返回true。

D.類File重寫方法equals。在兩個分立的對象的內(nèi)容和類型一致時返回true。//

當(dāng)兩個獨立的對象的內(nèi)容和類型一致;

11.下面關(guān)于繼承的哪些敘述是正確的。[AD]

A.在java中只允許單一繼承。

B.在java中一個類只能實現(xiàn)一個接口。

C.在java中一個類不能同時繼承一個類和實現(xiàn)一個接口。

D.java的單一繼承使代碼更可靠。

12.第十行的聲明將調(diào)用哪些方法.[D]

1classPerson{

2publicvoidprintValue(inti,intj){}

3publicvoidprintValue(inti){}

4)

5publicclassTeacherextendsPerson{

6publicvoidprintValue0{}

7publicvoidprintValue(inti){}

8publicstaticvoidmain(Stringargs[]){

9Persont=newTeacher();

10t.printValue(lO);

11)

12}

A.第2行的方法

B.第3行的方法

C.第6行的方法

D.第7行的方法

13.下面哪些不是java的原始數(shù)據(jù)類型[BC]

A.short

B.Boolean

C.unit

D.float

14.下面的哪些關(guān)鍵字通常用來對對象的加鎖,該標(biāo)記使得對對象的訪問是排他的?

[B]

A.transient

B.synchronized

C.serialize

D.static

15.main。方法的返回類型是什么?[B]

A.int

B.void

C.boolean

D.static

16.給出以下關(guān)于一個使用適當(dāng)?shù)淖址g距的字體的TextField的表達(dá)式

TextFieldt=newTextField(Mtheyaregood",40);〃40指的是像素

哪些敘述是對的?[D]

A.被顯示的字符串可以使用多種字體。

B.一行中最大的字符數(shù)是40

C.顯示的寬度正好是40個字符寬。

D.用戶可以編輯字符。

17.關(guān)于垃圾收集的哪些敘述是對的?[B]

A.程序開發(fā)者必須自己創(chuàng)建一個線程進(jìn)行內(nèi)存釋放的工作。

B.垃圾收集將檢查并釋放不再使用的內(nèi)存。

C.垃圾收集允許程序開發(fā)者明確指定并立即釋放該內(nèi)存。

0.垃圾收集能夠在期望的時間釋放被java對象使用的內(nèi)存。

18.給出下面的代碼

1publicclassTest{

2intm,n;

3publicTest(){}

4publicTest(inta){m=a;}

5publicstaticvoidmain(Stringarg[]){

6Testtl,t2;

7intj,k;

8j=0;k=0;

9tl=newTest();

10t2=newTest(j,k);

11)

12}

在編譯時哪行將導(dǎo)致一個錯誤?[D]

A.第3行

B.第5行

C.第6行

D.第10行

19.Thread的方法resume。負(fù)責(zé)恢復(fù)哪些線程的執(zhí)行?[D]

A.通過調(diào)用stop。方法而停止的線程。

B.通過調(diào)用sleep。方法而停止運行的線程。

C.通過調(diào)用wait。方法而停止運行的線程。

D.通過調(diào)用suspend。方法而停止運行的線程。〃已經(jīng)過期了

20.有關(guān)線程的哪些敘述是對的?[BD]

A.一旦一個線程被創(chuàng)建,它就立即開始運行。

B.使用start。方法可以使一個線程成為可運行的,但是它不一定立即開始運行。

C.當(dāng)一個線程因為搶先機(jī)制而停止運行,它被放在可運行隊列的前面。//比它

優(yōu)先級高的進(jìn)程搶占了cpu,它運行的時間根據(jù)操作系統(tǒng)而定;

D.一個線程可能因為不同的原因停止并進(jìn)入就緒狀態(tài)。〃可運行狀態(tài)

21.給出下面的不完整的方法

1

2{success=connect();

3if(success==-l){

4thrownewTimedOutExccption();

5}

6}

已知TimedOutException不是一個RuntimeException。下面的哪些聲明可以被加

入第一行完成此方法的聲明[BC]

A.publicvoidmethod()

B.publicvoidmethod()throwsException

C.publicvoidmethod()throwsTimedOutException

D.publicvoidmethod()throwTimedOutException

E.publicthrowTimedOutExceptionvoidmethod()

22.給出下面的代碼

classPerson{

Stringname,department;

publicvoidprinlValueO{

System,out.printin(,rnameis,r+name);

System,out.printin("departmentis"+department);

}

}

publicclassTeacherextendsPerson{

intsalary;

publicvoidprintValue(){

//完成父類代碼中printValueO相同的工作

System,out.printin("salaryisn+salary);

)

}

下面的哪些表達(dá)式可以加入prinlValueO方法的注釋部分?[D]

A.printValueO;

B.this.printValueO;

C.person.printValueO;

D.super.printValuc0;

23.下面的哪些賦值語句是錯的?[A]

A.floatf=11.1;

B.doubled=5.3E12;

C.doubled=3.14159;

D.doubled=3.14D;

24.給出下面的不完整的類代碼

classPerson{

Stringname,department;

intage;

publicPerson(Stringn){name=n;}

publicPerson(Stringn,inta){name=n;age=a;)

publicPerson(Stringn,Stringd,inta){

//完成Person(Stringn,inta)的邏輯

department=d:

)

}

下面的哪些表達(dá)式可以加到構(gòu)造方法中的注釋處?[C]

A.Person(n,a);

B.this(Person(n,a));〃構(gòu)造函數(shù)的名字不能當(dāng)方法名調(diào)用;

C.this(n,a);

D.this(name,age);〃構(gòu)造方法的參數(shù)也不能直接傳實例變量名

25.下面關(guān)于變量及其范圍的陳述哪些是對的?[ACD]

A.實例變量是類的成員變量。

B.實例變量用關(guān)鍵字static聲明。

C.在方法中定義的局部變量在該方法被執(zhí)行時創(chuàng)建

0.局部變量在使用前必須被初始化。

26.給出下面的代碼

publicvoidtest0{

try(

oneMethod();

System,out.printIn("condition1");

}catch(ArrayIndexOutOfBoundsExceptione){

System,out.printIn("condition2");

}catch(Exceptione){

System,out.printIn("condition3");

}finally{

System,out.printin("finally,r);

)

}

在oneMethod()方法運行正常的情況下將顯示什么?[AD]

A.condition1

B.condition2

C.condition3

D.finally

27.給出下面的代碼

publicclassTest{

voidprintValuc(intm){

do{

System.out.println("ThevalueisH+m);

}while(-m>10);

)

publicstaticvoidmain(Stringarg[]){

inti=10;

Testt=newTest();

t.printValue(i);

)

)

輸出將是什么?[C]

A.8

B.9

C.10

D.11

28.下面的有關(guān)聲明的哪些敘述是對的?[BC]

A.對原始數(shù)據(jù)類型例如boolean,byte的變量的聲明不會為該變量分配內(nèi)存空間。

B.對原始數(shù)據(jù)類型例如boolean,byte的變量的聲明將為之分配內(nèi)存空間。

C.非原始數(shù)據(jù)類型例如String,Vector的變量的聲明不會為該對象分配內(nèi)存。

D.非原始數(shù)據(jù)類型例如String,Vector的變量的聲明會為該對象分配內(nèi)存。

〃該對象指的是堆空間的對象;指向該對象的引用只能叫變量;

29.類的設(shè)計要求它的某個成員變量不能被外部類直接訪問。應(yīng)該使用下面的哪些修

飾符獲得需要的訪問控制?[D]

A.public

B.不加修飾符

C.protected

D.private〃面向?qū)ο缶幊蘌196頁的表格,private一行有錯誤

30.給出下面的代碼片折

1Stringstr=null;

2if((str!=null)&&(str.length0>10)){

3System.out.printin("morethan10");

4)

5elseif((str!=null)&(str.length()<5)){〃空指針異常

6System.out.printIn(nlessthan5");

7)

8else{System.out.printin(Mend'r);}

哪些行將導(dǎo)致錯誤?[C]

A.第1行

B.第2行

C.第5行

D.第8行

31.下面有關(guān)java代碼安全性的敘述哪些是對的?[BCD]

A.字節(jié)碼校驗器加載查詢執(zhí)行需要的所有類。

B.運行時解釋器執(zhí)行代碼。

C.在運行時,字節(jié)碼被加載,驗證然后在解釋器里面運行。

D.類加載器通過分離本機(jī)文件系統(tǒng)的類和從網(wǎng)絡(luò)導(dǎo)入的類增加安全性。

32.給出下面的代碼

publicclassPerson{

intarr[]=newint[10];//非靜態(tài)屬性

publicstaticvoidmain(Stringa[]){

System.out.println(air[l]);〃靜態(tài)方法不能訪問非靜態(tài)屬性

)

)

哪些敘述是對的?[A]

A.編譯時出錯。

B.編譯時正確而運行時出錯。

C.輸出0。

D.輸出null。

33.給出下面的代碼

publicclassParent{

publicintaddValue(inta,intb){

ints;

s=a+b;

returns;

)

}

classChildextendsParent{

)

哪些方法可以加入類Child中?[BC]〃方法的覆蓋

A.intaddValue(inta,intb){//dosomething...)

B.publicvoidaddValue(){//dosomething...)

C.publicintaddValue(inta){//dosomething...)

D.publicintaddValue(inta,intb)throwsException{//dosomething...}

34.公有成員變量MAX一LENGTH是一個int型值,變量的值保持常數(shù)值100,定義這

個變量的代碼為?[CD]

A.publicintMAX_LENGTIl=100;

B.finalintMAX_LENGTIl=100;

C.finalpublicintMAX_LENGTH=100;〃修飾符的順序可以交換

D.publicfinalintMAX_LENGTH=100;

35.下面的哪些java源文件代碼片斷是對的?[ACD]

A.packagetestpackage;

publicclassTest{//dosomething...)

B.importjava.io.*;

packagetestpackage;

publicclassTest{//dosomething...}

C.importjava.io.*;

classPerson{//dosomething...}

publicclassTest{//dosomething...}

D.importjava.io.*;

importjava.awt.*;

publicclassTest{//dosomething..)

36.給出下面的類

publicclassSample{

longlength;

publicSample(long1){length=1;}

publicstaticvoidmain(Stringarg[]){

Samplesi,s2,s3;

si二newSample(21L);

s2二newSample(21L);

s3—s2;

longm=21L;

)

}

哪個表達(dá)式返回true?[B]

A.si==s2;

B.s2==s3;

C.in==si;

D.si.equals(m);

List1=newList(6,true);〃第二個參數(shù)是false的話只能選一個

其中哪些敘述是正確的?[AC]

A.在沒有其它的約束的條件下該列表將有6行可見。

B.一行的最大字符數(shù)是6

C.列表將允許用戶多選

D.列表只能有一項被選中

38.給出下面的代碼

classParent{

Stringone,two;

publicParent(Stringa,Stringb){

one=a;

two=b;

)

publicvoidprintO{System.out.println(one);}

}

publicclassChildextendsParent{

publicChild(Stringa,Stringb){

super(a,b);

)

publicvoidprintO(

System,out.println(one+"to"+two);

)

publicstaticvoidmain(Stringargs[]){

Parentp=newParent(11south,r,"north");

Parentt=newChild(MeastH,"west");

p.print();

t.print();

}

}

下面的哪些情況或輸出的結(jié)果正確?[E]

A.編譯時出錯

B.south

east

C.southtonorth

easttowest

D.southtonorth

east

E.south

easttowest

39.類Teacher和Student都是類Person的子類

Personp;

Teachert;

Students;

若p,t和s都是非空值

if(tinstanceofPerson){s=(Student)t;}

這個語句導(dǎo)致的結(jié)果是什么?[C]//默認(rèn)new時聲明的都是本類;

A.將構(gòu)造一個Student對象

B.表達(dá)式合法

C.編譯時非法

D.編譯時合法而在運行時可能非法

40.給出下面的代碼

Strings="hello”;

Stringt="hello”;

charc[]={*h*,*e',11*,r1*,ro,);

下列選項里,哪些返回true?[ACD]

A.s.equals(t);

B.t.equals(c);

C.s-t;

D.t.equals(newString(whello'r));

E.t=c;

一、單選題(本大題15小題,每小題2分,共3c分)

1.下列語句執(zhí)行后,變量a、c的值分別是()。

intx=182;

inta,c;

c=x/100;

a=x%10;

A)1,2B)2,1C)1.82,2D)100,82

【答案】B

2.下面哪個表達(dá)式可用得到x和y的最大值()?

A)x>y?y:xB)x<y?y:xC)x>y?(x+y):(x-y)D)x==y?y:x;

【答案】B

3.以下是應(yīng)用程序中定義的靜態(tài)方法printBinary,若在其main方法中有方法調(diào)用

語句printBinary(2),則輸

出的結(jié)果是()。

staticvoidprintBinary(inti){

System,out.print(i+"的2進(jìn)制數(shù)表示為:\t");

for(intj=31;j>=0;j—)

if(((l?j)&i)!=0)

System.out.print(T);

else

System.out.print(n0M);

System.out.printlnO;〃換行

)

A)00000000000000000000000000000001B)00000000000000000000000000000010

C)00000000000000000000000000001111D)00000000000000000000000000000000

【答案】B

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

Stringsi="0.5",s2="12”;

doublex=Double.parseDouble(si);

inty=Integer.parselnt(s2);

System,out.printin(x+y);

A)12.5B)120.5C)12D)"”

【答案】A

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

doublex=1234.1234567;

DccimalFormatforml=newDecimalFormat("0000.0'1);

System.out.println("PI="+forml.format(x));

A)PI=1234.1B)Pl=1234

C)PI=1234.1235D)PI=1234.0

【答案】A

6.下列程序段執(zhí)行后的結(jié)果是()o

Strings=newString("abcdefg");

for(inti=0;i<s.length0;i+=2){

System.out.print(s.charAt(i));

}

A)acegB)ACEGC)abcdefgD)abed

【答案】A

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

int[]x={122,33,55,678,-987);

intmax=x[0];

for(inti=l;i<x.length;i++){

if(x[i]>max)

max=x[i];

}

System,out.printIn(max);

A)678B)122C)-987D)33

【答案】A

8.下列語句序列執(zhí)行后,k的值是()0

intx=2,y=5,k=0;

switch(x%y){

case0:k=x+y;break;

case1:k=x-y;break;

case2:k=x*v:break;

default:k=x/y;break;

)

System.out.printin(k);

A)2B)5C)10D)0

【答案】C

9.下面的程序輸出的結(jié)果是()

publicclassAimplementsB{

publicstaticvoidmain(Stringargs[]){

inti;

Acl=newA();

i=cl.k;

System,out.println(Hi=,,+i);

)

)

interfaceB{

intk=10;

}

A)i=0B)i=10C)程序有編譯錯誤D)i=true

【答案】B

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

intb[][]={{l,2,3),{4,5},{6,7}};

intsum=0;

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

for(intj=0;j<b[i].length;j++){

sum+=b[i][j];

)

}

System,out.printin("sum=M+suni);

A)28B)6C)9D)13

【答案】A

11.有整型數(shù)組:int[]x={12,35,8,7,2};,則調(diào)用方法Arrays,sort(x)后,數(shù)組x

中的元素值依次是().

A)2781235B)1235872C)351287

2D)8712

352

【答案】A

12.編譯和運行下面的應(yīng)用程序,并在命令行界面輸入12345,則回車后屏幕輸出的

結(jié)果是().

publicclassA{

publicstaticvoidmain(Stringargs[])throwslOException{

BufferedReaderbuf=newBufferedReader(

newInputStrcamRcader(System,in));

Stringstr=buf.rcadLineO;

intx=Integer.parselnt(str);

System.out.printin(x/100);

)

)

A)45B)5C)123D)12345

【答案】C

13.下面的程序段執(zhí)行后輸出的結(jié)果是()。

StringBufferbuf=newStringBuffer(°Beijing2008M);

buf.insert(7,"@");

System.out.println(buf.toStringO);

A)Beijing@2008B)@Beijing2008C)Beijing2008@D)Beijing#2008

【答案】A

14.下面的程序編譯運行后輸出的結(jié)果是()。

publicclassAimplementsRunnable{

publicstaticvoidmain(Stringargv[]){

Aa=newA();

Threadt=newThread(a);

t.start();

)

publicvoidrun(){

w

溫馨提示

  • 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

提交評論