《java程序設(shè)計(jì)》期末復(fù)習(xí)題_第1頁(yè)
《java程序設(shè)計(jì)》期末復(fù)習(xí)題_第2頁(yè)
《java程序設(shè)計(jì)》期末復(fù)習(xí)題_第3頁(yè)
《java程序設(shè)計(jì)》期末復(fù)習(xí)題_第4頁(yè)
《java程序設(shè)計(jì)》期末復(fù)習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2009-2010第二學(xué)期《java程序設(shè)計(jì)》復(fù)習(xí)題

可能題型:選擇、填空、簡(jiǎn)答、判斷

練習(xí)一(兩類java程序)...................................................1

練習(xí)二(數(shù)據(jù)類型)........................................................2

練習(xí)三(運(yùn)算符與表達(dá)式)..................................................3

練習(xí)四(條件,分支語(yǔ)句)...................................................4

練習(xí)五(條件,分支語(yǔ)句)...................................................5

練習(xí)六(控制結(jié)構(gòu)與循環(huán)體內(nèi)的跳轉(zhuǎn)).......................................8

練習(xí)七(方法)..........................................................8

練習(xí)八(方法重載)........................................................9

練習(xí)九(數(shù)組)............................................................9

練習(xí)十(繼承:類,屬性和方法的繼承,屬性隱藏和方法覆蓋,構(gòu)造函數(shù)的繼承,父類

對(duì)象和子類對(duì)象的關(guān)系)..................................................11

練習(xí)十一(多態(tài):抽象類和抽象方法,最終類和最終方法,接口)...............16

練習(xí)十二(異常處理)...................................................17

練習(xí)十三(雜).........................................................19

練習(xí)十四(i。)........................................................22

練習(xí)十五(線程).......................................................23

練習(xí)十六(網(wǎng)絡(luò)).......................................................25

練習(xí)十七(gui)........................................................27

練習(xí)十八(雜).........................................................28

練習(xí)一(兩類java程序)

LJava是低級(jí)語(yǔ)言還是高級(jí)語(yǔ)言(高級(jí))

2.Java是面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言嗎(是)

3.Java是編譯型的計(jì)算機(jī)語(yǔ)言還是解釋型的計(jì)算機(jī)語(yǔ)言(解釋型)

4.Java語(yǔ)言的程序設(shè)計(jì)包含哪3個(gè)步驟(編寫源程序,編譯源程序,解釋運(yùn)行編譯后形成的

字節(jié)碼文件)

5.Java源程序文件的后綴是什么(.java)

6.Java源程序經(jīng)編譯后生成什么文件其后綴是什么(字節(jié)碼文件,.class)

7.Java程序有哪兩類(java應(yīng)用程序,java小程序)

8.類的定義由哪兩部分組成(類頭和類體)

9.方法的定義由哪兩部分組成(方法頭和方法體)

10.一個(gè)Java源程序中可以有多個(gè)公共類(主類)嗎(不能)

11.一個(gè)Java源程序中可以有多個(gè)類嗎若有多個(gè)類時(shí),程序文件名是什么(能,與公共類名

一致)

12.Java應(yīng)用程序(Application)的主類的類頭應(yīng)如何寫(publicclass類名),它的主

方法的方法頭應(yīng)如何寫(publicstaticvoidmain(Stringargs[])),Application的入

口在哪(main())

13.Java應(yīng)用程序(Application)的主類中一定要有主方法(main)嗎?是

14.Java中的的字符使用什么編碼(unicode)

15.在Java語(yǔ)言中,將源代碼翻譯成時(shí)產(chǎn)生的錯(cuò)誤稱為編譯錯(cuò)誤,而將程序在

運(yùn)行中產(chǎn)生的錯(cuò)誤稱為運(yùn)行錯(cuò)誤.(字節(jié)碼)

16.為了使包sos中的所有類在當(dāng)前程序中可見(jiàn),可以使用的語(yǔ)句是(A).

A)importsos.*;B)packagesos.*;

C)sosimport;D)sospackage;

17.下面關(guān)于封裝性的描述中,錯(cuò)誤的是(d)。

A.封裝體包含屬性和行為B.被封裝的某些信息在外不可見(jiàn)

C.封裝提高了可重用性D.封裝體中的屬性和行為的訪問(wèn)權(quán)限相同

練習(xí)二(數(shù)據(jù)類型)

1.以下的選項(xiàng)中能正確表示Java語(yǔ)言中的一個(gè)整型常量的是(B).

A)12.B)-20C)1,000D)456

2.下列的變量定義中,錯(cuò)誤的是(A).

A)int6_a;B)floata;

C)inti=Integer.MAX_VALUE;D)staticinti=100;

3.下列的變量定義中,錯(cuò)誤的是(A).

A)inta;b;B)floata,bl=l.23f;

C)charchl='d',ch2=';D)publicinti=100,j=2,k;

4.下列的變量定義中,錯(cuò)誤的是(D).

A)int_a=123;B)longj=12345678900L;

C)intm,n;D)statici=100;

5.下列的變量定義中,正確的是(D).

A)booleanbl="true";B)floatx=6.6;

C)bytei=200;D)doubley;

6.以下字符常量中不合法的是(C).

A)'B)'C)"k"D)"整'

7.以下的選項(xiàng)中能正確表示Java語(yǔ)言中的一個(gè)整型常量的是(A).

A)Integer.MAX_VALUEB)8.8FC)2.0E16D)true

8.下列最終屬性(常量)i的定義中,正確的是(C).

A)staticfinaldoublei;B)abstractfinalinti=8;C)finaldoublei=3.14159;

D)floati=l.2f;

