最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

JAVA練習(xí)題及答案

2021-02-14 10:08 作者:朝顏晚扶桑  | 我要投稿

第1章java語言概述習(xí)題

一、填空題

?1、面向?qū)ο蟪绦虻闹饕卣鳎豪^承,__封裝___,___多態(tài) _____。

?2、java中的繼承機(jī)制之所以能夠降低程序的復(fù)雜性,提高程序的效率,主要是 ?因?yàn)樗勾a可以__重用或復(fù)用___.

?3、java語言中,為將源代碼翻譯成 __字節(jié)碼__文件時(shí)產(chǎn)生的錯(cuò)誤稱為編譯錯(cuò)誤,而將程序在運(yùn)行中產(chǎn)生的錯(cuò)誤稱為運(yùn)行錯(cuò)誤。

?4、javac是java語言中的編譯器,基本語法是:javac[選項(xiàng)] __文件名__,java是java語言中的解釋執(zhí)行器,基本語法是:java[選項(xiàng)]___類名___.

?5、java語言的主要貢獻(xiàn)者是誰 James gosling???????????

二、單選題

1、編譯Java Application 源程序文件將產(chǎn)生相應(yīng)的字節(jié)碼文件,這些字節(jié)碼文件的擴(kuò)展名為( B)。

?A、java ??B、.class ??C、html ?D、.exe

2、main方法是Java ?Application程序執(zhí)行的入口點(diǎn),關(guān)于main方法的方法首部,

以下(B)項(xiàng)是合法的。

A、public ?static void ?main()

?B、public static void main(String ?args[]) ?

C、public static int main(String[] arg)

?D、public void main(String ?arg[])

三、判斷

1、Java語言具有較好的安全性和可移植性及與平臺(tái)無關(guān)等特性?!?/p>

2、Java語言的源程序不是編譯型的,而是編譯解釋型的?!?/p>

四、問答題

1、編寫、運(yùn)行java程序需要經(jīng)過哪些主要步驟?

答:1.編寫源文件,擴(kuò)展名必須是.java

2.編寫java源程序,使用java編譯器編寫源文件,得到字節(jié)碼文件

3.運(yùn)行java程序,使用javaSE平臺(tái)只不過的java解釋器來解釋執(zhí)行字節(jié)碼文件。

?

2、閱讀下列java源代碼文件,并回答問題

public?class?Speak{

void?speakHello(){ ????????

System.out.println("I'm glad to meet you"); ???

}

?}

?class?Xiti8{ ??????

????public?static?void?main(String args[]){ ????

???? Speak sp=new?Speak(); ??????

???? sp.speakHello(); ??

}

}

(1)上述源文件的名字是什么?Speak.java

?(2)上述源文件編譯后生成幾個(gè)字節(jié)碼文件,這些字節(jié)碼文件的名字分別是什么?Speak.class Xiti8.class

第2章(1)基本數(shù)據(jù)類型練習(xí)題

一、填空題

1、java基本數(shù)據(jù)類型中整型,字符型分別占用字節(jié)數(shù)為___4___,___2____.

?2、java語言中的浮點(diǎn)數(shù)根據(jù)數(shù)據(jù)存儲(chǔ)長度和數(shù)值精度的不同,進(jìn)一步分為_ ?float__和__double__兩種具體類型。

3、Java中的浮點(diǎn)類型有兩類,分別是float和double類型,其中float取7___位有 ?效數(shù)據(jù),double取_15__位有效數(shù)據(jù)。

4、布爾類型常量只有兩個(gè)__true___和__false____,其中前者表示邏輯真,后者表示邏輯假。

5、浮點(diǎn)型常量又稱實(shí)型常量,用于表示有小數(shù)部分的十進(jìn)制數(shù),它有兩種表示形式:__小數(shù)形式____和__指數(shù)形式______。

6、java語言中的各種數(shù)據(jù)類型之間提供自動(dòng)轉(zhuǎn)換,如第一種操作數(shù)為byte,而第二種操作數(shù)為float,則其結(jié)果是__float___類型。

7、java語言的各種數(shù)據(jù)類型之間提供兩種轉(zhuǎn)換,分別是__自動(dòng)轉(zhuǎn)換__和_強(qiáng)制轉(zhuǎn)換____。

8、開發(fā)與運(yùn)行Java程序需要經(jīng)過的三個(gè)主要步驟為 ??編寫源程序?????、編譯生成字節(jié)碼文件 ??和 ?解釋運(yùn)行字節(jié)碼文件 ???????。

9、Java程序中的單行注釋符是(// ???),多行注釋符是( /* */ ?)。

10、Java中布爾類型的常量有兩種,它們是( true??)和(false)。

11、Java中用于定義小數(shù)的關(guān)鍵字有兩個(gè):( ?float?) 和 (?double ?),后者精度高于前者。

二、多選

1、下面有關(guān)char類型數(shù)據(jù)的定義中,正確得是_BE_______?

?A. char ch = “a”; ???B. char ch = ‘\’ ‘;

?C. char ch = ‘cafe’; ?D. char ch = “cafe”;

?E. char ch = ‘\ucafe’; F. char ch = ‘\u10100’; ?

G. char ch = (char) true;

三、判斷

1、Java語言使用的是Unicode字符集,每個(gè)字符在內(nèi)存中占8位。?×,16位

?2、Java語言中不同數(shù)據(jù)類型的長度是固定的,不隨機(jī)器硬件不同而改變?!?/p>

四、單選

1、以下哪個(gè)不是Java的基本數(shù)據(jù)類型( B)

A、int ?B、Boolean C、float ?D、char

2、如下哪個(gè)是Java中有效的關(guān)鍵字( ?c ?)

A、name ?B、hello ?C、false ??D、good?

第2章(2)數(shù)組練習(xí)題

一、填空題

1、當(dāng)聲明一個(gè)數(shù)組int arr[] = new int[5]; 時(shí),這代表這個(gè)數(shù)組所保存的變量類型是(int),數(shù)組名是(arr),數(shù)組的大小為(5),數(shù)組元素下標(biāo)的使用范圍是(0-4)。

二、多選

1、定義如下的二維數(shù)組b,下面的說法正確的是(ACD )。

?int b[][]={{1, 2, 3}, {4, 5},{6, 7, 8}}};

