JAVA期末考試試題及答案_第1頁
JAVA期末考試試題及答案_第2頁
JAVA期末考試試題及答案_第3頁
JAVA期末考試試題及答案_第4頁
JAVA期末考試試題及答案_第5頁
已閱讀5頁,還剩53頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

JAVA語言程序設計考試試題與部分答案

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

有一個選項是正確的,請將正確選項的標記寫在題干后的括號內。

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

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

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

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

2.設i、j為int型變量名,a為int型數組名,以下選項中,正確的賦值語

句是(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;,則執行以下語句后,i的值為(C)。

i+=i-1;

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

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

A)interfaceB)packageC)extendsD)class

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

其中0&k<3,則對x數組元素錯誤的引用是(C)。

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

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

charchl='A',ch2='W';

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

A)'A'B)'B'C)'CD)B

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

inti=8,j=16;

if(i-1>j)i--;elsej-;

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

9.下列語句序列執行后,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)33

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

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

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

11.設有定義floatx=3.5f,y=4.6f,z=5.7f;則以下的表達式中,值為true

的是(B)。

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

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

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

inti=16;

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

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

13.以下由for語句構成的循環執行的次數是(B)。

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

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

C)執行1次D)一次也不執行

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

A)privateB)staticC)abstractD)protected

15.設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)staticfinalinti=100;B)finalinti=1.2;

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

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

A)classx{....}

B)classxextendsy{....}

C)staticclassximplementsyl,y2{....}

D)publicclassxextendsApplet{....}

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

()o

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

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

19.設i、j、k為類x中定義的int型變量名,下列類x的構造函數中不

正確的是(B)o

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,public

B)float,boolean,int,long

C)char,extends,float,double

D)public,private,protected

22.不能構成循環的語句是(C)。

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

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

booleanbl=true,b2,b3;

24=bl?bl:b2;

A)0B)1C)trueD)false