9.以下的選項(xiàng)中能正確表示Java語(yǔ)言中的一個(gè)double型常量的是(C).

A)Float.MIN_VALUEB)1.8e-6FC)2.0D)'abcf'

10.以下的變量定義語(yǔ)句中,合法的是(C).

A)float$_*5=3.4F;B)bytebl=15678;

0doublea=Double.MAX_VALUE;D)int_abc_=3721L;

11.以下字符常量中不合法的是(C).

A)'I'B)C)"\n"D)'我'

12.Java語(yǔ)言中的浮點(diǎn)型數(shù)據(jù)根據(jù)數(shù)據(jù)存儲(chǔ)長(zhǎng)度和數(shù)值精度的不同,進(jìn)一步分為哪兩種具體

類型,各占二進(jìn)制的多少位(float32位,double64位)

13.Java的復(fù)合數(shù)據(jù)類型有那幾種(類,數(shù)組和接口)

14.在Java語(yǔ)言中,邏輯常量只有哪兩個(gè)值(true,false)

15.字符串"\'a\'"的長(zhǎng)度是幾(即有幾個(gè)字符)(3個(gè)字符)

16.Java語(yǔ)言中的邏輯變量可以和整型變量相互強(qiáng)制轉(zhuǎn)換嗎(不能)

17.在程序中可對(duì)用final修飾的變量的值進(jìn)行更改嗎(不能)

18.Java的字符類型采用的是Unicode編碼方案,每個(gè)Unicode碼占用(B)個(gè)比特位。

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

練習(xí)三(運(yùn)算符與表達(dá)式)

1.已定義a為int類型的變量.以下選項(xiàng)中,合法的賦值語(yǔ)句是(B).

A)a+1—2;B)a+=a*6;C)a=8.8f;D)inta=8;

2.以下選項(xiàng)中的變量都已正確定義,不合法的表達(dá)式是(C).

A)a>=4==b3;B)t=!false;C)t=(true|false);D)t=(2==3)true:false;

3.以下變量均已正確定義并賦值,下面符合Java語(yǔ)言語(yǔ)法的賦值語(yǔ)句是(A).

A)m=n>=5;B)m=k%c=h+y;

C)j=t+%100;D)j=y>2=x+3;

4.設(shè)i,j,k,m為已賦值的int型變量,下列表達(dá)式的結(jié)果屬于邏輯值的是(A).

A)i==k&j+k>=mB)i+kC)m++D)m=i+j

5.變量a定義為int類型.以下選項(xiàng)中,合法的賦值語(yǔ)句是(B).

A)a+1==2;B)a+=l;C)a=8.8f;D)a=newint(8);

6.若有定義intx=13;則執(zhí)行完語(yǔ)句x%=8;后,x的值是(C).

A)0B)1C)5D)8

7.以下選項(xiàng)中,合法的賦值語(yǔ)句是(B).

A)a==1;B)++i;C)a=a+1=5;D)!(++a!=b--);

8.若所用變量都已正確定義,以下選項(xiàng)中,非法的表達(dá)式是(0.

A)a!=4|b==1B)'a'%3C)'a'=1/2D)'A'+32

9.若有定義inta=2;則執(zhí)行完語(yǔ)句a-=a*a;后,a的值是(C).

A)0B)4C)-2D)-4

10.現(xiàn)有一變量聲明為booleanaa;下面賦值語(yǔ)句中正確的是(A).

A)aa=false;B)aa=False;C)aa="true";D)aa=0;

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

booleanbl=true,b2=true,b3;

b3=!blbl:!b2;

A)0B)1C)trueD)false

12.設(shè)有定義inti=123:longj=456;下面賦值不正確的語(yǔ)句是(D).

A)j=i;B)j=(long)i;C)i=(int)j;D)i=j;

13.若以下變量均已正確定義并賦值,下面符合Java語(yǔ)言語(yǔ)法的語(yǔ)句是(A).

A)b=a!=7;B)a=7+b+c=9;C)i=12.3*%4;D)a=a+7=c+b;

14.下列程序段執(zhí)行后t5的結(jié)果是(B).

inttl=9,t2=11,t3=8;

intt4,t5;

t4=tl>t2tl:t2+tl;

t5=t4>t3t4:t3;

A)8B)20C)11D)9

15.執(zhí)行下面程序段后,b,x,y的值分別是(D).

intx=6,y=8;

booleanb;

b=x>y&&++x==一y;

A)true,6,8B)false,7,7C)true,7,7D)false,6,8

16.執(zhí)行下列程序段后,m,X,y的值分別是(B).

intx=2,y=4;

booleanm;

m=++x>y一;

A)true,2,4B)false,3,3C)true,3,3D)false,2,4

17.下面語(yǔ)句序列執(zhí)行后,a的值是(D).

inta=13;a%=a/5;

A)3B)13C)169D)1

18.設(shè)x,y,max,min均為int型變量,x,y已賦值.用三目條件運(yùn)算符求x,y的最大值和最小

值,并分別賦給變量max和min,這兩個(gè)賦值語(yǔ)句分別是和.(max=x>yx:y;

min=x〈y?x:y;)

練習(xí)四(條件,分支語(yǔ)句)

1,下列語(yǔ)句序列執(zhí)行后,m的值是(C).

inta=10,b=3,m=5;

if(a==b)m+=a;elsem=++a*m;

A)15B)50C)55D)5

2.下列語(yǔ)句序列執(zhí)行后,x的值是(d).

inta=2,b=4,x=5;

if(a<—b)x*=a;

A)5B)20C)15D)10

3.下列語(yǔ)句序列執(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)33