A)b.length的值是3。 ?B)b[1].length的值是3。

B)?C)b[1][1]的值是5。 ?D) 二維數(shù)組b的第一行有3個(gè)元素

三、單選

1、以下哪項(xiàng)是main方法的正確形參?( B)

?A、String args ??B、String ar[] ??C、Char arg ??D、StringBufferargs[]

2、有整型數(shù)組:int[] x={12,35,8,7,2};,則調(diào)用方法Arrays.sort(x)后,數(shù)組x中的元 ?素值依次是(A?).

A) 2 7 8 12 35 ?B) 12 35 8 7 2 ??C) 35 12 8 7 2 ?D) 8 7 12 35 2

?

3、應(yīng)用程序Test.java的源程序如下,在命令行鍵入:java Test aaa bb c,回車后輸出的結(jié)果是 (?A)。

?public class Test {

?public static void main(String args[]) {

?int k1=args.length;

?int k2=args[1].length();

System.out.print(k1+" "+k2);

?}

?}

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

4、關(guān)于下面代碼的說法(C)是正確的?

public class Example{ ?

??????public static void main(String[] args){

????????????????int[] arr= new int[10]; ?????????????? ? ? ? ?System.out.println(arr[1]);

???????}

}

A、編譯時(shí)產(chǎn)生錯(cuò)誤 ?

B、編譯時(shí)正確,運(yùn)行時(shí)將產(chǎn)生錯(cuò)誤 ??

C、輸出零 ??

D、輸出空(null)??

第3章(1)運(yùn)算符&表達(dá)式&if語句練習(xí)題

一、填空

1、Java中,除了_字符型____和___布爾型__外,其他的所有的基本數(shù)據(jù)類型都支持加,減,乘,除四則運(yùn)算。

?2、短路邏輯運(yùn)算符包括___&&___和___||___。

?3、Java提供了&,&&和|,||運(yùn)算符,除了一點(diǎn)外,&運(yùn)算符和&&運(yùn)算符在使用中 ?完全相同,|運(yùn)算符和||運(yùn)算符也相同。它們的不同點(diǎn)在于:__&__運(yùn)算符和___| ?運(yùn)算符中的兩個(gè)運(yùn)算對(duì)象都要運(yùn)算。

?4、順序執(zhí)行以下兩個(gè)語句的輸出結(jié)果是:__10_____。

String s=”我喜歡學(xué)習(xí)java!”;

System.out.println(s.length());

5、下面代碼定義了兩個(gè)整型變量和一個(gè)字節(jié)型變量,則將num1+num2的值賦給 ?num3變量的語句是______num3=(byte)(num1+num2)_______。

?int num1 = 53;

?int num2=47;

?byte num3;

6、下面代碼中,“Type”應(yīng)該換成什么類型__double______?

public class ReturnIt {

return?Type?methodA(byte?x, double?y) {

return?(long)x / y * 2;

}

}

?????????7、Java語言提供了兩條基本的分支選擇語句:_if___語句和switch____語句

?

?8、以下程序段的輸出結(jié)果為Message four

int?x=0,y=4, z=5;

if?( x>2){

if?(y<5){

System.out.println("Message one");

}

else?{

System.out.println("Message two");

}

}

else?if(z>5){

System.out.println("Message three");

}

else?{

System.out.println("Message four");

}?

二、單選

1、下面選項(xiàng)中,__D___的值與3*4的值相等?

A. 3/2 ??B. 3<2 ?C. 3*2^2 ??D. 3<<2

2、下面選項(xiàng)中,D_____的值與16/2^12的值相等?

?A. 16>4 ??B. 16/2 ??C. 16*4 ??D. 16>>2 ??E. 16>>>2

3、有以下方法的定義,請(qǐng)選擇該方法的返回類型(?D)。

ReturnType method(byte x, double y) {

return (short) x/y*2;

}

A、byte ??B、short ??C、int ??D、double ?

?

第3章(2)switch&循環(huán)語句練習(xí)題

一、填空題

1、設(shè)有數(shù)組定義:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 則執(zhí)行以下幾個(gè)語句后的輸出結(jié)果是 ????120 。

int s = 0 ;

?for (int i = 0 ; i < MyIntArray.length ; i + + )

?if ( i % 2 = = 1 )

s += MyIntArray[i] ;

System.out.println(s); //s=20+40+60

2、下面程序段的執(zhí)行結(jié)果是(?6 5 4 3 2 ??) ?

?int a[] = { 2, 3, 4, 5, 6 };

???for (int i = a.length - 1; i >= 0; i--)

????System.out.print(a[i] + ""); //從大到小排序

?3、以“java Sub 3”運(yùn)行以下程序的結(jié)果是:3th season?__。?

public class Sub{

public?static?void?main(String[] args) {

int?i=Integer.parseInt(args[0]);

switch(i) {

case?1: System.out.println("First season"); break;

case?2: System.out.println("Second season"); break;

case?3: System.out.println("3th season"); break;

case?4: System.out.println("Last season"); break;

}

}

}

?

?4.switch(X)中,X可以接受的類型有_byte____,____char___,short,int。

?5、以下程序段的輸出結(jié)果為