25下面數據結構中,屬于非線性的是(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.構造函數.沒—有返回值。

2.Java語言中的浮點型數據依據數據存儲長度和數值精度的不同,進一步分

為float和__double兩種具體類型。

3.創建類對象的運算符是—newo

4.當整型變量n的值不能被13除盡時,其值為false的Java語言表達式

是—n%13==0o

5.在Java語言中,全部的數組都有一個lenght屬性,這個屬性存儲了該數

組的—元素個數。

6.定義類就是定義一種抽象的父類,它是全部具有確定共性的

對象的抽象描述。

7.在Java語言中,運用—平臺無關—、java虛擬機—等技術,實現軟

件重用。

8.表達式3/6*5的計算結果是一0—o

9.下面是一個類的定義:

publicclass_intMyclass

{

intx,y;

Myclass(inti,__=0.)//構造函數

x=i;

y=j;

1。.下面是一個JavaApplication的主類的定義,其功能是輸出全部叮囑行

參數。

importjava.io.*;

publicclassMyClass

{

publicstaticvoidmain(Stringargs[])

{

if(args.length!=_Q)

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

System.out.println(_"i="+i);

elseSystem.out.printin(沒有叮囑行參數);

)

)

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

源程序中已定義的另兩個類的類名:

importjavaawt.*;

importjavaapplet.*;

publicclassmyprogramextendsApplet〃定義小程序的主類

{

Aa;Bb;

publicmyprogram__init()

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

)

12.Java的復合數據類型有:類、數組和—接口—等。Java的簡潔數據

類型有:數值類型(整形和浮點類型),自負類型和布爾類型

13.表達式3/6*5的計算結果是一0o

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

lvar=l*el0。

15.依次結構、分支結構(或稱選擇結構)、—循環結構是結構化程

序設計的三種基本流程限制結構。

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

intm(floatx,floaty)

{k=(int)x*y;}

17.Java源程序文件編譯后產生的文件稱為一字節碼—文件,其擴展名

為___.classo

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(排序前的數據序列:);

ShowArray(a);

Sort(a);

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

ShowArray(a);

publicstaticvoidSort(int[]x)

(

intw;

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

{

for(intj=0;j<x.length-l;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("b[i"+i+"]="+b[i]);

System.out.println();

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

什么?

排序前的數據序列:

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

排序后的數據序列:

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

=200

2.請寫下程序的輸出結果:

publicclassTest52

(

Stringstrl="Hello,Javaworld!\t";

Stringstr2="Hello,students!";

publicstaticvoidmain(Stringargs[])

{

System.out.print(strl);

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

i

publicstaticvoidmain(Stringargs[])

{

intx,y;

byteb=6;

floatz=1.234f;

doublew=1.23;

booleanflag;

x=12;

y=300;

flag=x>y;

System.out.printin("x>y=="+flag);

flag=z>w;

System.out.println("z>w=="+flag);

}

}

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

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

由于Java不支持多繼承,而有可能某個類或對象要運用分別在幾個類或

對象里面的方法或屬性,現有的單繼承機制就不能滿足要求。與繼承相比,接

口有更高的靈敏性,因為接口中沒有任何實現代碼。當一個類實現了接口以后,

該類要實現接口里面全部的方法和屬性,并且接口里面的屬性在默認狀態下面

都是publicstatic,全部方法默認狀況下是public.一個類可以實現多個接

口。

2.垃圾回收的優點和原理。并考慮2種回收機制。

Java語言中一個顯著的特點就是引入了垃圾回收機制,使C++程序員最

頭疼的內存管理的問題迎刃而解,它使得Java程序員在編寫程序的時候不再

須要考慮內存管理。由于有個垃圾回收機制,Java中的對象不再有"作用域"

的概念,只有對象的引用才有“作用域"。垃圾回收可以有效的防止內存泄露,

有效的運用可以運用的內存。垃圾回收器通常是作為一個單獨的低級別的線程

運行,不行預知的狀況下對內存堆中已經死亡的或者長時間沒有運用的對象進

行清楚和回收,程序員不能實時的調用垃圾回收器對某個對象或全部對象進行

垃圾回收。回收機制有分代復制垃圾回收和標記垃圾回收,增量垃圾回收。

3,談談final,finally,finalize的區分。

Final一修飾符(關鍵字)假如一個類被聲明為final,意味著它不能再派

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

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

不被變更。被聲明為final的變量必需在聲明時給定初值,而在以后的引用中

只能讀取,不行修改。被聲明為final的方法也同樣只能運用,不能重載。

Finally一再異樣處理時供應finally塊來執行任何清除操作。假如拋出

一個異樣,那么相匹配的catch子句就會執行,然后限制就會進入finally塊

(假如有的話)。

Finalize一方法名。Java技術允許運用finalize()方法在垃圾收集器

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

確定這個對象沒有被引用時對這個對象調用的。它是在Object類中定義的,

因此全部的類都繼承了它。子類覆蓋finalize()方法以整理系統資源或者

執行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個對

象調用的。

4,數組有沒有length()這個方法?String有沒有length()這個方

法?舉例說明運用方法?

數組沒有length()這個方法,有length的屬性。

String有有length()這個方法。

5.Java中的異樣處理機制的簡潔原理和應用。

當JAVA程序違反了JAVA的語義規則時,JAVA虛擬機就會將發生的錯

誤表示為一個異樣。違反語義規則包括2種狀況。一種是JAVA類庫內置的語

義檢查。例如數組下標越界,會引發IndexOutOfBoundsException;訪問

null的對象時會引發NullPointerException.另一種狀況就是JAVA允許程

序員擴展這種語義檢查,程序員可以創建自己的異樣,并自由選擇在何時用

throw關鍵字引發異樣。全部的異樣都是java.lang.Thowable的子類。

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

1、編程:編寫一個截取字符串的函數,輸入為一個字符串和字節數,輸出為

按字節截取的字符串。但是要保證漢字不被截半個,如"我ABO4,應當截為

“我AB",輸入"我ABC漢DEF",6,應當輸出為“我ABC"而不是"我ABC+

漢的半個"。

2、編程求解:全部兩位整數能被3整除的數的和,以與不能被3整除的數的

各位數字之和。

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

4、請設計一個對N個數進行排序的程序

一、選擇題(每道題只有一個正確答案,每小題2分,共3。分)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中數據類型敘述正確的是:(B)

A、整型數據在不同平臺下長度不同

B.boolean類型數據只有2個值,true和false

C.數組屬于簡潔數據類型

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的類分為兩大部分:系統定義的類和用戶自定義的類

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

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

D.類是對象的實例化

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

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

B.構造方法在類定義時被調用

C.構造方法只能由對象中的其它方法調用

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.異樣出現后程序的運行立即中止

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、為實現進程之間的通信,須要運用下列那種流才合適?(D)

A.Datastream

B.

C.Bufferedstream

D.Pipedstream

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

(D)

A.ActionListener

B.MouseListener

C.MouseMotionListern

D.ItemListener

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

1、面對對象程序設計所具有的基本特征是:—抽象性_封裝性—,

繼承性_,一多態性—

2、數組x定義如下

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

則x..length的值為3,

x[0].length的值為2。

3、Java中實現多線程一般運用兩種方法,一是—繼承Thread類________,

二是_____實現Runnable方法__________

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

般用到的布局管理器有(列出四種即可)_FlowLayout,

__GridLayout,_BorderLayout,CardLayout

5、Applet常用的方法是:_init()_、_run()一、一stop。一和destroy。。

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

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.println(a.isEqualTo(b));

)

)

程序的輸出結果為:—false

2、classA{

doublef(doublex,doubley){

returnx*y;

}

I

classBextendsA{

doublef(doublex,doubley){

returnx+y;

I

J

I

J

publicclassTest{

publicstaticvoidmain(Stringargs[]){

Bobj=newB();

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

}

}

程序的輸出結果為:一Theprogramoutputis10_

3、publicclassUnchecked{

publicstaticvoidmain(String[]args){

try(

methodQ;

}catch(Exceptione){

System.out.println("A");

}finally(

System.out.println("B");

}

}

staticvoidmethodQ{

try(

wrench();

System.out.println("C");

}catch(ArithmeticExceptione){

System.out.println("D");

}finally{

System.out.println("E");

}

System.out.println("F");

}

staticvoidwrench(){

thrownewNullPointerExceptionQ;

程序的輸出結果為:

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]is5

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

A.-27-27-1

B.0-216-1

C.-215-215-1

D.-231-231-1

2.下面哪些是合法的標識符[ABE]

A.$persons

B.TwoUsers

C.*point

D.this

E._endline

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

A.longnumber=345L;

B.longnumber=0345;

C.longnumber=0345L;

D.longnumber=0x345L;

4.下面的哪些程序片斷可能導致錯誤。舊D]

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=newPersonQ;

Teachert=newTeacherQ;

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

B.FlowLayout

C.CardLayout

D.GridLayout

7.給出下面的代碼片斷

1publicvoidcreateQ{

2VectormyVect;

3myVect=newVectorQ;

4)

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

A.其次行的聲明不會為變量myVect支配內存空間。//指的是堆空間,只是

在棧中支配;這里不用較真.自己理解就好;

B.其次行的聲明支配一個到Vector對象的引用的內存空間。

C.其次行語句創建一個Vector類對象。

D.第三行語句創建一個Vector類對象。

E.第三行語句為一個Vector類對象支配內存空間。

〃支配棧空間,相當于指針,但是擔心排"到Vector對象的引用的空間”;選項二

的意思是支配了堆空間;

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

A.010

B.0x10

C.08

D.0x8

9.哪些不是Java關鍵字[AB]

A.TRUE

B.sizeof

C.const

D.super

E.void

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

A.equals。方法判定引用值是否指向同一對象。〃不說是誰的就是默認的

B.==操作符判定兩個分立的對象的內容和類型是否一樣。

C.equals。方法只有在兩個對象的內容一樣時返回true。

D.類File重寫方法equals。在兩個分立的對象的內容和類型一樣時返回

true0〃當兩個獨立的對象的內容和類型一樣;

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

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

B.在java中一個類只能實現一個接口。

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

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

12.第十行的聲明將調用哪些方法.[D]

1classPerson{

2publicvoidprintValue(inti,intj){}

3publicvoidprintValue(inti){}

4}

5publicclassTeacherextendsPerson{

6publicvoidprintValue(){}

7publicvoidprintValue(inti){}

8publicstaticvoidmain(Stringargs[]){

9Persont=newTeacherQ;

10t.printValue(lO);

11}

12}

A.第2行的方法

B.第3行的方法

C.第6行的方法

D.第7行的方法

13.下面哪些不是java的原始數據類型舊C]

A.short

B.Boolean

C.unit

D.float

14.下面的哪些關鍵字通常用來對對象的加鎖,該標記使得對對象的訪問是排

他的?[B]

A.transient

B.synchronized

C.serialize

D.static

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

A.int

B.void

C.boolean

D.static

16.給出以下關于一個運用適當的字符間距的字體的TextField的表達式

TextFieldt=newTextField("theyaregood",40);//40指的是像素

哪些敘述是對的?[D]

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

B.一行中最大的字符數是40

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

D.用戶可以編輯字符。

17.關于垃圾收集的哪些敘述是對的?[B]

A.程序開發者必需自己創建一個線程進行內存釋放的工作。

B.垃圾收集將檢查并釋放不再運用的內存。

C.垃圾收集允許程序開發者明確指定并立刻釋放該內存。

D.垃圾收集能夠在期望的時間釋放被java對象運用的內存。

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]

A.第3行

B.第5行

C.第6行

D.第10行

19.Thread的方法resume。負責復原哪些線程的執行?[D]

A.通過調用stop。方法而停止的線程。

B.通過調用sleep。方法而停止運行的線程。

C.通過調用wait。方法而停止運行的線程。

D.通過調用suspend。方法而停止運行的線程。//已經過期了

20.有關線程的哪些敘述是對的?舊D]

A.一旦一個線程被創建,它就立刻起先運行。

B.運用start。方法可以使一個線程成為可運行的,但是它不愿定立刻起先運

行。

C.當一個線程因為搶先機制而停止運行,它被放在可運行隊列的前面。〃比

它優先級高的進程搶占了cpu,它運行的時間依據操作系統而定;

D.一個線程可能因為不同的緣由停止并進入就緒狀態。〃可運行狀態

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

1

2{success=connectQ;

3if(success==-l){

4thrownewTimedOutExceptionQ;

5}

6}

已知TimedOutException不是一個RuntimeException。下面的哪些聲

明可以被加入第一行完成此方法的聲明舊C]

A.publicvoidmethod()

B.publicvoidmethod()throwsException

C.publicvoidmethod()throwsTimedOutException

D.publicvoidmethod()throwTimedOutException

E.publicthrowTimedOutExceptionvoidmethod()

22.給出下面的代碼

classPerson{

Stringname,department;

publicvoidprintValue(){

System.out.println("nameis"+name);

System.out.println("departmentis"+department);

publicclassTeacherextendsPerson(

intsalary;

publicvoidprintValue(){

//完成父類代碼中printVahie()相同的工作

System.out.println("salaryis"+salary);

|

}

下面的哪些表達式可以加入printValue。方法的注釋部分?[D]

A.printValueQ;

B.this.printValueQ;

C.person.printValueQ;

D.super.printValueQ;

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));//構造函數的名字不能當方法名調用;

C.this(n,a);

D.this(name,age);//構造方法的參數也不能干脆傳實例變量名

25.下面關于變量與其范圍的陳述哪些是對的?[ACD]

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

B.實例變量用關鍵字static聲明。

C.在方法中定義的局部變量在該方法被執行時創建

D.局部變量在運用前必需被初始化。

26.給出下面的代碼

publicvoidtest(){

try{

oneMethodQ;

System.out.println("condition1");

}catch(ArraylndexOutOfBoundsExceptione){

System.out.println("condition2");

}catch(Exceptione){

System.out.printin("condition3");

}finally{

System.out.println("finally");

在oneMethodO方法運行正常的狀況下將顯示什么?[AD]

A.condition1

B.condition2

C.condition3

D.finally

27.給出下面的代碼

publicclassTest{

voidprintValue(intm){

do{

System.out.printin("Thevalueis"+m);

}while(—m>10);

I

publicstaticvoidmain(Stringarg[]){

inti=10;

Testt=newTest();

t.printValue(i);

)

}

輸出將是什么?[C]

A.8

B.9

C.10

D.11

28.下面的有關聲明的哪些敘述是對的?舊C]

A.對原始數據類型例如boolean,byte的變量的聲明不會為該變量支配內存

空間。

B.對原始數據類型例如boolean,byte的變量的聲明將為之支配內存空間。

C.非原始數據類型例如String,Vector的變量的聲明不會為該對象支配內存。

D.非原始數據類型例如String,Vector的變量的聲明會為該對象支配內存。

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

29.類的設計要求它的某個成員變量不能被外部類干脆訪問。應當運用下面的

哪些修飾符獲得須要的訪問限制?[D]

A.public

B.不加修飾符

C.protected

D.private〃面對對象編程P196頁的表格,private一行有錯誤

30.給出下面的代碼片斷

1Stringstr=null;

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

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

4}

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

6System.out.println("lessthan5");

7}

8else{System.out.println("end");}

哪些行將導致錯誤?[C]

A.第1行

B.第2行

C.第5行

D.第8行

31.下面有關java代碼平安性的敘述哪些是對的?[BCD]

A.字節碼校驗器加載查詢執行須要的全部類。

B.運行時說明器執行代碼。

C.在運行時,字節碼被加載,驗證然后在說明器里面運行。

D.類加載器通過分別本機文件系統的類和從網絡導入的類增加平安性。

32.給出下面的代碼

publicclassPerson{

intarr[]=newint[10];〃非靜態屬性

publicstaticvoidmain(Stringa[]){

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

/

)

哪些敘述是對的?[A]

A.編譯時出錯。

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

C.輸出Oo

D.輸出null。

33.給出下面的代碼

publicclassParent{

publicintaddValue(inta,intb){

ints;

s=a+b;

returns;

}

}

classChildextendsParent{

}

哪些方法可以加入類Child中?舊C]//方法的覆蓋

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

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

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

D.publicintaddValue(inta,intb)throwsException{//do

something...)

34.公有成員變量MAX_LENGTH是一個int型值,變量的值保持常數值

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(long1){length=1;}

publicstaticvoidmain(Stringarg[]){

Samplesi,s2,s3;

si=newSample(21L);

s2=newSample(21L);

s3=s2;

longm=2IL;

|

}

哪個表達式返回true?舊]

A.si==s2;

B.s2==s3;

C.m==si;

D.si.equals(m);

37.給出下面有關java.awt.List的表達式

List1=newList(6,true);//其次個參數是false的話只能選一個

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

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

B.一行的最大字符數是6

C.列表將允許用戶多選

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

}

}

下面的哪些狀況或輸出的結果正確?[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;}

這個語句導致的結果是什么?[C]//默認new時聲明的都是本類;

A.將構造一個Student對象

B.表達式合法

C.編譯時非法

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

40.給出下面的代碼

Strings="hello";

Stringt="hello";

charc[]={h,'e',T,T「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.下列語句執行后,變量a、c的值分別是()。

intx=182;

inta,c;

c=x/100;

a=x%10;

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

【答案】B

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

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

【答案】B

3.以下是應用程序中定義的靜態方法printBinary,若在其main方法中有方

法調用語句printBinary⑵,則輸

出的結果是()o

staticvoidprintBinary(inti){

System.out.print(i+"的2進制數表示為:\t");

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

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

System.out.print("l");

else

System.out.print("0");

System.out.println。;//換彳亍

}

A)0000000001B)0000000010