4.若a和b均是整型變量并已正確賦值,正確的switch語(yǔ)句是(D).

A)switch(a+b);{......}B)switch(a+b*3.0){......}

C)switcha{......}D)switch(a%b){......}

5.下列語(yǔ)句序列執(zhí)行后,r的值是(0.

charch='8';intr=10;

switch(ch+1)

case'T:r=r+3

case'8':r=r+5

case'9':r=r+6break;

default:r=r+8;

A)13B)15C)16D)18

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

switch語(yǔ)句是(B).

A)switch(x+y){.....}B)switch(ch+1){.....}

C)switchch{.....}D)switch(a+b);{.....}

7.下列語(yǔ)句序列執(zhí)行后,k的值是(D).

intx=6,y=10,k=5;

switch(x%y)

(

case0:k=x*y;

case6:k=x/y;

case12:k=x-y;

default:k=x*y-x;

)

A)60B)5C)0D)54

8.下列語(yǔ)句序列執(zhí)行后,r的值是(B).

charch='A';intr=6;

switch(ch+5)

(

case'A':r=r+3;

case'B>:r=r+5;

case'C':r-=6;break;

default:r/=2;

)

A)11B)3C)2D)9

9.如果變量x已正確定義,寫出實(shí)現(xiàn)以下功能的語(yǔ)句:如果變量x是偶數(shù),則將其增加2.

(if(x%2==0)x+=2;)

10.設(shè)chi,ch2是char型變量:

if(chi二二'a')

{if(ch2==,b,)

System.out.printchi=\'a\',ch2=\'b\'〃);

)

else

System,out.printchl!=\'a\'〃);

System,out.printin(,zend");

問(wèn)題:1)若執(zhí)行前chi的值為‘a(chǎn)',ch2的值為‘c'該程序段輸出是什么(end)

2)若執(zhí)行前chi的值為‘w',ch2的值為‘b'該程序段輸出是什么(chi!='a'end)

3)若執(zhí)行前chi的值為‘a(chǎn)',ch2的值為‘b'該程序段輸出是什么

(chi='a,ch2='b'end)

練習(xí)五(條件,分支語(yǔ)句)

1.下列語(yǔ)句序列執(zhí)行后,j的值是(A).

intj=l;

for(inti=5;i>0;i-=2)j*=i;

A)15B)1C)60D)0

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

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

A)有語(yǔ)法錯(cuò),不能執(zhí)行B)無(wú)限次

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

3.下面語(yǔ)句執(zhí)行后,i的值是(B).

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

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

4.下列語(yǔ)句序列執(zhí)行后,k的值是(D).

intj=8,k=15;

for(inti=2;i!=j;i++){j-=2;k++;}

A)18B)15C)16D)17

5.下列語(yǔ)句序列執(zhí)行后,k的值是(B).

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

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

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

6.下列語(yǔ)句序列執(zhí)行后,i的值是(D).

ints=l,i=l;

while(i<=4){s*=i;i++;}

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

7.下列語(yǔ)句序列執(zhí)行后,j的值是(C).

intj=8,i=6;

while(i>4)i-=2;

---j;

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

8.下列語(yǔ)句序列執(zhí)行后,j的值是(B).

intj=9,i=6;

while(i->3)一j;

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

9.下列語(yǔ)句序列執(zhí)行后,j的值是(D).

intj=3,i=2;

while(—i!=i/j)j-j+2;

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

10.若有循環(huán):

intx=5,y=20;

do{y-=x;x+=2;}while(x<Y);

則循環(huán)體將被執(zhí)行(A).

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

11.下列語(yǔ)句序列執(zhí)行后,i的值是(D).

inti=10;

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

A)1B)502D)-1

12.下列語(yǔ)句序列執(zhí)行后,i的值是(C).

inti=10;

do{i-=2;}while(i>6);

A)10B)8C)6D)4

13.下列語(yǔ)句序列執(zhí)行后,i的值是(D).

inti=16;

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

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

14.以下由do-while語(yǔ)句構(gòu)成的循環(huán)執(zhí)行的次數(shù)是(B).

intk=0;

do{++k;}while(k<1);

A)一次也不執(zhí)行B)執(zhí)行1次C)無(wú)限次D)有語(yǔ)法錯(cuò),不能執(zhí)行

15.若有循環(huán):

intx=5,y=20;

do{y-=x;x++;}while(++x<-y);

則循環(huán)體將被執(zhí)行(C).

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

16.下面是一個(gè)java應(yīng)用程序(Application),它的功能是在屏幕上輸出26個(gè)小寫英文字母,

其中每個(gè)字母相隔一個(gè)制表符,請(qǐng)完成程序填空.

(class(c++)+〃\t〃或(c++)+'\t')

publicClassi

(

publicstaticvoidmain(Stringargs[])

(

charc='a';

for(inti=l;i<=26;i++)

{System,out.print();}

)

)

17.下面是一個(gè)java應(yīng)用程序(Application),它的功能是計(jì)算s=l+2+3+...+10,請(qǐng)完成程

序填空.(classi)

publicClassi

(

publicstaticvoidmain(Stringargs[])

(

ints=0;

for(inti=l;i<=10;i++)

(

s+=______;

)

System.out.println(〃s=〃+s);

)

)

18.下面是一個(gè)javaApplication的主類的定義,其功能是輸出乘法口訣表第一歹U,請(qǐng)完成

程序填空.(i<=9j*i)

importjava.io.

publicclassMyClass

publicstaticvoidmain(String[]args)

(

intj=l;

for(inti=l;;i++)

(

System,out.printin(i+“*"+j+"="+);

}

})