_value is two_

?value is three?______。

int j=2;

???switch ( j ) {

?case 2: System.out.print(“Value is two.”);

????????case 2+1 : System.out.println(“Value is three.”); break; ?default: System.out.println(“value is “+j); break;
??}

6.如果x=2;則下面程序執(zhí)行后的結(jié)果是_34_____?

? switch (x) {

case 1: System.out.println(1);

? ?case 2: case 3: System.out.print(3);

case 4: System.out.println(4);

}

7、下面代碼執(zhí)行結(jié)束后l和j的值分別是___5,6___?

public static void main(String[] args) {

?int j=10;

?int l=1;

?do{

if(l++>--j) continue;

?}while(l<5);

?}

8、下面程序序的運(yùn)行結(jié)果為( 20

?class test{

public static void main(String args[]){

?int sum=0;

for(int i=0;i<10;i++){

? if(i%2==0)

sum+=i;

?else continue;

?}

System.out.println(sum);

?}

} ?

二、單選

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

?int b[][]={{1}, {2,2}, {2,2,2}};

?int sum=0;

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

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

sum+=b[i][j]; } }

System.out.println("sum="+sum);

?A) 32 B)11?C) 2 D) 3

2、應(yīng)用程序的main方法中有以下語句,則執(zhí)行后輸出的結(jié)果是 (D)? ? ?int[] x={125,21,5,168,98};

?int max=x[0];

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

?if(x[i]> max) max =x[i];

?}

?System.out.println(max);

A) 125 B) 5 C) 98 D) 168?

第4章(1)類和對(duì)象練習(xí)題

一、填空

?1、面向?qū)ο蟪绦虻闹饕卣鳎豪^承,____封裝___________,___多態(tài)___________。

?2、____構(gòu)造方法_是類中的一種特殊方法,用來定義對(duì)象的初始狀態(tài)。

?3、構(gòu)造方法在__創(chuàng)建對(duì)象__時(shí)被調(diào)用。

?4、系統(tǒng)類Math的random()方法可用來產(chǎn)生0-1.0之間的實(shí)數(shù),則產(chǎn)生一個(gè)50

-100之間的整數(shù)的程序語句是_(int)Math.random()*50+50______。

?5、下面代碼執(zhí)行結(jié)束之后,打印出來的結(jié)果是__4____?

public class Happy {

?public?static?void?main(String args[]) {

?int?i=4; int?j=2; methodA(i,j);

?}

?System.out.println(i);

?}

static?public?void?methodA(int?i,int?j) {

i<<=j;

}

}?

☆6、在java語言中,有一個(gè)類是所有類和接口的父類,這個(gè)類的名稱是java.lang.Object(Object)_____。

7、構(gòu)造方法在__創(chuàng)建對(duì)象__時(shí)被調(diào)用。

?8、java運(yùn)行系統(tǒng)通過垃圾回收機(jī)制/GC____周期性的釋放無用對(duì)象所占用的內(nèi)存,以完成對(duì)象的消除。

?9、閱讀以下程序,輸出結(jié)果為_1.23___。

? class Q1{

public?static?void?main(String args[ ]){ ?

double?d=1.23; ?

Dec dec=new?Dec( ); ?

dec.decrement(d);

System.out.println(d); ?

}

? }

?class?Dec{ ?

?public?void?decrement(double?decMe){

?decMe = decMe -0.1;

?}

}

?10、閱讀程序

public class Test{

?int?x=12; public?void?method1(int?x){

?x+=x;

? ?System.out.println(x);

? }

}

如果有如下的代碼段:

??Test t=new Test();

? ??t.method1(5);

程序執(zhí)行到這個(gè)地方,代碼輸出結(jié)果是__10___?

11、定義在類中的變量為_成員變量___,它不需要進(jìn)行顯式的初始化,定義在方法中的變量為__局部變量__,它需要進(jìn)行顯式的初始化。

?12、面向?qū)ο蟮哪P椭?,最基本的概念是__類_和_對(duì)象__

二、多選題

13、下面選項(xiàng)中,__AC_______是合法的構(gòu)造方法的重載?//無返回值??

public class ConstOver { ?

? public ConstOver (int x, int y, int z) { } ?

}

?A. ConstOver ( ) { }

?B. Protected int?ConstOver ( ) { }

?C. Private ConstOver (int z, int y, byte x) { }

?D. Public Object?ConstOver (int x, int y, int z) { }

?E. Public void?ConstOver (byte x, bytey, byte z) { }

14、下面說法中___AC___是對(duì)方法setVar()重載的方法。 ?

public class MethodOver {

public void setVar (int a, int b, float c) { } ?

}

?A. Private void setVar (int a, float c, int b) { }

?B. Protected void setVar (int a, int b, float c) { }

?C. Public int setVar (int a, float c, int b) {return a;}

?D. Public int setVar (int a, int b, float c) {return a;}

?E. Protected float setVar (int a, int b, float c) {return c;}


第4章(2)可變參數(shù),static與this練習(xí)題

一、填空題

1、在下面程序劃線處填入適當(dāng)?shù)膬?nèi)容。

?class MyClass{

??static int var=100;

____static

?public static___

int getVar() { return var;

}

}

2、以下程序段的輸出結(jié)果為int version______ 。

?class Cruncher{ void crunch( int i ){

System.out.println(“int version”);

??????????}

void crunch(String s){

?System.out.println(“String version”);

}

public static void main(String args[ ]){

Cruncher crun=new Cruncher ( );

char ch=’p’;

?crun.crunch(ch);

? }

}

3、以下程序段的輸出結(jié)果為 _Integer String____。

