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

下載本文檔

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

文檔簡介

JAVA語言程序設計考試試題及部分答案一、單選題:(每題1分)下列各題A)、B)、C)、D)四個選項中,只有一個選項是對的的,請將對的選項的標記寫在題干后的括號內(nèi)。1.下列語句序列執(zhí)行后,k的值是(B)。intm=3,n=6,k=0;while((m++)<(--n))++k;A)0B)1C)2D)32.設i、j為int型變量名,a為int型數(shù)組名,以下選項中,對的的賦值語句是(B)。A)i=i+2B)a[0]=7;C)i++---j;D)a(0)=66;3.Java語言的類間的繼承關系是(B)。A)多重的B)單重的C)線程的D)不能繼承4.設有定義inti=6;,則執(zhí)行以下語句后,i的值為(C)。i+=i-1;A)10B)121C)11D)1005.下列選項中,用于在定義子類時聲明父類名的關鍵字是(C)。A)interfaceB)packageC)extendsD)class6.若已定義byte[]x={11,22,33,-66};其中0≤k≤3,則對x數(shù)組元素錯誤的引用是(C)。A)x[5-3]B)x[k]C)x[k+5]D)x[0]7.下列語句序列執(zhí)行后,ch1的值是(B)。charch1='A',ch2='W';if(ch1+2<ch2)++ch1;A)'A'B)'B'C)'C'D)B8.下列語句序列執(zhí)行后,i的值是(D)。inti=8,j=16;if(i-1>j)i--;elsej--;A)15B)16C)7D)89.下列語句序列執(zhí)行后,k的值是(C)。inti=10,j=18,k=30;switch(j-i){case8:k++;case9:k+=2;case10:k+=3;default:k/=j;}A)31B)32C)2D)3310.下面語句執(zhí)行后,i的值是(B)。for(inti=0,j=1;j<5;j+=3)i=i+j;A)4B)5C)6D)711.設有定義floatx=3.5f,y=4.6f,z=5.7f;則以下的表達式中,值為true的是(B)。A)x>y||x>zB)x!=yC)z>(y+x)D)x<y&!(x<z)12.下列語句序列執(zhí)行后,i的值是(D)。inti=16;do{i/=2;}while(i>3);A)16B)8C)4D)213.以下由for語句構成的循環(huán)執(zhí)行的次數(shù)是(B)。for(inti=0;true;i++);A)有語法錯,不能執(zhí)行B)無限次C)執(zhí)行1次D)一次也不執(zhí)行14.定義類頭時能使用的修飾符是(C)。A)privateB)staticC)abstractD)protected15.設int型變量a、b,float型變量x、y,char型變量ch均已對的定義并賦值,對的的switch語句是D)。A)switch(x+y)B)switch(ch+1){......}{......}C)switchchD)switch(a+b);{......}{......}16.下列最終屬性i的定義中,對的的是()。A)staticfinalinti=100;B)finalinti=1.2;C)finali='w';D)finalchari;17.下列類定義中,不對的的是(C)。A)classx{....}B)classxextendsy{....}C)staticclassximplementsy1,y2{....}D)publicclassxextendsApplet{....}18.設x、y為已定義的類名,下列聲明x類的對象x1的語句中對的的是()。A)staticxx1;B)publicxx1=newx(int123);C)yx1;D)xx1=x();19.設i、j、k為類x中定義的int型變量名,下列類x的構造函數(shù)中不對的的是(B)。A)x(intm){...}B)voidx(intm){...}C)x(intm,intn){...}D)x(inth,intm,intn){...}20.下列方法定義中,對的的是(A)。A)intx(){charch='a';return(int)ch;}B)voidx(){...returntrue;}C)intx(){...returntrue;}D)intx(inta,b){returna+b;}21.用于定義類成員的訪問控制權的一組關鍵字是(D)。A)class,float,double,publicB)float,boolean,int,longC)char,extends,float,doubleD)public,private,protected22.不能構成循環(huán)的語句是(C)。A)for語句B)while語句C)switch語句D)do__while語句23.下列程序段執(zhí)行后b3的結果是(D)。booleanb1=true,b2,b3;24=b1?b1:b2;A)0B)1C)trueD)false25下面數(shù)據(jù)結構中,屬于非線性的是(B)。A)線性表B)樹C)隊列D)堆棧11.設有定義inti=123;longj=456;下面賦值不對的的語句是(D)。A)j=i;B)j=(long)i;C)i=(int)j;D)i=j;二、填空題:(每空1分)1.構造函數(shù)_沒__有返回值。2.Java語言中的浮點型數(shù)據(jù)根據(jù)數(shù)據(jù)存儲長度和數(shù)值精度的不同,進一步分為float和___double_______兩種具體類型。3.創(chuàng)建類對象的運算符是__new。4.當整型變量n的值不能被13除盡時,其值為false的Java語言表達式是__n%13==0___________。5.在Java語言中,所有的數(shù)組都有一個lenght屬性,這個屬性存儲了該數(shù)組的__元素個數(shù)。6.定義類就是定義一種抽象的______父類______,它是所有具有一定共性的對象的抽象描述。7.在Java語言中,使用__平臺無關___、___java虛擬機___等技術,實現(xiàn)軟件重用。8.表達式3/6*5的計算結果是____0____。9.下面是一個類的定義:publicclass_intMyclass___________{intx,y;Myclass(inti,___=0____)//構造函數(shù){x=i;y=j;}}10.下面是一個JavaApplication的主類的定義,其功能是輸出所有命令行參數(shù)。importjava.io.*;publicclassMyClass{publicstaticvoidmain(Stringargs[]){if(args.length!=_0__)for(inti=0;i<args.length;i++)System.out.println(_"i="+i__________);elseSystem.out.println(沒有命令行參數(shù));}}11下面是一個小程序的主類myprogram的定義,其中A、B是該主類所在源程序中已定義的另兩個類的類名:importjavaawt.*;importjavaapplet.*;publicclassmyprogramextendsApplet//定義小程序的主類{Aa;Bb;public_____myprogram___init(){a=newA();b=___new__B();}}12.Java的復合數(shù)據(jù)類型有:類、數(shù)組和___接口____等。Java的簡樸數(shù)據(jù)類型有:數(shù)值類型(整形和浮點類型),自負類型和布爾類型13.表達式3/6*5的計算結果是_0_______。14.定義初值為10的10次方的長整型變量lvar的語句是:_______longlvar=1*e10___________________。15.順序結構、分支結構(或稱選擇結構)、__循環(huán)結構__________是結構化程序設計的三種基本流程控制結構。16.以下方法m的功能是求兩參數(shù)之積的整數(shù)部分。intm(floatx,floaty){_______k=(int)x*y___________;}17.Java源程序文獻編譯后產(chǎn)生的文獻稱為____字節(jié)碼____文獻,其擴展名為___.class_______。18.Java和c++都是面向對象的程序設計語言。三、程序分析:(每題4分)1.下面是一個排序的程序:importjava.io.*;publicclassTest56_Sort{publicstaticvoidmain(Stringargs[]){int[]a={42,99,5,63,95,36,2,69,200,96};System.out.println(排序前的數(shù)據(jù)序列:);ShowArray(a);Sort(a);System.out.println(排序后的數(shù)據(jù)序列:);ShowArray(a);}publicstaticvoidSort(int[]x){intw;for(inti=1;i<x.length;i++){for(intj=0;j<x.length-1;j++)if(x[j]>x[j+1]){w=x[j];x[j]=x[j+1];x[j+1]=w;}/*if(i==1||i==2)ShowArray(x);if(i==2)break;*/}}publicstaticvoidShowArray(intb[]){for(inti=0;i<b.length;i++)System.out.print("b[i"+i+"]="+b[i]);System.out.println();}}問題:假如將方法Sort()中的一對注釋符(/**/)去掉,程序輸出的結果是什么?排序前的數(shù)據(jù)序列:b[0]=42b[1]=99b[2]=5b[3]=63b[4]=95b[5]=36b[6]=2b[7]=69b[8]=200b[9]=96b[0]=42b[1]=5b[2]=63b[3]=95b[4]=36b[5]=2b[6]=69b[7]=99b[8]=96b[9]=200b[0]=5b[1]=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]=2002.請寫下程序的輸出結果:publicclassTest52{Stringstr1="Hello,Javaworld!\t";Stringstr2="Hello,students!";publicstaticvoidmain(Stringargs[]){System.out.print(str1);System.out.println(str2);}}輸出結果:3.請寫下程序的輸出結果:publicclassT2_4{publicstaticvoidmain(String[]args){inti,j;charc='*';for(i=0;i<5;i++){for(j=0;j<=i;j++)System.out.print("*");System.out.println();}}}輸出結果:4、請寫下程序的輸出結果:publicclassex2_2{publicstaticvoidmain(Stringargs[]){intx,y;byteb=6;floatz=1.234f;doublew=1.23;booleanflag;x=12;y=300;flag=x>y;System.out.println("x>y=="+flag);flag=z>w;System.out.println("z>w=="+flag);}}四、問答題:(每題5分,)1.Java的接口和C++的虛類的相同和不同處。由于Java不支持多繼承,而有也許某個類或對象要使用分別在幾個類或對象里面的方法或屬性,現(xiàn)有的單繼承機制就不能滿足規(guī)定。與繼承相比,接口有更高的靈活性,由于接口中沒有任何實現(xiàn)代碼。當一個類實現(xiàn)了接口以后,該類要實現(xiàn)接口里面所有的方法和屬性,并且接口里面的屬性在默認狀態(tài)下面都是publicstatic,所有方法默認情況下是public.一個類可以實現(xiàn)多個接口。2.垃圾回收的優(yōu)點和原理。并考慮2種回收機制。Java語言中一個顯著的特點就是引入了垃圾回收機制,使c++程序員最頭疼的內(nèi)存管理的問題迎刃而解,它使得Java程序員在編寫程序的時候不再需要考慮內(nèi)存管理。由于有個垃圾回收機制,Java中的對象不再有"作用域"的概念,只有對象的引用才有"作用域"。垃圾回收可以有效的防止內(nèi)存泄露,有效的使用可以使用的內(nèi)存。垃圾回收器通常是作為一個單獨的低檔別的線程運營,不可預知的情況下對內(nèi)存堆中已經(jīng)死亡的或者長時間沒有使用的對象進行清楚和回收,程序員不能實時的調(diào)用垃圾回收器對某個對象或所有對象進行垃圾回收?;厥諜C制有分代復制垃圾回收和標記垃圾回收,增量垃圾回收。3,談談final,finally,finalize的區(qū)別。Final-修飾符(關鍵字)假如一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。Finally-再異常解決時提供finally塊來執(zhí)行任何清除操作。假如拋出一個異常,那么相匹配的catch子句就會執(zhí)行,然后控制就會進入finally塊(假如有的話)。Finalize-方法名。Java技術允許使用finalize()方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在擬定這個對象沒有被引用時對這個對象調(diào)用的。它是在Object類中定義的,因此所有的類都繼承了它。子類覆蓋finalize()方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個對象調(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中的異常解決機制的簡樸原理和應用。當JAVA程序違反了JAVA的語義規(guī)則時,JAVA虛擬機就會將發(fā)生的錯誤表達為一個異常。違反語義規(guī)則涉及2種情況。一種是JAVA類庫內(nèi)置的語義檢查。例如數(shù)組下標越界,會引發(fā)IndexOutOfBoundsException;訪問null的對象時會引發(fā)NullPointerException.另一種情況就是JAVA允許程序員擴展這種語義檢查,程序員可以創(chuàng)建自己的異常,并自由選擇在何時用throw關鍵字引發(fā)異常。所有的異常都是java.lang.Thowable的子類。五、程序設計:(每題11分,共33分)1、編程:編寫一個截取字符串的函數(shù),輸入為一個字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。但是要保證漢字不被截半個,如"我ABC"4,應當截為"我AB",輸入"我ABC漢DEF",6,應當輸出為"我ABC"而不是"我ABC+漢的半個"。2、編程求解:所有兩位整數(shù)能被3整除的數(shù)的和,以及不能被3整除的數(shù)的各位數(shù)字之和。3、設計一個程序求解e的值。精度達成1.0e-6,4、請設計一個對N個數(shù)進行排序的程序一、選擇題(每道題只有一個對的答案,每小題2分,共30分)15道題

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

A.Java語言具有跨平臺性

B.Java是一種面向對象的語言

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

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

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

A.構造方法必須是public方法

B.main方法必須是public方法

C.Java應用程序的文獻名可以是任意的

D.構造方法應當聲明為void類型

3、關于Java中數(shù)據(jù)類型敘述對的的是:(B)

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

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

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

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

4、設intx=1,floaty=2,則表達式x/y的值是:(D)

A.0

B.1

C.2

D.以上都不是

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

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

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

C.while(x>5);

D.for(;;);

6、關于類和對象的敘述對的的是:(A)

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

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

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

D.類是對象的實例化

7、以下有關構造方法的說法,對的的是:(A)

A.一個類的構造方法可以有多個

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

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

D.構造方法可以和類同名,也可以和類名不同

8、以下有關類的繼承的敘述中,對的的是:(D)

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

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

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

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

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

A.JButton

B.JPane

C.Canvas

D.JTextArea

10、void的含義:(C)

A.方法體為空

B.定義的方法沒有形參

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

D.方法的返回值不能參與算術運算

11、關于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語言中的關鍵字?(B)

A.long

B.sizeof

C.instanceof

D.const

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

A.Datastream

B.Filestream

C.Bufferedstream

D.Pipedstream

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

A.ActionListener

B.MouseListener

C.MouseMotionListern

D.ItemListener

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

1、面向對象程序設計所具有的基本特性是:___抽象性___,_封裝性___,_繼承性__,_多態(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的圖形用戶界面設計中,有很多布局管理器用來擺放組件的位置,一般用到的布局管理器有(列出四種即可)__FlowLayout_____,___GridLayout_____,__BorderLayout_____,___CardLayout_______

5、Applet常用的方法是:__init()_、__run()__、__stop()__和destroy()。

三、閱讀程序,寫出程序的輸出結果(每題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(1);

Ab=newA(2);

System.out.println(a.isEqualTo(b));

}

}

程序的輸出結果為:____false_____

2、classA{

doublef(doublex,doubley){

returnx*y;

}

}

classBextendsA{

doublef(doublex,doubley){

returnx+y;

}

}

publicclassTest{

publicstaticvoidmain(Stringargs[]){

Bobj=newB();

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

}

}

程序的輸出結果為:__Theprogramoutputis10_

3、publicclassUnchecked{

publicstaticvoidmain(String[]args){

try{

method();

}catch(Exceptione){

System.out.println("A");

}finally{

System.out.println("B");

}

}

staticvoidmethod(){

try{

wrench();

System.out.println("C");

}catch(ArithmeticExceptione){

System.out.println("D");

}finally{

System.out.println("E");

}

System.out.println("F");

}

staticvoidwrench(){

thrownewNullPointerException();

}

}

程序的輸出結果為:

E

A

B

4、publicclassTest{

publicstaticvoidmain(String[]args){

intx;

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

calculate(a,a[5]);

System.out.println("thevalueofa[0]is"+a[0]);

System.out.println("thevalueisa[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];

}

}

程序的輸出結果為:

thevalueofa[0]is0

thevalueisa[5]is51.下面哪些是short型的取值范圍[C]A.-27–27-1B.0–216-1C.-215–215-1D.-231–231-12.下面哪些是合法的標記符[ABE]A.$personsB.TwoUsersC.*pointD.thisE._endline3.哪些是將一個十六進制值賦值給一個long型變量[D]A.longnumber=345L;B.longnumber=0345;C.longnumber=0345L;D.longnumber=0x345L;4.下面的哪些程序片斷也許導致錯誤。[BD]A.Strings="Gonewiththewind";Stringt="good";Stringk=s+t;B.Strings="Gonewiththewind";Stringt;t=s[3]+"one";C.Strings="Gonewiththewind";Stringstandard=s.toUpperCase();D.Strings="homedirectory";Stringt=s-"directory";5.在//pointx處的哪些聲明是合法的[DE]classPerson{privateinta;publicintchange(intm){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.當Frame的大小被改變時,Frame中的按鈕的位置也也許被改變,請問此時使用的是什么布局管理器[B]A.BorderLayoutB.FlowLayoutC.CardLayoutD.GridLayout7.給出下面的代碼片斷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)存空間。//分派??臻g,相稱于指針,但是不分派"到Vector對象的引用的空間";選項二的意思是分派了堆空間;8.下面的哪些答案可以用以表達八進制值8?[A]A.010B.0x10C.08D.0x89.哪些不是Java關鍵字[AB]A.TRUEB.sizeofC.constD.superE.void10.下面的哪些敘述為真。[AD]A.equals()方法鑒定引用值是否指向同一對象。//不說是誰的就是默認的B.==操作符鑒定兩個分立的對象的內(nèi)容和類型是否一致。C.equals()方法只有在兩個對象的內(nèi)容一致時返回true。D.類File重寫方法equals()在兩個分立的對象的內(nèi)容和類型一致時返回true。//當兩個獨立的對象的內(nèi)容和類型一致;11.下面關于繼承的哪些敘述是對的的。[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{6publicvoidprintValue(){}7publicvoidprintValue(inti){}8publicstaticvoidmain(Stringargs[]){9Persont=newTeacher();10t.printValue(10);11}12}A.第2行的方法B.第3行的方法C.第6行的方法D.第7行的方法13.下面哪些不是java的原始數(shù)據(jù)類型[BC]A.shortB.BooleanC.unitD.float14.下面的哪些關鍵字通常用來對對象的加鎖,該標記使得對對象的訪問是排他的?[B]A.transientB.synchronizedC.serializeD.static15.main()方法的返回類型是什么?[B]A.intB.voidC.booleanD.static16.給出以下關于一個使用適當?shù)淖址g距的字體的TextField的表達式TextFieldt=newTextField("theyaregood",40);//40指的是像素哪些敘述是對的?[D]A.被顯示的字符串可以使用多種字體。B.一行中最大的字符數(shù)是40C.顯示的寬度正好是40個字符寬。D.用戶可以編輯字符。17.關于垃圾收集的哪些敘述是對的?[B]A.程序開發(fā)者必須自己創(chuàng)建一個線程進行內(nèi)存釋放的工作。B.垃圾收集將檢查并釋放不再使用的內(nèi)存。C.垃圾收集允許程序開發(fā)者明確指定并立即釋放該內(nèi)存。D.垃圾收集可以在盼望的時間釋放被java對象使用的內(nèi)存。18.給出下面的代碼1publicclassTest{2intm,n;3publicTest(){}4publicTest(inta){m=a;}5publicstaticvoidmain(Stringarg[]){6Testt1,t2;7intj,k;8j=0;k=0;9t1=newTest();10t2=newTest(j,k);11}12}在編譯時哪行將導致一個錯誤?[D]A.第3行B.第5行C.第6行D.第10行19.Thread的方法resume()負責恢復哪些線程的執(zhí)行?[D]A.通過調(diào)用stop()方法而停止的線程。B.通過調(diào)用sleep()方法而停止運營的線程。C.通過調(diào)用wait()方法而停止運營的線程。D.通過調(diào)用suspend()方法而停止運營的線程。//已通過期了20.有關線程的哪些敘述是對的?[BD]A.一旦一個線程被創(chuàng)建,它就立即開始運營。B.使用start()方法可以使一個線程成為可運營的,但是它不一定立即開始運營。C.當一個線程由于搶先機制而停止運營,它被放在可運營隊列的前面。//比它優(yōu)先級高的進程搶占了cpu,它運營的時間根據(jù)操作系統(tǒng)而定;D.一個線程也許由于不同的因素停止并進入就緒狀態(tài)。//可運營狀態(tài)21.給出下面的不完整的方法12{success=connect();3if(success==-1){4thrownewTimedOutException();5}6}已知TimedOutException不是一個RuntimeException。下面的哪些聲明可以被加入第一行完畢此方法的聲明[BC]A.publicvoidmethod()B.publicvoidmethod()throwsExceptionC.publicvoidmethod()throwsTimedOutExceptionD.publicvoidmethod()throwTimedOutExceptionE.publicthrowTimedOutExceptionvoidmethod()22.給出下面的代碼classPerson{Stringname,department;publicvoidprintValue(){System.out.println("nameis"+name);System.out.println("departmentis"+department);}}publicclassTeacherextendsPerson{intsalary;publicvoidprintValue(){//完畢父類代碼中printValue()相同的工作System.out.println("salaryis"+salary);}}下面的哪些表達式可以加入printValue()方法的注釋部分?[D]A.printValue();B.this.printValue();C.person.printValue();D.super.printValue();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;}}下面的哪些表達式可以加到構造方法中的注釋處?[C]A.Person(n,a);B.this(Person(n,a));//構造函數(shù)的名字不能當方法名調(diào)用;C.this(n,a);D.this(name,age);//構造方法的參數(shù)也不能直接傳實例變量名25.下面關于變量及其范圍的陳述哪些是對的?[ACD]A.實例變量是類的成員變量。B.實例變量用關鍵字static聲明。C.在方法中定義的局部變量在該方法被執(zhí)行時創(chuàng)建D.局部變量在使用前必須被初始化。26.給出下面的代碼publicvoidtest(){try{oneMethod();System.out.println("condition1");}catch(ArrayIndexOutOfBoundsExceptione){System.out.println("condition2");}catch(Exceptione){System.out.println("condition3");}finally{System.out.println("finally");}}在oneMethod()方法運營正常的情況下將顯示什么?[AD]A.condition1B.condition2C.condition3D.finally27.給出下面的代碼publicclassTest{voidprintValue(intm){do{System.out.println("Thevalueis"+m);}while(--m>10);}publicstaticvoidmain(Stringarg[]){inti=10;Testt=newTest();t.printValue(i);}}輸出將是什么?[C]A.8B.9C.10D.1128.下面的有關聲明的哪些敘述是對的?[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.類的設計規(guī)定它的某個成員變量不能被外部類直接訪問。應當使用下面的哪些修飾符獲得需要的訪問控制?[D]A.publicB.不加修飾符C.protectedD.private//面向對象編程P196頁的表格,private一行有錯誤30.給出下面的代碼片斷1Stringstr=null;2if((str!=null)&&(str.length()>10)){3System.out.println("morethan10");4}5elseif((str!=null)&(str.length()<5)){//空指針異常6System.out.println("lessthan5");7}8else{System.out.println("end");}哪些行將導致錯誤?[C]A.第1行B.第2行C.第5行D.第8行31.下面有關java代碼安全性的敘述哪些是對的?[BCD]A.字節(jié)碼校驗器加載查詢執(zhí)行需要的所有類。B.運營時解釋器執(zhí)行代碼。C.在運營時,字節(jié)碼被加載,驗證然后在解釋器里面運營。D.類加載器通過度離本機文獻系統(tǒng)的類和從網(wǎng)絡導入的類增長安全性。32.給出下面的代碼publicclassPerson{intarr[]=newint[10];//非靜態(tài)屬性publicstaticvoidmain(Stringa[]){System.out.println(arr[1]);//靜態(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_LENGTH=100;B.finalintMAX_LENGTH=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(longl){length=l;}publicstaticvoidmain(Stringarg[]){Samples1,s2,s3;s1=newSample(21L);s2=newSample(21L);s3=s2;longm=21L;}}哪個表達式返回true?[B]A.s1==s2;B.s2==s3;C.m==s1;D.s1.equals(m);37.給出下面有關java.awt.List的表達式Listl=newList(6,true);//第二個參數(shù)是false的話只能選一個其中哪些敘述是對的的?[AC]A.在沒有其它的約束的條件下該列表將有6行可見。B.一行的最大字符數(shù)是6C.列表將允許用戶多選D.列表只能有一項被選中38.給出下面的代碼classParent{Stringone,two;publicParent(Stringa,Stringb){one=a;two=b;}publicvoidprint(){System.out.println(one);}}publicclassChildextendsParent{publicChild(Stringa,Stringb){super(a,b);}publicvoidprint(){System.out.println(one+"to"+two);}publicstaticvoidmain(Stringargs[]){Parentp=newParent("south","north");Parentt=newChild("east","west");p.print();t.print();}}下面的哪些情況或輸出的結果對的?[E]A.編譯時犯錯B.southeastC.southtonortheasttowestD.southtonortheastE.southeasttowest39.類Teacher和Student都是類Person的子類Personp;Teachert;Students;若p,t和s都是非空值if(tinstanceofPerson){s=(Student)t;}這個語句導致的結果是什么?[C]//默認new時聲明的都是本類;A.將構造一個Student對象B.表達式合法C.編譯時非法D.編譯時合法而在運營時也許非法40.給出下面的代碼Strings="hello";Stringt="hello";charc[]={'h','e','l','l','o'};下列選項里,哪些返回true?[ACD]A.s.equals(t);B.t.equals(c);C.s==t;D.t.equals(newString("hello"));E.t==c;一、單選題(本大題15小題,每小題2分,共30分)1.下列語句執(zhí)行后,變量a、c的值分別是()。intx=182;inta,c;c=x/100;a=x%10;A)1,2B)2,1C)1.82,2D)100,82【答案】B2.下面哪個表達式可用得到x和y的最大值()?A)x>y?y:xB)x<y?y:xC)x>y?(x+y):(x-y)D)x==y?y:x;【答案】B3.以下是應用程序中定義的靜態(tài)方法printBinary,若在其main方法中有方法調(diào)用語句printBinary(2),則輸出的結果是()。staticvoidprintBinary(inti){System.out.print(i+"的2進制數(shù)表達為:\t");for(intj=31;j>=0;j--)if(((1<<j)&i)!=0)System.out.print("1");elseSystem.out.print("0");System.out.println();//換行}A)00000001B)00000010C)00001111D)00000000【答案】B4.應用程序的main方法中有以下語句,則輸出的結果是()。Strings1="0.5",s2="12";doublex=Double.parseDouble(s1);inty=Integer.parseInt(s2);System.out.println(x+y);A)12.5B)120.5C)12D)“12.5”【答案】A5.應用程序的main方法中有以下語句,則輸出的結果是()。doublex=1234.1234567;DecimalFormatform1=newDecimalFormat("0000.0");System.out.println("PI="+form1.format(x));A)PI=1234.1B)PI=1234C)PI=1234.1235D)PI=1234.0【答案】A6.下列程序段執(zhí)行后的結果是()。Strings=newString("abcdefg");for(inti=0;i<s.length();i+=2){System.out.print(s.charAt(i));}A)acegB)ACEGC)abcdefgD)abcd【答案】A7.應用程序的main方法中有以下語句,則輸出的結果是()。int[]x={122,33,55,678,-987};intmax=x[0];for(inti=1;i<x.length;i++){if(x[i]>max)max=x[i];}System.out.println(max);A)678B)122C)-987D)33【答案】A8.下列語句序列執(zhí)行后,k的值是()。intx=2,y=5,k=0;switch(x%y){case0:k=x+y;break;case1:k=x-y;break;case2:k=x*y;break;default:k=x/y;break;}System.out.println(k);A)2B)5C)10D)0【答案】C9.下面的程序輸出的結果是()publicclassAimplementsB{publicstaticvoidmain(Stringargs[]){inti;Ac1=newA();i=c1.k;System.out.println("i="+i);}}interfaceB{intk=10;}A)i=0B)i=10C)程序有編譯錯誤D)i=true【答案】B10.應用程序的main方法中有以下語句,則輸出的結果是()。intb[][]={{1,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.println("sum="+sum);A)28B)6C)9D)13【答案】A11.有整型數(shù)組:int[]x={12,35,8,7,2};,則調(diào)用方法Arrays.sort(x)后,數(shù)組x中的元素值依次是().A)2781235B)1235872C)3512872D)8712352【答案】A12.編譯和運營下面的應用程序,并在命令行界面輸入12345,則回車后屏幕輸出的結果是().publicclassA{publicstaticvoidmain(Stringargs[])throwsIOException{BufferedReaderbuf=newBufferedReader(newInputStreamReader(System.in));Stringstr=buf.readLine();intx=Integer.parseInt(str);System.out.println(x/100);}}A)45B)5C)123D)12345【答案】C13.下面的程序段執(zhí)行后輸出的結果是()。StringBufferbuf=newStringBuffer("Beijing2023");buf.insert(7,"@");System.out.println(buf.toString());A)Beijing@2023B)@Beijing2023C)Beijing2023@D)Beijing#2023【答案】A14.下面的程序編譯運營后輸出的結果是()。publicclassAimplementsRunnable{publicstaticvoidmain(Stringargv[]){Aa=newA();Threadt=newThread(a);t.start();}publicvoidrun(){while(true){try{Thread.currentThread().sleep(1000);}catch(InterruptedExceptione){System.out.println(e.toString());}System.out.println("loopingwhile");}}}A)在屏幕上反復輸出"loopingwhile"。B)在屏幕上輸出一次"loopingwhile"。C)沒有結果輸出。D)以上說法都錯誤?!敬鸢浮緼15.下面的程序段創(chuàng)建了BufferedReader類的對象in,以便讀取本機d盤my文獻夾下的文獻1.txt。File構造函數(shù)中對的的途徑和文獻名的表達是()。Filef=newFile(填代碼處);file=newFileReader(f);in=newBufferedReader(file);A)"1.txt"B)"d:\\my\\1"C)"d:\\my\\1.txt"D)"d:\my\1.txt"【答案】C二、多選題(本大題10小題,每小題2分,共20分)1.下面的說法對的的是()。A)Java語言是面向對象的、解釋執(zhí)行的網(wǎng)絡編程語言。B)Java語言具有可移植性,是與平臺無關的編程語言。C)Java語言可對內(nèi)存垃圾自動收集。D)Java語言編寫的程序雖然是“一次編譯,到處運營”,但必須要java的運營環(huán)境?!敬鸢浮緼BCD2.下面main()方法的定義哪些是對的的()?A)publicstaticvoidmain(Stringargs[]){}B)publicstaticvoidmain(String[]){}C)publicstaticvoidmain(String[]args){}D)publicstaticvoidmain(String[]x){}【答案】ACD3.定義變量如下:charc='w';inti=8;longL=15;floatf=8.9f;以下賦值語句對的的是()。A)i=c+i;B)c=c+i;C)L=f+L;D)f=i+L+f;【答案】AD4.下面哪些關鍵字能用來控制對類成員的訪問()?A)publicB)protectedC)privateD)default【答案】ABC5.面向對象程序設計的基本特性是()。A)抽象B)封裝C)繼承D)多態(tài)【答案】ABCD6.下面關于類的說法對的的是()。A)類是Java語言中的一種復合數(shù)據(jù)類型。B)類中包含數(shù)據(jù)變量和方法。C)類是對所有具有一定共性的對象的抽象。D)Java語言的類只支持單繼承?!敬鸢浮緼BCD7.編譯并運營下面的程序,運營結果為().publicclassT1{publicstaticvoidmain(String[]args){T1a=newT1();a.method(8);a.method(1.2f);}voidmethod(floati){System.out.println("float:"+i);}voidmethod(longi){System.out.println("long:"+i);}}A)程序有編譯錯誤,由于兩個method()方法必須定義為靜態(tài)(static)的。B)程序可以編譯運營,輸出結果為:long:8float:1.2C)程序可以編譯運營,輸出結果為:float:1.2long:8D)程序中定義的兩個參數(shù)不同的method方法稱為方法重栽?!敬鸢浮緽D8.下面是在命令行運營Java應用程序A,如何才干在main(Stringargs[])方法中訪問單詞"first"()?javaAthefirstsnow,thefirstsnowcame.A)args[0]B)args[1]C)args[2]D)args[5]【答案】BD9.編譯并運營下面的程序,運營結果為().publicclassA{publicstaticvoidmain(String[]args){Aa=newB();a.test();}voidtest(){System.out.print("A");}}classBextendsA{voidtest(){super.test();System.out.println("B");}}A)子類B定義了與父類A中同名的方法test,java中稱為方法的覆蓋。B)代碼可以編譯運營,并輸出結果:AB。C)代碼可以編譯運營,并輸出結果:A。D)子類B定義了與父類A中同名的方法test,java中稱為方法的重載?!敬鸢浮緼B10.下面哪個說法對的()?A)假如某公共的接口被聲明在一個源文獻中,則接口必須與源文獻具有相同的名字。B)假如源文獻包含import語句,則該語句必須是除空行和注釋行外的第一個語句行。C)假如某源文獻包含package語句,則該語句必須是第一個非空、非注釋行。D)接口中的方法必然是抽象方法,但可以不用關鍵字abstract修飾?!敬鸢浮緼BCD三、填空題(本大題10小題,每小題1分,共10分)1.創(chuàng)建類的對象時,使用運算符___________給對象分派內(nèi)存空間。2.定義類的構造方法不能有返回值類型,其名稱與_____名相同。3.Java語言中關鍵字_____表達雙精度類型。4.若有定義:floatb={1.1f,3.5f,6.8f};,則b.length()的值是_______。5.若有類定義:classBextendsA{…}則類B是類A的______。6.接口中的成員只有靜態(tài)常量和______。7.在

溫馨提示

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

評論

0/150

提交評論