練習(xí)六(控制結(jié)構(gòu)與循環(huán)體內(nèi)的跳轉(zhuǎn))

1.結(jié)構(gòu)化程序設(shè)計(jì)的三種基本流程控制結(jié)構(gòu)是(略)

2.以下語(yǔ)句中能構(gòu)成分支的語(yǔ)句是(B).

A)for語(yǔ)句B)if語(yǔ)句

C)continue語(yǔ)句D)方法調(diào)用語(yǔ)句

3.以下語(yǔ)句中能構(gòu)成多分支的語(yǔ)句是(C).

A)for語(yǔ)句B)while語(yǔ)句

C)switch語(yǔ)句D)do-while語(yǔ)句

4.以下語(yǔ)句中能構(gòu)成多分支的語(yǔ)句是(C).

A)for語(yǔ)句B)while語(yǔ)句

C)if—else語(yǔ)句的嵌套D}do_while語(yǔ)句

5.以下語(yǔ)句中是循環(huán)語(yǔ)句的是(D).

A)break語(yǔ)句B)switch語(yǔ)句C)if語(yǔ)句D)do-while語(yǔ)句

6.以下語(yǔ)句中不能構(gòu)成循環(huán)的語(yǔ)句是(C).

A)for語(yǔ)句B)while語(yǔ)句C)switch語(yǔ)句D)do—while語(yǔ)句

7.能從循環(huán)語(yǔ)句的循環(huán)體中跳出的語(yǔ)句是(B).

A)for語(yǔ)句B)break語(yǔ)句C)continue語(yǔ)句D)return語(yǔ)句

8.閱讀程序后回答問(wèn)題.

publicclassContinueTest

{publicstaticvoidmain(Stringargs[])

{charc='i';

for(intn=6;n<11;n++)

{if(n==8)continue;

System,out.print("\t"+(c++));

}}}

問(wèn)題:1)程序的輸出結(jié)果是什么(ijk1)

2)若將if中的continue語(yǔ)句替換為break語(yǔ)句,輸出結(jié)果是什么

(iJ)

練習(xí)七(方法)

1.以下方法m的功能是求兩參數(shù)之積的整數(shù)部分.(return(int)(x*y))

intm(floatx,floaty){;}

2.方法可以沒(méi)有返回值嗎可以有多個(gè)返回值嗎(可以;不能)

3.一個(gè)方法如果沒(méi)有返回值,方法頭定義中的返回值類型為何(void)

4.一個(gè)方法或一個(gè)復(fù)合語(yǔ)句內(nèi)定義的變量是否可以在方法外或復(fù)合語(yǔ)句外使用這種變量

稱為什么變量(不能;局部變量)

5.采用的程序設(shè)計(jì)原則,使程序結(jié)構(gòu)清晰簡(jiǎn)單,設(shè)計(jì)容易,有助于軟件可靠性的提

高.(模塊化)

6.下面方法的功能是判斷一個(gè)整數(shù)是否為偶數(shù),將程序補(bǔ)充完整.(booleantrue)

publicisEven(inta)

{if(a%2==0)

return;

else

returnfalse;

}

練習(xí)八(方法重載)

1.同一個(gè)類中多個(gè)方法具有相同的方法名,不同的稱為方法的重載.(參數(shù)列

表)

2.在某個(gè)類中存在一個(gè)方法:voidgetSort(intx),以下能作為這個(gè)方法的重載的聲明的是

(0.

A)publicgetSort(floatx)B)intgetSort(inty)

C)doublegetSort(intx,inty)D)voidget(intx,inty)

3.在某個(gè)類中存在一個(gè)方法:voidsort(intx),以下不能作為這個(gè)方法的重載的聲明的是

(B).

A)publicfloatsort(floatx)B)intsort(inty)

C)doublesort(intx,inty)D)voidsort(doubley)

4.為了區(qū)分類中重載的同名的不同方法,要求(A).

A)采用不同的形式參數(shù)列表B)返回值類型不同

0調(diào)用時(shí)用類名或?qū)ο竺銮熬YD)參數(shù)名不同

5.重載的方法可以通過(guò)它們的返回值類型的不同來(lái)區(qū)分嗎(不能)

6.編譯程序如何區(qū)分重載方法的調(diào)用(根據(jù)參數(shù)列表不同來(lái)區(qū)分)

練習(xí)九(數(shù)組)

1.在一個(gè)應(yīng)用程序中定義了數(shù)組a:int[]a={l,2,3,4,5,6,7,8,9,10};,為了打印輸出數(shù)

組a的最后一個(gè)數(shù)組元素,下面正確的代碼是(B).

A)System,out.println(a[10]);B)System,out.printin(a[9]);

C)System,out.printin(a[a.length]);D)System,out.println(a(8));

2.下面關(guān)于數(shù)組定義語(yǔ)句不正確的是(D).

A)int[]al,a2;B)inta0[]={11,2,30,84,5};

C)doublet]d=newdouble[8];D)floatf[]=new{2.Of,3.5f,5.6f,7.8f};

3.設(shè)有定義語(yǔ)句inta[]={3,9,-9,-2,8};則以下對(duì)此語(yǔ)句的敘述錯(cuò)誤的是(C).

A)a數(shù)組有5個(gè)元素B)數(shù)組中的每個(gè)元素是整型

0a的值為3D)對(duì)數(shù)組元素的引用a[a.length-1]是合法的

4.設(shè)有定義語(yǔ)句inta[]={66,88,99};則以下對(duì)此語(yǔ)句的敘述錯(cuò)誤的是(C).

A)定義了一個(gè)名為a的一維數(shù)組B)a數(shù)組有3個(gè)元素