?class IntORString{ void iosM( int i ){

System.out.print(“Integer ”);

?}

?? ?void iosM(String s){

System.out.print(“String ”);

?}

?public static void main(String args[ ])

{

IntORString ios=new IntORString ( );

ios.iosM(‘a(chǎn)’);

ios.iosM(“1”);

?}

}

?4、如果有個(gè)類A,該類中有成員變量b和成員方法c(),則在創(chuàng)建該類得對(duì)象a ?后,對(duì)該對(duì)象的成員變量和成員方法的調(diào)用方式分別是a.b___,__a,c()__。

?5、以下代碼段創(chuàng)建了__2_個(gè)對(duì)象,聲明了_3____個(gè)變量。

? ?Thing item, stuff;

item = new Thing();

Thing entity = new Thing();

?

6、通過類MyClass中的不含參數(shù)的構(gòu)造函數(shù)象obj,可通過 ?以下語句實(shí)現(xiàn):_MyClass ?obj=new MyClass()________。

?7、下面____AD_____情況下,系統(tǒng)會(huì)為類A自動(dòng)產(chǎn)生構(gòu)造函數(shù)?

?A. class A { } ??B. class A { public A() {} }

?C. class A { public A(int x) {} } ?D. class Z {} class A extends Z { void A() {} }

8、請(qǐng)問構(gòu)造函數(shù)、成員變量初始化以及靜態(tài)成員變量初始化三者的先后順序是__靜態(tài)成員變量初始化,成員變量初始化,構(gòu)造函數(shù)_____。

?9、劃線處應(yīng)填的一句代碼:_?this (a) _______。

?public class Example{

?int x,y;

?public Example(int a){

?x = a;

?}

public Example(int a, int b){

_this (a) __________;//調(diào)用上面的一個(gè)參數(shù)的構(gòu)造方法

?y = b;

}

?}

10.關(guān)鍵字___final____表明一個(gè)對(duì)象或變量在初始化后不能被修改。

?11、類是對(duì)象的抽象,是屬性和操作的封裝體,其中屬性是事物靜態(tài)特征的抽象,在程序中用數(shù)據(jù)成員描述,操作是事物動(dòng)態(tài)特征的抽象,在程序中用成員方法描述。

?

第4章(3)包_訪問權(quán)限_基本數(shù)據(jù)類型封裝練習(xí)題

一、填空題

1、請(qǐng)?zhí)畛鲈趈ava.lang包中與下列基本數(shù)據(jù)類型相對(duì)應(yīng)的封裝類:

?float:java.lang.Float, char:_java.lang.Character________ , boolean:_java.lang.Boolean __________.

2、java中提供了四種訪問控制符,分別是:public__________,___protected________,_private________,____缺省(friendly)________

?3、以下程序段的輸出結(jié)果為 _true ,false_________。

public class EqualsMethod {

public static void main(String[] args) {

?Integer n1 = new Integer(47);

?Integer n2 = new Integer(47);

?System.out.print(n1= =n2);

?System.out.print(“,”);

?System.out.println(n1! =n2);

?}

}

4、在java中,將具有相同屬性的對(duì)象抽象成_類___。然后將它按照程序設(shè)計(jì)所需要的常用方法和接口封裝成__包_。

?5、創(chuàng)建一個(gè)名為 MyPackage 的包的語句是 package Mypackage ???,

該語句應(yīng)該放在程序的位置為:?放在程序的第一句 ?????????????????。

6、導(dǎo)入mypackage包中的所類的命令是 import mypackage.*;

二、單選題

1、不允許作為類及類成員的訪問控制符的是( C?)。

?????A. public ????B. private ?? C. static ?????????????D. protected

2、為AB類的一個(gè)無形式參數(shù)無返回值的方法method書寫方法頭,使得使用類名AB作為前綴就可以調(diào)用它,該方法頭的形式為( A ????)。

A. static void method( ) ???????????????????B. public void method( ) ????????C. final void method( ) ????????????????????D. abstract void method( )

?3、下列修飾符中與訪問控制無關(guān)的是( ??D???)

A.private ????B.Public ?C.protected ?D.final

4、void的含義:( ?A????)

A.方法沒有返回值 ??B.方法體為空 ?

C.沒有意義 ????????????D. 定義方法時(shí)必須使用

?5、關(guān)于對(duì)象成員占用內(nèi)存的說法哪個(gè)正確?( ??B???)

A.同一個(gè)類的對(duì)象共用同一段內(nèi)存

B、同一個(gè)類的對(duì)象使用不同的內(nèi)存段,但靜態(tài)成員共享相同的內(nèi)存空間

C.對(duì)象的方法不占用內(nèi)存

?D.以上都不對(duì)

6、定義一個(gè)類,必須使用的關(guān)鍵字是( ?B????)

? A、public ?B、class ?C、interface ?D、static?

第5章(1)繼承與多態(tài)練習(xí)題答案

一、選擇題

1、關(guān)于繼承的說法正確的是:( ?B ???)

?A、子類將繼承父類所有的屬性和方法。

?B、子類將繼承父類的非私有屬性和方法。

?C、子類只繼承父類public方法和屬性

D、子類只繼承父類的方法,而不繼承屬性

2、this和super:( ??B ??)

?A、都可以用在main()方法中

B、都是指一個(gè)內(nèi)存地址

?C、不能用在main()方法中

?D、意義相同

3、關(guān)于super的說法正確的是:( ??B ??)

?A、是指當(dāng)前對(duì)象的內(nèi)存地址

?B、是指當(dāng)前對(duì)象的父類對(duì)象的內(nèi)存地址

?C、是指當(dāng)前對(duì)象的父類

?D、可以用在main()方法中

4、覆蓋與重載的關(guān)系是 ( ???A?)