C)0000001111D)0000000000【答案】B

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

Stringsl="0.5",s2="12";

doublex=Double.parseDouble(s1);

inty=lnteger.parselnt(s2);

System.out.printin(x+y);

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

【答案】A

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

doublex=1234.1234567;

DecimalFormatforml=newDecimalFormat("0000,0");

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

A)PI=1234.1B)PI=1234

C)PI=1234.1235D)PI=1234.0

【答案】A

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

Strings=newString("abcdefg");

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

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

)

A)acegB)ACEGC)abcdefgD)abed

【答案】A

7.應用程序的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.printin(max);

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

【答案】A

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

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

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

【答案】C

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

publicclassAimplementsB(

publicstaticvoidmain(Stringargs[]){

inti;

Acl=newA();

i=cl.k;

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

interfaceB{

intk=10;

}

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

【答案】B

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

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.println("sum="+sum);

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

【答案】A

11.有整型數組:int[]x={12,35,8,7,2};,則調用方法A"ays.sort(x)后,數

組x中的元素值依次是().

A)2781235B)1235872C)3512

872D)8712

352

【答案】A

12.編譯和運行下面的應用程序,并在叮囑行界面輸入12345,則回車后屏幕

輸出的結果是().

publicclassA{

publicstaticvoidmain(Stringargs[])throwsIOException{

BufferedReaderbuf=newBufferedReader(

newInputStreamReader(System.in));

Stringstr=buf.readLine();

intx=Integer.parselnt(str);

System,out.printin(x/100);

}

}

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

【答案】C

13.下面的程序段執行后輸出的結果是()o

StringBufferbuf=newStringBuffer("Beijing2023");

buf.insert(7,"@");

System.out.printin(buf.toStringQ);

A)Beijing@2023B)@Beijing2023C)Beijing2023@D)

Beijing#2023【答案】A

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

publicclassAimplementsRunnable{

publicstaticvoidmain(Stringargv[]){

Aa=newA();

Threadt=newThread(a);

t.start();

publicvoidrun(){

while(true)

溫馨提示

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

評論

0/150

提交評論