0a數(shù)組的元素的下標(biāo)為1?3D)數(shù)組中的每個(gè)元素是整型

5.為了定義三個(gè)整型數(shù)組al,a2,a3,下面聲明正確的語(yǔ)句是(B).

A)intArray[]al,a2;inta3[]={1,2,3,4,5};

B)int[]al,a2;inta3[]={1,2,3,4,5};

C)intal,a2[];inta3={1,2,3,4,5):

D)int[]al,a2;inta3=(l,2,3,4,5);

6.設(shè)i,j為int型變量名,a為int型數(shù)組名,以下選項(xiàng)中,正確的賦值語(yǔ)句是(B).

A)i=i+2B)a[0]=7;C)i++——j;D)a(0)=66;

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

其中0WkW3,則對(duì)x數(shù)組元素錯(cuò)誤的引用是(C).

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

8.設(shè)有定義int[]a=newint[4]a的所有數(shù)組元素是(B).

A)aO,al,a2,a3B)a[0],a[l],a[2],a[3]

Oa[l],a[2],a[2],a[4]D)a[0],a[l],a[2],a[3],a[4]

9.設(shè)有整型數(shù)組的定義:inta[]=newint[8]則a.length的值為.(8)

10.定義數(shù)組,需要完成以下三個(gè)步驟,即:,—和.(聲明數(shù)組;創(chuàng)建

數(shù)組空間;初始化)

11.在Java語(yǔ)言中,所有的數(shù)組都有一個(gè)屬性,這個(gè)屬性存儲(chǔ)了該數(shù)組的元素的

個(gè)數(shù)(數(shù)組長(zhǎng)度).(length)

12.若有定義int[]a=newint[8];則a的數(shù)組元素中第7個(gè)元素和第8個(gè)元素的下標(biāo)分

別是一和—.(67)

13.定義一個(gè)整型數(shù)組y,它有5個(gè)元素分別是1,2,3,4,5.用一個(gè)語(yǔ)句實(shí)現(xiàn)對(duì)數(shù)組y的聲明,

創(chuàng)建和賦值:;.

(inty[]={l,2,3,4,5);)

14.數(shù)組一定占用連續(xù)的內(nèi)存空間嗎(是)

15.下面是一個(gè)類的定義,請(qǐng)將其補(bǔ)充完整.(classstatic)

___________A

{Strings;

inta=666;

A(Stringsi){s=sl;}

staticintgeta(){returna;}

)

22.閱讀程序,回答問(wèn)題.

publicclassTest52

(

Stringstaticstrl="Hello,Javaworld!\t”;

Stringstaticstr2="Hello,students!

publicstaticvoidmain(Stringargs口)

{System,out.print(strl);System,out.println(str2);}

問(wèn)題:1)這是哪種形式的java程序(java應(yīng)用程序)

2)程序的輸出是什么輸出的結(jié)果在Applet窗口中嗎

(Hello,Javaworld!Hello,students!不在)

練習(xí)十(繼承:類,屬性和方法的繼承,屬性隱藏和方法覆蓋,構(gòu)造函數(shù)的繼承,父類對(duì)象和

子類對(duì)象的關(guān)系)

1.Java語(yǔ)言的類間的繼承關(guān)系是(B).

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

2.以下關(guān)于Java語(yǔ)言繼承的說(shuō)法正確的是(C).

A)Java中的類可以有多個(gè)直接父類B)抽象類不能有子類

Ojava中的接口支持多繼承D)最終類可以作為其它類的父類

3.下面是有關(guān)子類繼承父類構(gòu)造函數(shù)的描述,其中正確的是(B).

A)如果子類沒(méi)有定義構(gòu)造函數(shù),則子類無(wú)構(gòu)造函數(shù)

B)子類構(gòu)造函數(shù)必須通過(guò)super關(guān)鍵字調(diào)用父類的構(gòu)造函數(shù)

C)子類必須通過(guò)this關(guān)鍵字調(diào)用父類的構(gòu)造函數(shù)

D)子類無(wú)法繼承父類的構(gòu)造函數(shù)

4.現(xiàn)有兩個(gè)類A,B,以下描述中表示B繼承自A的是(D).

A)classAextendsBB)classBimplementsA

C)classAimplementsBD)classBextendsA

5.子類可以繼承父類的成員(非私有).構(gòu)造函數(shù)也能被繼承和重載.

6.如果子類中的某個(gè)變量的變量名與它的父類中的某個(gè)變量完全一樣,則稱子類中的這個(gè)

變量________了父類的同名變量.(隱藏)

8.如果子類中的某個(gè)方法的名字,返回值類型和與它的父類中的某個(gè)方法完全一

樣,則稱子類中的這個(gè)方法覆蓋了父類的同名方法.(參數(shù)列表)

9.抽象,封裝和多態(tài)是Java語(yǔ)言的四大特性.(繼承)

11.Java僅支持類間的_重繼承.(單重)

12.子類的成員變量能與其父類的成員變量同名嗎(能)

13.什么是方法覆蓋(子類重新定義繼承自父類的同名方法,使之實(shí)現(xiàn)與父類方法不同的功

能;方法覆蓋要求子類方法頭定義必須與父類方法頭定義完全一樣.)

14.一個(gè)子類可以重新定義從父類那里繼承來(lái)的同名方法.但是,允許它們有不同類型的返

回值嗎(不能)

15.子類對(duì)象如何引用被它隱藏了的父類的屬性和調(diào)用被它覆蓋了的父類的方法(使用

super關(guān)鍵字做前綴)