?A、覆蓋只有發(fā)生在父類與子類之間,而重載可以發(fā)生在同一個(gè)類中

?B.覆蓋方法可以不同名,而重載方法必須同名

?C.final修飾的方法可以被覆蓋,但不能被重載

D.覆蓋與重載是同一回事

?5、定義一個(gè)類,必須使用的關(guān)鍵字是( ?B ???)

A、public

? B、class

? ?C、interface

?? D、static

?6、如果有如下這樣一段代碼 ?

class A {

A() { } ?

} ?

class B extends A {

}

?請(qǐng)?jiān)谙旅骓?xiàng)中,正確的說法是:____________ B D

??A、類B的構(gòu)造函數(shù)的訪問權(quán)限是public

?B、類B的構(gòu)造函數(shù)沒有參數(shù)

?C、類B的構(gòu)造函數(shù)中包含this()方法的調(diào)用;

?D、類B的構(gòu)造函數(shù)中包含super()的調(diào)用

?7、下面(AD)情況下,系統(tǒng)會(huì)為類A自動(dòng)產(chǎn)生構(gòu)造函數(shù)?

?A. class A { }

?B.class A {

?public A() {} }

?C. class A {

?public A(int x) {} }

?D. class Z {}

?class A extends Z {

?void A() {} }

二、填空題

?1、java中提供了兩種用于多態(tài)的機(jī)制 重載,覆蓋.?

?2、this代表了當(dāng)前對(duì)象的引用,super表示的是當(dāng)前對(duì)象的父類?對(duì)象。

3、如果子類中覆蓋了父類中的同名方法,則在子類中調(diào)用父類中的同名方法是使用關(guān)鍵字super。

在一個(gè)類的內(nèi)部可以直接調(diào)用本類的對(duì)象,也可以使用關(guān)鍵字this來調(diào)用。

4.子類可以繼承父類的成員變量?和成員方法,但是不能繼承父類的構(gòu)造函數(shù)。

?5、下面代碼執(zhí)行后的結(jié)果是2

?class Super {

? public int i = 0;

? public Super(String text) { ?

i = 1;

?}

?}

?public class Sub extends Super {

public Sub(String text) { ??

? ?super(text); ?

? ?i = 2;

?} ?

public static void main(String args[]) { ?

?Sub sub = new Sub("Hello");

?System.out.println(sub.i);

}

}

6、如果在一個(gè)文件中有package,import以及class的定義,請(qǐng)給出三者在文件中的先后順序。package,import ,class .

7.父類的final方法可以被子類重寫嗎?答案:不可以

第5章(2)接口練習(xí)題答案

一、選擇題

1、定義一個(gè)接口必須使用的關(guān)鍵字是( ?C ???)

A、public ??B、class ?C、interface ?D、static??

2、抽象方法:( ??C ??)

A、可以有方法體

B、可以出現(xiàn)在非抽象類中

?C、是沒有方法體的方法

?D、抽象類中的方法都是抽象方法??

3、關(guān)于接口哪個(gè)正確?( A ???)

?A、實(shí)現(xiàn)一個(gè)接口必須實(shí)現(xiàn)接口的所有方法 ?B.一個(gè)類只能實(shí)現(xiàn)一個(gè)接口

C.接口間不能有繼承關(guān)系 ?D.接口和抽象類是同一回事

二、填空題

1、抽象方法是一種僅有方法頭,沒有具體方法體和操作實(shí)現(xiàn)的方法,該方法必須在抽象類之中定義。final方法是不能被當(dāng)前類的子類重新定義的方法。

2、在Java程序中,通過類的定義只能實(shí)現(xiàn)單重繼承,但通過接口的定義可以實(shí)現(xiàn)多重繼承關(guān)系。

3、接口由兩部分組成接口聲明以及接口體。 ?

4、接口可以看作是僅容納抽象法以及常量,而又不能直接生成對(duì)象的特殊類。??

5、用于將一個(gè)類修飾為最終類的關(guān)鍵字是final。用于聲明一個(gè)類為抽象類的關(guān)鍵字是abstract。??

6、abstract不能和final 共同修飾一個(gè)類。

7、 java中用extends 關(guān)鍵字指明繼承關(guān)系.用implements關(guān)鍵字指明對(duì)接口的實(shí)現(xiàn)。

8、如果Alpha類繼承Beta類,Alpha類被稱為子(基)類,Beta類被稱為父(超)類。 ?

9、子類可以繼承父類的成員變量 和成員方法,但是不能繼承父類的構(gòu)造函數(shù)。

?10、下面程序的輸出結(jié)果是:_?Art constructor , Drawing constructor , ?Cartoon constructor 。

class?Art {

Art() {

System.out.println("Art constructor");

}

}

class?Drawing extends?Art {

Drawing() {

super();

System.out.println("Drawing constructor");

}

}

class?Cartoon extends?Drawing {

Cartoon() {

super();

System.out.println("Cartoon constructor");

}

public?static?void?main(String[] args) {

Cartoon x?= new?Cartoon();

}

}

11、寫出以下程序的運(yùn)行結(jié)果__4 ____?

import?java.io.*;

public?class?ATest{

public?static?void?main(String args[]) {

SubClass sb = new?SubClass( );

System.out.println(sb.fun( ));

}

}

class?SuperClass{

int?a?=24 , b?=5 ;

}

class?SubClass extends?SuperClass{

int?fun( ) { return?a%b;}

}

三、多項(xiàng)選擇題 ?

1、與第2行等價(jià)的定義方式是_____。A B

1. public interface Foo {

2. int k = 4;

3. }

?A. final int k = 4;

?B. public int k = 4;

?C. abstract int k = 4;

?D. volatile int k = 4;

?E. protected int k = 4;

2、下面幾個(gè)方法中,_____可以放在接口(interface)中。A B?

?A.void methoda();

?B. public double methoda();

?C. public final double methoda();

?D. static void methoda(double d1);

?E. protected void methoda(double d1);

3、請(qǐng)問如下選項(xiàng)中,_____可以使得以上代碼編譯沒有錯(cuò)誤。E

?1. public abstract class Test {

?2. public abstract void methodA();

?3.

4.?public abstract void methodB()

???5. {

???6. System.out.println(“Hello”);

???7. }

8.?}

???A 給methodA加上方法體;

B 將第5-7行的代碼用“;”代替

C 將類Test前面的修飾符abstract去掉

?D 將方法methodA前面的修飾符abstract去掉

E 將方法methodB前面的修飾符abstract去掉

4、下面選項(xiàng)中,_____可以是合法的方法重寫的形式。BD?

?class BaseClass { ?

private float x = 0f; ?

protected float getVar() { return x; }

????????}

?class SubClass extends BaseClass {

? ? private float x = 0f;

?____________________ ?

}

??A. float getVar() { return x; }

B. public float getVar() { return x; }

C. public double getVar() { return x; }

D. protected float getVar() { return x; }

?E. public float getVar(float f) { return f; }

5、如果有如下這樣一段代碼

?class A { ??A() { } ?}

??class B extends A { ?}

?請(qǐng)?jiān)谙旅骓?xiàng)中,正確的說法是:B D?

??A.類B的構(gòu)造函數(shù)的訪問權(quán)限是public

??B、 類B的構(gòu)造函數(shù)沒有參數(shù)

??C、 類B的構(gòu)造函數(shù)中包含this()方法的調(diào)用;

??D、 類B的構(gòu)造函數(shù)中包含super()的調(diào)用

三、課后習(xí)題答案

3.什么類中可以有abstract方法?

?答案:abstract類。??

4.什么叫對(duì)象的上轉(zhuǎn)型對(duì)象?

答案:假設(shè)B類是A類子類或間接子類,當(dāng)我們用子類B創(chuàng)建一個(gè)對(duì)象,并把這個(gè)對(duì)象的引用放到A類的對(duì)象中時(shí),稱這個(gè)A類對(duì)象是子類對(duì)象的上轉(zhuǎn)型對(duì)象。父引用指向子對(duì)象。

5.什么叫接口的回調(diào)?

?答案:可以把實(shí)現(xiàn)某一接口的類創(chuàng)建的對(duì)象的引用賦給該接口聲明的接口變量中。那么該接口變量就可以調(diào)用被類實(shí)現(xiàn)的接口中的方法。

6.下列敘述哪些是正確的?AD ?

?A.?final類不可以有子類

?B. abstract類中只可以有abstract方法。

?C. abstract類中可以有非方法,但該方法不可以用final修飾。 D.?不可以同時(shí)用final和abstract修飾一個(gè)方法。

9.寫一個(gè)類A,該類創(chuàng)建的對(duì)象可以調(diào)用方法f輸出英文字母表,然后再編寫一個(gè)該類的子類B,要求子類B必須繼承A類的方法f(不允許重寫),子類創(chuàng)建的對(duì)象不僅可以調(diào)用方法f輸出英文字母表,而且可以調(diào)用子類新增的方法g輸出希臘字母表。

class A {

public final void f() {

char cStart = 'a', cEnd = 'z';

for (char c = cStart; c <= cEnd; c++) {

System.out.print(" " + c); ?

}

}

}

class B extends A {

public void g() {

char cStart = 'α', cEnd = 'ω';

for (char c = cStart; c <= cEnd; c++) {

System.out.print(" " + c);

}

}

}

public class Xiti9 {

public static void main(String args[]) {

B b = new B();

b.f();

b.g();

}

}

10.寫一個(gè)類,該類有一個(gè)方法public int f(int a,int b),該方法返回a和b的最大公約數(shù)。然后再編寫一個(gè)該類的子類,要求子類重寫方法f,而且重寫的方法將返回a和b的最小公倍數(shù);要求在重寫的方法體中首先調(diào)用被隱藏的方法返回a和b的最大公約數(shù)m,然后將乘積(a*b)/m返回;要求在應(yīng)用的程序的主類中分別使用父類和子類創(chuàng)建對(duì)象,并分別調(diào)用方法f計(jì)算兩個(gè)正整數(shù)的最大公約數(shù)和最小公倍數(shù)。

class A {

public int f(int a, int b) {

if (b < a) {

int temp = 0;

temp = a;

a = b;

b = temp;

}

int r = b % a; ??

while (r != 0) {

b = a;

a = r;

r = b % a;

} ?

return a;

}

}

class B extends A {

public int f(int a, int b) {

int division = super.f(a, b);

return (a * b) / division;

}

}

public class Xiti9 {

public static void main(String args[]) {

A a = new A();

B b = new B();

System.out.println("最大公約數(shù) :" + a.f(36, 24));

System.out.println("最小公倍數(shù) :" + b.f(36, 24));

}

}?

第6章內(nèi)部類與異常類練習(xí)題

一、填空題

1、Throwable類有兩個(gè)子類,分別是Error和Exception.

?2、所有異常的根類是Throwable類,throw關(guān)鍵字的作用是引發(fā)異常。?

3、try關(guān)鍵字負(fù)責(zé)定義處理異常的程序,再來由catch關(guān)鍵字來捕獲異常。

4、補(bǔ)足代碼;調(diào)用兩個(gè)函數(shù),要求用匿名內(nèi)部類

interface?Inter {

void?show(int?a,int?b);

void?func();

}

class?Demo {

public?static?void?main(String[] args) ?{ ?

Inter in=new?Inter(){

Void show(int a,int b){}

Void func(){}};

????in.show(4,5);

????in.func();

}

}