16.子類的對(duì)象能直接向其父類對(duì)象賦值嗎反之呢子類對(duì)象一定是父類的對(duì)象嗎(能;不

能;是:)

18.java中,一個(gè)子類可以有多個(gè)父類嗎可以為一個(gè)(父)類定義多個(gè)子類嗎(不能;可以)

19.保留字this代表什么(this表示類當(dāng)前對(duì)象本身)

21.下面是一個(gè)類的定義,完成程序填空.(Youwritethis.x=x;)

publicclassYouwrite

intx;

(){x=0;}

Youwrite(intx)

}

22.現(xiàn)有類說(shuō)明如下,請(qǐng)回答問(wèn)題:

publicclassA

Stringstrl=,/Hello!\t〃;

Stringstr2=〃Howareyou〃;

publicStringtoString()

{returnstrl+str2;}

)

publicclassBextendsA

(

Stringstrl=〃\b\b,Bill.〃;

publicStringtoString()

{returnsuper,strl+strl;}

)

問(wèn)題:

1)類A和類B是什么關(guān)系(繼承關(guān)系)

2)類A和類B都定義了strl屬性和方法toString(),這種現(xiàn)象分別稱為什么(屬性的隱

藏;方法的覆蓋)

3)若a是類A的對(duì)象,則a.toString()的返回值是什么

(Hello!Howareyou)

4)若b是類B的對(duì)象,則b.toString()的返回值是什么(Hello,Bill.)

23.現(xiàn)有一個(gè)類定義如下,請(qǐng)回答問(wèn)題:

classEmployee

(

Stringname;

intage;

doublewage;

staticintNo=0;

Employee(Stringal,inta2,doublea3)

(

name=al;age=a2;wage=a3;

No++;

)

}

在使用該類時(shí),已使用下面語(yǔ)句生成了該類的對(duì)象:

Employeeel,e2;

el=newEmployee("王勁〃,26,6300);

e2=newEmployee(〃張山〃,30,3800);

問(wèn)題:

l)e2.name,e2.age,e2.wage的值各是什么(張山;30;3800.0)

2)生成對(duì)象el,62后,el.No值為多少能否通過(guò)類名做前綴引用屬性No(2;能)

25.閱讀程序,回答問(wèn)題.

publicclassInheritTestl

publicstaticvoidmain(String[]args)

Aaa;Bbb;

aa=newA();bb=newB();

aa.show();bb.show();

})

classA

(

inta=l;

doubled=2.0;

voidshow()

{System,out.printin(""ClassA:〃+〃\ta=〃+a+〃\td=〃+d);}

)

classBextendsA

(

floata=3.Of;

Stringd二〃Javaprogram./z;

intb=4;

voidshow()

(

System,out.printin(""ClassA:"+〃\ta=〃+super.a+“\td="+super.d);

super.show();

System,out.printin(""ClassB:"+〃\ta=〃+a+“\td="+d+〃\tb=〃+b);

})

問(wèn)題:1)這是哪一類java程序(java應(yīng)用程序)

2)類A和類B是什么關(guān)系(類B是類A的子類)

3)按程序輸出的格式寫出程序運(yùn)行后的結(jié)果.

(程序運(yùn)行結(jié)果如下:

ClassA:a=ld=2.0

ClassA:a=ld=2.0

ClassA:a=ld=2.0

ClassB:a=3.0d=Javaprogram.b=4)

26.現(xiàn)有類說(shuō)明如下,請(qǐng)回答問(wèn)題:

classA

(

intx=10;

intgetA(){returnx;}

)

classBextendsA

{

intx=100;

intgetB(){returnx;)

)

問(wèn)題:1)類B是否能繼承類A的屬性x(能)

2)若b是類B的對(duì)象,則b.getBO的返回值是什么(100)

3)若b是類B的對(duì)象,則b.getAO的返回值是什么(10)

4)類A和類B都定義了x屬性,這種現(xiàn)象稱為什么

(屬性的隱藏)

27.有如下源程序,請(qǐng)回答問(wèn)題:

classA

{Strings="classA〃;}

classBextendsA

{Strings="classB〃;)

publicclassTypeConvert

(

publicstaticvoidmain(Stringargs[])

(

Bbl,b2=newB();

Aa1,a2;

al=(A)b2;

a2=b2;

System,out.println(al.s);

System,out.printin(a2.s);

bl=(B)al;

System,out.printin(bl.s);

System,out.printin(b2.s);

})

問(wèn)題:該程序的四行輸出各是什么

(classA

classA

classB

classB)

28.現(xiàn)有類說(shuō)明如下,請(qǐng)回答問(wèn)題:

publicclassA

{

intx=888;

Stringstr=,,Ilike:〃;

publicStringtoString()

{returnstr+x;}

)

publicclassBextendsA

(

Stringx="java";

publicStringtoString()

{returnstr+x+〃and〃+super.x;}}

問(wèn)題:1)類A和類B是什么關(guān)系(類B是類A的子類)

2)類A和類B都定義了方法toString(),這種現(xiàn)象稱為什么(方法的覆蓋)

3)若a是類A的對(duì)象,則a.toString()的返回值是什么(Ilike:888)

4)若b是類B的對(duì)象,則b.toString()的返回值是什么

Ilike:javaand888

29下面的是關(guān)于類及其修飾符的一些描述,不正確的是:(b)o

A、abstract類只能用來(lái)派生子類,不能用來(lái)創(chuàng)建abstract類的對(duì)象。

B、final類不但可以用來(lái)派生子類,也可以用來(lái)創(chuàng)建final類的對(duì)象。

C^abstract不能與final同時(shí)修飾一個(gè)類。