5.、下面程序的輸出結(jié)果是:BCD

class?Demo {

public?static?void?func() throws?Exception {

try{

throw?new?Exception();

???}

finally{

System.out.println("B");

}

}

public?static?void?main(String[] args){

try{

func();

System.out.println("A");

}

catch(Exception e){

System.out.println("C");

}

System.out.println("D");

}

}

6.在java中所有的異常類都繼承自java.lang.Throwable類,它有兩個(gè)直接子類,一個(gè)是Error類,另一個(gè)是Exception類。

7、Java語言中,可以用throw語句和throws語句拋出異常,其中throws語句的作用是用來改變程序的執(zhí)行流程,使程序跳到相應(yīng)的異常處理語句中執(zhí)行。throw語句把異常向上移交給調(diào)用這個(gè)方法的方法來處理。

8.下述代碼執(zhí)行后的結(jié)果是ACD

class?X?{

?public?static?void?main(String [] args) {

?try?{

?badMethod();

?System.out.print("A");

?}

?catch?(Exception ex) {

?System.out.print("B");

?}

?finally?{

?System.out.print("C");

?}

?System.out.print("D");

?}

?public?static?void?badMethod() {}

}

單選題:?

1、下面選項(xiàng)中,C不能用在throw語句中?

??A. Error ?B. RuntimeException

?C. Object ?D. Throwable ? ?E. Exception?

第9章String類練習(xí)題答案

一、填空

1、程序執(zhí)行后的顯示結(jié)果是abcdefabcDEF。?

public?class??Question {

?public?static?void?main (String args[]) {

?String s1 = "abc";

?String s2 = "def";

?String s3 = s1.concat(s2.toUpperCase());

?System.out.println(s1+s2+s3);

?}

}

2.

?String s1 = "ab";

?String s2 = "abcd";

?System.out.print("s1?"?+ (( s1== s2)? "=="?: "!=") + "?s2");

這個(gè)代碼段顯示的結(jié)果是s1 != s2?

3.下面程序段輸出結(jié)果的第一行是rtrme,第二行是r。

? ??String s="false()rtrme";

?String s2=s.substring(7);

?String s3=s2.replace('m','u');

?System.out.println(s2);

?System.out.println(s3.charAt(2));

?System.out.println(s3.toUpperCase());

第三行輸出結(jié)果為 RTRUE。

4.第5行的時(shí)候foo的值是baseball

String foo = "base";

foo.substring(0,3);

foo.concat("ket");//是返回 foo?+ "ket",但foo本身的值并不必變,

foo+="ball";//改成foo?= foo.concat("ket"),結(jié)果就是baseketballSystem.out.println(foo);

5、如下這段代碼執(zhí)行后,字符串s的值是hellothere

?? ??String s="hello";

?s.concat("mrs");

?s.toUpperCase();

?s+="there";

?System.out.println(s);

6.下面這段程序執(zhí)行后,屏幕上顯示的是:true。

public class Exam{

public?static?void?main(String[] args){

char?char1[]={'t','e','s','t'};

char?char2[]={'t','e','s','t','1'};

String s1=new?String(char1);

String s2=new?String(char2,0,4);//提取字符數(shù)組char2[],從索引 0開始,提取個(gè)數(shù)為4個(gè)。

System.out.println(s1.equals(s2));//s1與s2中的實(shí)體(即內(nèi)容)是否相同

}

}

7、請(qǐng)問執(zhí)行完這段代碼后,顯示結(jié)果是abcd? ?

String a = "ABCD";

String b = a.toLowerCase(); //將字符串a(chǎn)的值小寫

?b.replace('a', 'd');//不影響字符串b,因?yàn)椴⑽促x值給b

?b.replace('b', 'c');//不影響字符串b,因?yàn)椴⑽促x值給b

?System.out.println(b);

8、Java中,用來獲取字符串長度的函數(shù)是length(),用來取字符串子串的函數(shù)是substring()。

9、以下代碼段將創(chuàng)建1個(gè)對(duì)象。

String s1="bc";

String s2="bc";

10、有下面這樣的代碼段,總共產(chǎn)生了2個(gè)對(duì)象。

String A, B, C ;

?A = new?String( "1234"?) ;

?B = A ;

?C = A + B ;

11、有如下一段代碼:

?Integer s = new Integer(9);

Integer t = new Integer(9);

?Long u = new Long(9);

則下面選項(xiàng)中返回值為true的是:CE。

?A. (s==u)

?B. (s==t)

?C. (s.equals(t))

?D. (s.equals(9)) //有疑問,但輸出結(jié)果也為true.

?E. (s.equals(new Integer(9))

三、完成課后習(xí)題

課后習(xí)題1,3,5,6,7

1.下列敘述哪些是正確的?ABD

A.String類是final類,不可以有子類

B.String類在java.lang包中

C.abc==abc的值是false

D.abc.equals(abc)的值是true

3.請(qǐng)說出E類中的輸出結(jié)果為13?abc夏日

public?class?E {

public?static?void?main(String args[]){

byte?d[]="abc夏日的海灘".getBytes();

System.out.println(d.length);

String s=new?String(d,0,7);

System.out.println(s);

}

}

5.請(qǐng)說出E類中的輸出結(jié)果為9javaHello

public?class?E {

public?static?void?main(String args[]){

String regex="\\djava\\w{1,}";

String str1="88javaookk";

String str2="9javaHello";

if(str1.matches(regex)){

System.out.println(str1);

}

if(str2.matches(regex)){

System.out.println(str2);

}

}

}

6.字符串調(diào)用public.String.toUpperCase()方法返回一個(gè)字符串,該字符串把當(dāng)前字符串中的小寫字母變成大寫字母;字符串調(diào)用public.String.toLowerCase()方法返回一個(gè)字符串,該字符串把當(dāng)前字符串中的大寫字母變成小寫字母;String類的public.String.concat(String str)方法返回一個(gè)字符串,該字符串是把調(diào)用該方法的字符串與參數(shù)指定的字符串相連接。編寫一個(gè)程序,練習(xí)使用這3個(gè)方法。

public?class?E {

public?static?void?main(String args[]){

???????String s1,s2,s3,t1="ABCDabcd";

???????System.out.println("字符串原來是這個(gè)樣子: "+t1);

???????s1=t1.toUpperCase();

???????System.out.println("字符串中的小寫字母變成大寫是這個(gè)樣子: "+s1);

???????s2=t1.toLowerCase();

???????System.out.println("字符串中的大寫字母變成小寫是這個(gè)樣子: "+s2);

???????s3=s1.concat(s2);

???????System.out.println("大寫字符串連接小寫字符串是這個(gè)樣子: "+s3);

}

}

7.String類的public char charAt(int index)方法可以得到當(dāng)前字符串index位置上的一個(gè)字符。編寫程序,使用該方法得到一個(gè)字符串中的第一個(gè)和最后一個(gè)字符。

public class Xiti7 {

public?static?void?main(String args[ ]){

String ?s ="中華人民共和國";

????char?a=s.charAt(0);

????char?b=s.charAt(6);

????System.out.println("第一個(gè)字符: ?"+a);

????System.out.println("最后一個(gè)字符: ?"+b);

?}

}

第9章(2)實(shí)用常用類練習(xí)題答案

一、填空題

1、如果method()方法會(huì)拋出NullPointerException,則該代碼段執(zhí)行結(jié)束后b的值是______?1345?

StringBuffer b=new StringBuffer();

?try{

?b.append("1");

method();

b.append("2");

}catch(Exception a{

b.append("3");

?}

finally{

?b.append("4");

?}

b.append("5");

?2、String s1=”JAVA”;String s2=”java”; 則s1.equals(s2)的返回值是_____,s1.equalsIgnoreCase(s2)的返回值是_____。false true?

3、StringBuffer s1=new StringBuffer();StringBuffer s2=new StringBuffer(“Hello”); 則s1.capacity()的返回值是_____。s2.capacity()的返回值是____.16 ?21?

4、程序執(zhí)行后的輸出結(jié)果是:_____?

JavacJava public static void main(String a[]) {

StringBuffer s=new StringBuffer("Java"); ?

String c=new String("Java");

Hello(s,c);

?System.out.println(s+c);

}

public static Hello(StringBuffer s, String c) {

s.append("c");

c.repalce('a','d')

}

5、下列代碼,執(zhí)行的時(shí)候會(huì)錯(cuò)的是______??4,6

1.StringBuffer sb = new StringBuffer("abc");

2.String s = new String("abc");

3.sb.append("def");

4.s.append("def");

5.sb.insert(1, "zzz");

6.s.concat(sb);

?7.s.trim();

二、單項(xiàng)選擇題

1、 _______選項(xiàng)插在第三行處,程序執(zhí)行后可以得到結(jié)果4247? B?

1.public class Cer{

2. public static void main(String[] args){

3. ___________________________________

?4. System.out.println(s);

5.?}

6.?}

A.?String s=”123456789”; s=(s-“123”).replace(1,3,,”24”)-“89”; B.StringBuffer s=new StringBuffer(“123456789”); s.delete(0,3).replace(1,3,”24”).delete(4,6);

C.StringBuffer s=new StringBuffer(“123456789”); s.subString(3,6).delete(1,3).insert(1,”24”);

?D.StringBuilder s=new StringBuilder(“123456789”); s.subString(3,6).delete(1,2).insert(1,”24”);

?2、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是 ( ?B ???)。 ?? String s = "xxxxxxxxxxxxxxx#123#456#zzzzz"; ?

? int n = s.indexOf("#"); ???

? int k = s.indexOf("#", n+1); ?

? String s2 = s.substring(n+1, k);

?? System.out.println(s2); ?

A) 123456 ????B) 123 ????C) xxxxxxxxxxxxxxx ?????D) zzzzz

3、下列程序段執(zhí)行后的結(jié)果是( ?A ???)。

?String s = new String("abcdefg");

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

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

} ??

A)?aceg ??B) ACEG ???C) abcdefg ???D) abcd ??

?4、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是( ???A ?)。 ????? String ?s1=new String("abc"); ???

?????String ?s2=new String("abc"); ???

??????boolean b1=s1.equals(s2); ??

??????boolean b2=(s1==s2); ???????????????????? System.out.print(b1+" ??"+b2); ?

??????????A)true ?false ???????B) false ?true ?????C) true ?true ??? ?D)false ?false ??

?5、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果是 ( ?A ???)。 ??String s1="0.5", s2="12"; ????????

double x=Double.parseDouble(s1);

??int ???y=Integer.parseInt(s2);

???System.out.println(x+y);

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


JAVA練習(xí)題及答案的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
特克斯县| 分宜县| 民县| 贡山| 廊坊市| 桂林市| 天长市| 边坝县| 甘德县| 台南市| 兴义市| 正镶白旗| 金堂县| 顺义区| 武强县| 安吉县| 聂拉木县| 慈溪市| 兰西县| 阿荣旗| 和静县| 江永县| 上林县| 芦山县| 乳源| 长治县| 沽源县| 凯里市| 论坛| 海伦市| 莒南县| 自贡市| 娱乐| 宣化县| 洛扎县| 鱼台县| 恩施市| 尚志市| 工布江达县| 铜山县| 东山县|