D、abstract方法必須在abstract類中聲明,但abstract類定義中可以沒(méi)

有abstract方法。

30.設(shè)有下面兩個(gè)賦值語(yǔ)句:

a二Integer,parselnt(^1024^);

b=Integer.valueOf(^1024,?).intValue();

下述說(shuō)法正確的是(d)o

A、a是整數(shù)類型變量,b是整數(shù)類對(duì)象。

B、a是整數(shù)類對(duì)象,b是整數(shù)類型變量。

C、a和b都是整數(shù)類對(duì)象并且它們的值相等。

D、a和b都是整數(shù)類型變量并且它們的值相等。

31.classX{

Yb=newY();

X()(

System,out.print(〃X〃);

)

)

classY{

Y(){

System,out.print(〃Y〃);

)

publicclassZextendsX{

Yy=newY();

z(){

System,out.print(〃Z〃);

)

publicstaticvoidmain(String[]args){

newZ();

})

A.Z

B.YZ

C.XYZ

D.YXYZ

答案D

32.6.關(guān)于實(shí)例方法和類方法,以下描述正確的是:(D)

A.實(shí)例方法只能訪問(wèn)實(shí)例變量

B.類方法既可以訪問(wèn)類變量,也可以訪問(wèn)實(shí)例變量

C.類方法只能通過(guò)類名來(lái)調(diào)用

D.實(shí)例方法只能通過(guò)對(duì)象來(lái)調(diào)用

33.下列關(guān)于繼承的說(shuō)法哪個(gè)是正確的?B

A.子類只繼承父類public方法和屬性;

B.子類繼承父類的非私有屬性和方法;

C.子類只繼承父類的方法,而不繼承父類的屬性;’

D.子類將繼承父類的所有的屬性和方法。

34.你想要增加一個(gè)功能給wait。方法。你將如何來(lái)做?d

a.重載wait。方法。

b.覆蓋wait。方法。

c.不能增加功能,因?yàn)樗荗bject類的成員,而Object類是所有類的基類。

d.不能增加任何功能,因?yàn)閣ait。已經(jīng)被最終定義。

練習(xí)十一(多態(tài):抽象類和抽象方法,最終類和最終方法,接口)

1.下列選項(xiàng)中,用于定義接口的關(guān)鍵字是(A).

A)interfaceB)implementsC)abstractD)class

2.下列選項(xiàng)中,用于實(shí)現(xiàn)接口的關(guān)鍵字是(B).

A)interfaceB)implementsC)abstractD)class

3.抽象方法只有方法頭,沒(méi)有.(方法體)

4.Java語(yǔ)言的接口是特殊的類,其中包含____常量和方法.(static(靜態(tài));

abstract(抽象))

5.接口中所有屬性均為,和的.(public,static,final)

6.用那個(gè)關(guān)鍵字定義抽象類和抽象方法(abstract)

7.抽象類只能做為父類嗎(也可以包含抽象方法,做為抽象子類)

8.可以定義抽象類的對(duì)象嗎(不能)

9.抽象方法能被繼承嗎(能)

10.抽象方法只能存在于抽象類中嗎(是;也可以存在在接口中)

11.聲明為final的方法能在子類中重新定義嗎(不能)

12用那個(gè)關(guān)鍵字定義最終類和最終方法(final)

13.最終類能做為父類嗎(不能)

14.最終方法能被繼承嗎(不能)

15.最終方法只能存在于最終類中嗎(不一定)

16.聲明為static和private的方法是final的嗎(不是)

17.接口中所有方法均為抽象方法嗎(是)

18.接口中所有方法均為public的嗎(是)

19.abstract和final能同時(shí)修飾一個(gè)類嗎(不能)

20.下面是定義一個(gè)接口ITF的程序,完成程序填空.

(interfaceabstract)

publicITF

publicstaticfinaldoublePI=Math.PI;

public______doublearea(doublea,doubleb);

21.下面是定義一個(gè)接口A的程序,完成程序填空.(final)

publicinterfaceA

publicstaticdoublePI=3.14159;

publicabstractdoublearea(doublea,doubleb)

}

22.在使用interface聲明一個(gè)接口時(shí),只可以使用(d)修飾符修飾該接口。

A、privateB、protected

C、privateprotectedD、public

23.關(guān)于接口的定義和實(shí)現(xiàn),以下描述正確的是:(A)

A.接口定義中的方法都只有定義沒(méi)有實(shí)現(xiàn)

B.接口定義中的變量都必須寫明final和static

C.如果一個(gè)接口由多個(gè)類來(lái)實(shí)現(xiàn),則這些類在實(shí)現(xiàn)該接口中的方法時(shí)應(yīng)采用統(tǒng)一的代

D.如果一個(gè)類實(shí)現(xiàn)一個(gè)接口,則必須實(shí)現(xiàn)該接口中的所有方法,但方法未必聲明為

public.

24.下列關(guān)于抽象類的說(shuō)法四個(gè)是正確的?C

A.某個(gè)抽象類的父類是抽象類,則這個(gè)子類必須重載父類的所有抽象方法;

B.接口和抽象類是同一回事;

C.絕對(duì)不能用抽象類去創(chuàng)建對(duì)象;

D.抽象類中不可以有非抽象方法。

練習(xí)十二(異常處理)

1、異常是一種運(yùn)行時(shí)錯(cuò)誤,在java中,異常是以對(duì)象的方法表示的,任何異常對(duì)象都是

類或其子類的對(duì)象。(Throwable)

2、java把它能夠識(shí)別的異常分為兩大類:檢查的和非檢查的異常。非檢查的異常是Error

類和類的實(shí)例,它代表程序不必處理嚴(yán)重系統(tǒng)錯(cuò)誤;檢查異常是

—類的子類,它代表程序應(yīng)該而且能夠處理的錯(cuò)誤。(RuntimeException>

Exception)

3、Java的異常處理模型以3種操作為基礎(chǔ):聲明異常、拋出異常和捕捉異常.當(dāng)程序語(yǔ)句

導(dǎo)致錯(cuò)誤時(shí),包含語(yǔ)句的方法將創(chuàng)建異常對(duì)象并把它傳遞到系統(tǒng),這個(gè)過(guò)程稱為

,查找異常處理程序的過(guò)程稱為捕捉異常。(拋出異常)

4>java中的異常處理通過(guò)5個(gè)關(guān)鍵字來(lái)實(shí)現(xiàn):它們是try、catch、throw、throws和finally。

進(jìn)行異常監(jiān)測(cè)的代碼要放在try子句內(nèi):捕獲異常需要使用子句:在方法中

宣布可能產(chǎn)生的異常應(yīng)使用關(guān)鍵字。(catch、throws)

5、下列說(shuō)法正確的是(D)

A.try-catch-finally代碼塊中的finally子句只有在try子句和catch子句都執(zhí)行執(zhí)行

之后才執(zhí)行

B.如果try代碼塊中出現(xiàn)了異常并被catch子句捕捉到,那么finally子句就不再執(zhí)行了

C.只有try代碼塊中沒(méi)有出現(xiàn)異常時(shí),finally子句才會(huì)執(zhí)行

D.不管try代碼塊中是否出現(xiàn)異常,或者catch子句是否捕捉到異常,finally子句都將

被執(zhí)行

6、關(guān)于異常的應(yīng)用,下列說(shuō)法恰當(dāng)?shù)氖牵˙)

A.在java中,使用異常很方便、很有效,因而,只要能使用異常的地方應(yīng)盡量使用異常

B.在程序中過(guò)多的使用異常,會(huì)使程序的執(zhí)行效率降低

C.異常產(chǎn)生后,我們只需捕獲它,至于是否對(duì)異常給與處理,無(wú)所謂

D.Java中的異常全部都被預(yù)先定義好了,程序員無(wú)需自行定義異常類

7、關(guān)于異常的捕獲和處理,下列說(shuō)法不正確的是(D)

A.與一個(gè)try相關(guān)的catch語(yǔ)句可以有多個(gè),但一個(gè)catch子句只能捕獲一種類型的異常

B.由內(nèi)部try代碼塊產(chǎn)生的異常如果沒(méi)有被與該try代碼塊相關(guān)的catch捕獲,或者被

JVM捕獲和處理

C.捕獲資料異常的catch子句必須出現(xiàn)在捕獲超類異常的catch子句的前面

D.在一個(gè)try子句中產(chǎn)生的異常,必須由該try子句相關(guān)的catch子句捕獲和處理,否則,

就會(huì)造成程序非正常終止。

8、當(dāng)方法遇到異常又不知如何處理時(shí),下列C做法是正確的。

A、捕獲異常B、拋出異常C、聲明異常D、嵌套異常

9、下列常見(jiàn)的系統(tǒng)定義的異常中,哪個(gè)是數(shù)組越界異常?a

A)ArrayIndexOutOfBoundsException

B)lOException

C)NullPointerException

D)ArithmeticException

10.publicclassThrowsDemo{

staticvoidthrowMethod(){

System,out.printin("InsidethrowMethod.");

thrownewIllegalAccessException(z/demo/z);

)

publicstaticvoidmain(Stringargs[]){

try(

throwMethod();

}catch(IllegalAccessExceptione){

System,out.printin(Z/Caught"+e);

)

)

}

A.編譯錯(cuò)B.運(yùn)行錯(cuò)C.編譯成功,但是沒(méi)有輸出結(jié)果D.以上都不是

答案:A

11.如果一個(gè)程序段中有多個(gè)catch,則程序會(huì)按如下哪種情況執(zhí)行?C

A找到適合的例外類型后繼續(xù)執(zhí)行后面的catch.

B找到每個(gè)符合條件的catch都執(zhí)行一次。

C找到適合的例外類型后就不再執(zhí)行后面的catcho

D對(duì)每個(gè)catch都執(zhí)行一次。

12.下列代碼行在執(zhí)行時(shí)會(huì)出現(xiàn)一個(gè)運(yùn)行時(shí)錯(cuò)誤ArrayOutOfBoundsException,同時(shí)程序的

執(zhí)行終止。

cstObjects[ctr].displayDetails();

要避免上面提到的運(yùn)行時(shí)錯(cuò)誤你應(yīng)該采取下列哪一個(gè)行動(dòng)?d

a.在finally塊中寫入代碼。

b.使用throw聲明來(lái)發(fā)出異常警報(bào)ArrayOutOfBoundsException并且在catch塊中捕獲

一個(gè)異常。

c.在try塊中寫入代碼并且在finally塊中捕獲異常ArrayOutofBoundsExceptiono

d.在try塊中寫入代碼并且在catch塊中捕獲異常ArrayOutofBoundsExceptiono

練習(xí)十三(雜)

一、選擇題。

2.main方法是JavaApplication程序執(zhí)行的入口點(diǎn),關(guān)于main方法的方法頭以下

哪項(xiàng)是合法的()?

A、publicstaticvoidmain()

publicstaticvoidmain(Stringargs[])

C>publicstaticintmain(String[]arg)

D、publicvoidmain(Stringarg[])

答:B

3.為AB類的一個(gè)無(wú)形式參數(shù)無(wú)返回值的

溫馨提示

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