類與對象及數(shù)組習題及答案_第1頁
類與對象及數(shù)組習題及答案_第2頁
類與對象及數(shù)組習題及答案_第3頁
類與對象及數(shù)組習題及答案_第4頁
類與對象及數(shù)組習題及答案_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、JAVA類和對象及數(shù)組習題一、選擇題(1)下列構(gòu)造方法的調(diào)用方式中,正確的是( D )-原因:在通過new實例化一個類對象時系統(tǒng)會自動調(diào)用該類相應(yīng)的構(gòu)造方法。A按照一般方法調(diào)用 B由用戶直接調(diào)用 C只能通過new自動調(diào)用 D被系統(tǒng)調(diào)用 (2)在Java中,能實現(xiàn)多重繼承效果的方式是( C )-原因:一個類可以同時實現(xiàn)多個接口。Java接口反映了對象較高層次的抽象,還彌補了Java只支持單繼承的不足,可用它來完成多繼承的一些功能。 A內(nèi)部類 B適配器 C接口 D同步 (3)int型public成員變量MAX_LENGTH,該值保持為常數(shù)100,則定義這個變量的語句是(  &#

2、160;D   )原因:java中定義常量用關(guān)鍵字final來定義。 Apublic int MAX_LENGTH=100 Bfinal int MAX_LENGTH=100 Cpublic const int MAX_LENGTH=100 Dpublic final int MAX_LENGTH=100 (4)下列敘述中,正確的是( A )原因:Java嚴格區(qū)分大小寫,所以變量number與Number不相同;Java 中的注釋方式除了“/”行注釋之外還有段注釋“/*-*/”和文檔注釋/*-*/。Java源文件中的public類只能有一個。A. 聲明變量時必須指定一個類型

3、 B. Java認為變量number與Number相同C. Java中唯一的注釋方式是"/" D. 源文件中public類可以有0或多個(5)下列敘述中,錯誤的是( D )原因:子類繼承父類,并且可以有自己的成員變量和成員方法。所以可以認為子類是父類的擴展。A. 父類不能替代子類 B. 子類能夠替代父類C. 子類繼承父類   D. 父類包含子類(6)下列代碼中,將引起編譯錯誤的行是(     B )原因:定義float型變量并對其初始化時,其值后面要加一個f. &#

4、160;  1)public class Exercise    2)     public static void main(String args)    3)        float f=0.0;     4)        f +=1.0;    5)  &#

5、160;      6)A. 第2行 B. 第3行 C. 第4行 D. 第6行 (7)下列關(guān)于繼承的哪項敘述是正確的?(   D   )  錯誤原因:JAVA不允許多重繼承,但可以通過接口的機制來達到多重繼承的目的;一個類可以同時繼承一個類和實現(xiàn)多個接口,但是不能同時繼承多個類。A在java中允許多重繼承 B在java中一個類只能實現(xiàn)一個接口 C在java中一個類不能同時繼承一個類和實現(xiàn)一個接口 Djava的單一繼承使代碼更可靠(8)下列哪個修飾符可以使在

6、一個類中定義的成員變量只能被同一包中的類訪問?(   B   ) 原因:無修飾符時是缺省修飾,它可以被同一包中的任何類訪問。Aprivate B無修飾符 Cpublic Dprotected (9)給出下列代碼,如何使成員變量m 被方法fun()直接訪問?(   C   ) 原因:靜態(tài)的成員方法只能訪問靜態(tài)的成員變量。class Test private int m; public static void fun() . A將private int m 改為protected int m B將p

7、rivate int m 改為 public int m C將private int m 改為 static int m D將private int m 改為 int m (10)已知有下列類的說明,則下列哪個語句是正確的?(   B   )原因:f是Test類的私有成員變量,在類外不能訪問,所以A不對。m是非靜態(tài)的變量不能直接用類名來訪問,所以C不對。由以上兩個原因可知D不對。 public class Test private float f = 1.0f; int m = 12; static int n=1; public static

8、 void main(String arg) Test t = new Test(); At.f; Bthis.n; CTest.m; DTest.f; (11)給出下列代碼,則數(shù)組初始化中哪項是不正確的?(   A   ) 原因:array2是一個二維數(shù)組,而aray1是一個一維數(shù)組。byte array1,array2; byte array3; byte array4; Aarray2 = array1 Barray2=array3 Carray2=array4 Darray3=array4 (12)下列代碼的執(zhí)行結(jié)果是( &#

9、160;A    ) 原因:在非靜態(tài)的方法中不能定義靜態(tài)的變量且方法aMethod沒有返回語句。public class Test public int aMethod() static int i=0; i+; (i); public static void main(String args) Test test = new Test(); test.aMethod(); A編譯錯誤 B0 C1 D運行成功,但不輸出 (13)下列關(guān)于內(nèi)部類的說法不正確的是(     C ) 原因:內(nèi)部類可以聲明為private或

10、protected,還可以聲明為abstract或final;A內(nèi)部類的類名只能在定義它的類或程序段中或在表達式內(nèi)部匿名使用 B內(nèi)部類可以使用它所在類的靜態(tài)成員變量和實例成員變量 C內(nèi)部類不可以用abstract修飾符定義為抽象類 D內(nèi)部類可作為其他類的成員,而且可訪問它所在類的成員 (14)順序執(zhí)行下列程序語句后,則b的值是(   C  ) 原因:String類的substring方法用于返回一個新的字符串對象,在當前字符串中,求以第一個參數(shù)為起始索引位置,第二個參數(shù)為結(jié)束索引位置的子串的值。其中不包括結(jié)束索引位置的那個字符。String a=&quo

11、t;Hello" String b=a.substring(0,2); AHello BHel CHe Dnull (15)為AB類的一個無形式參數(shù)無返回值的方法method書寫方法頭,使得使用類名AB作為前綴就可以調(diào)用它,該方法頭的形式為(    A  )。-原因:static修飾的方法又稱為靜態(tài)方法。靜態(tài)方法是類方法,它可以直接通過類來調(diào)用,也可以通過類實例來調(diào)用。Astatic void method( )          &#

12、160; B. public void method( )   Cfinal void method( )             D. abstract void method(16) 不使用static修飾符限定的方法稱為對象(或?qū)嵗┓椒?,下列哪一個說法是正確的?(    D )-原因:A子類實例方法可以直接調(diào)用父類的public和protected實例方法,但不能調(diào)用父類的private方法。B類方

13、法也稱為靜態(tài)方法,非靜態(tài)的方法不能調(diào)用靜態(tài)的方法和成員變量,所以無論是父類還是子類的實例方法都不能調(diào)用靜態(tài)方法。C一個類的實例方法只有這個類的其它方法或?qū)ο罂梢哉{(diào)用,不可以由其它類不經(jīng)過實例化直接調(diào)用。        A.實例方法可以直接調(diào)用父類的實例方法。        B.實例方法可以直接調(diào)用父類的類方法。        C.實例方法可以直接調(diào)用其他類的實例方法。 

14、0;      D.實例方法可以直接調(diào)用本類的實例方法(17)設(shè)有下面的一個類定義:class AA static void Show( ) System.out.println(“我喜歡Java!”); class BB void Show( ) System.out.println(“我喜歡C+!”); 若已經(jīng)使用AA類創(chuàng)建對象a和BB類創(chuàng)建對象b,則下面(   A、C  )方法調(diào)用是正確的 原因:靜態(tài)方法屬于類方法,它可以直接通過類來調(diào)用,也可以通過類實例來調(diào)用。而非靜態(tài)的方法則只能通過類實例(對象

15、)來調(diào)用。所以AA類的靜態(tài)show方法即可通過類也可以通過對象來調(diào)用,而BB類中的非靜態(tài)方法show則只能通過對象b來調(diào)用。   A. a.Show( )  b.Show( )      B. AA.Show( ); BB.Show( );                      

16、60;        C. AA.Show( ); b.Show( );    D. a.Show( ); BB.Show( );                         (18) 在Java中,一個類可同時定義許多同名的方法,這些

17、方法的形式參數(shù)的個數(shù)、類型或順序各不相同,傳回的值也可以不相同。這種面向?qū)ο蟪绦蛱匦苑Q為(   C  )。原因:同一名稱的方法實現(xiàn)不同的功能是面向?qū)ο蟮亩鄳B(tài)性的表現(xiàn),該多態(tài)性也稱為重載。   A.隱藏         B.覆蓋       C.重載       D.Java不支持此特性(19) 對于構(gòu)造函數(shù),下列敘述不正確的是(

18、  C   )。原因:子類可以通過super來調(diào)用父類的構(gòu)造方法。    A.構(gòu)造函數(shù)也允許重載。    B.子類無條件地繼承父類的無參構(gòu)造函數(shù)。    C.子類不允許調(diào)用父類的構(gòu)造函數(shù)。    D.在同一個類中定義的重載構(gòu)造函數(shù)可以相互調(diào)用。(20) 對于子類的構(gòu)造函數(shù)說明,下列敘述中不正確的是(  D   )。-原因:子類不可以繼承父類的有參構(gòu)造函數(shù)。只

19、能通過super調(diào)用。A.子類無條件地繼承父類的無參構(gòu)造函數(shù)。B.子類可以在自己的構(gòu)造函數(shù)中使用super關(guān)鍵字來調(diào)用父類的含參數(shù)構(gòu)造函數(shù),但這個調(diào)用語句必須是子類構(gòu)造函數(shù)的第一個可執(zhí)行語句。C.在創(chuàng)建子類的對象時,將先執(zhí)行繼承自父類的無參構(gòu)造函數(shù),然后再執(zhí)行自己的構(gòu)造函數(shù)。D.子類不但可以繼承父類的無參構(gòu)造函數(shù),也可以繼承父類的有參構(gòu)造函數(shù)。二、請寫出下列程序的運行結(jié)果(1)下列程序的運行結(jié)果是( s=120 ) 分析:if語句執(zhí)行3次,分別是當i=0,3,6時,對應(yīng)的數(shù)組中的數(shù)分別為:10,40,70,它們的和為120.public class Examac public static v

20、oid main(String args ) int i , s = 0 ;int a = 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 ; for ( i = 0 ; i < a.length ; i + )if ( i%3 = 0 ) s += ai ; System.out.println("s="+s); (2)下列程序的運行結(jié)果是( 110 110 110 110 110 )分析:for循環(huán)執(zhí)行5次,分別輸出11+99,22+88,33+77, 44+66, 55+55的和,且之間用空格隔開。public class

21、Examad public static void main(String args ) int i ; int a = 11,22,33,44,55,66,77,88,99 ; for ( i = 0 ; i <= a.length / 2 ; i + ) System.out.print( ai+aa.length-i-1+" "); System.out.println( ); (3)下列程序的運行結(jié)果是( parent childchild )分析:當對象myC調(diào)用方法printAll()后,順序執(zhí)行該方法中的三條語句,在子類Child中,重載了父類的prin

22、tMe方法,所在當執(zhí)行this.printMe() 和printMe()方法時都調(diào)用重載后的printMe()方法。所以依次輸出parent,child,child.class Parent void printMe() System.out.println("parent"); class Child extends Parent void printMe() System.out.println("child"); void printAll() super.printMe(); this.printMe(); printMe(); public c

23、lass Examae public static void main(String args ) Child myC = new Child( ); myC.printAll( ); (4)下列程序的運行結(jié)果是(The String No.1 isThe String No.2 is String 2The String No.3 is stringThe String No.4 is stringThe String No.5 is string )原因:s1定義了一個空的字符串對象,所以不會輸出任何東西。s2定義了一個字符串對象并賦初值為string2。s3定義了一個以字符數(shù)組為參數(shù)的字

24、條串對象,并將該字符數(shù)組組成的字符串賦給s3。s4定義同s3,只是只取字符數(shù)組從索引值為2的字符開始之后的6個字符,所以會去掉前面的兩個空格。s5是以一個StringBuffer類對象為參數(shù)定義的一個字符串對象,它的初值同s3.class Examaf public static void main(String args) String s1=new String();String s2=new String("String 2");char chars=' ',' ','s','t','r'

25、,'i','n','g'String s3=new String(chars);String s4=new String(chars,2,6);byte bytes=0,1,2,3,4,5,6,7,8,9;StringBuffer sb=new StringBuffer(s3);String s5=new String(sb);System.out.println("The String No.1 is "+s1); System.out.println("The String No.2 is "+s2);

26、System.out.println("The String No.3 is "+s3); System.out.println("The String No.4 is "+s4); System.out.println("The String No.5 is "+s5); (5)下列程序的運行結(jié)果是( 0 and 01 and 00 and 11 and 10 and 21 and 2 )原因:不帶標簽的break只結(jié)束它所在那一層循環(huán)不能結(jié)束外部循環(huán),所以內(nèi)層循環(huán)只能執(zhí)行兩次,分別是j為0,1時。外層循環(huán)執(zhí)行三次,分別是i為0,1

27、,2時。public class ExamOuter public static void main(String args) for(int i=0; i<3; i+) for(int j=0;j<3;j+) if(j>1) break; System.out.println(j+" and "+i); (6)下列程序的運行結(jié)果是( 4 )原因:執(zhí)行主方法時先對a,b賦初值,然后判斷條件,當判斷+b=6時,先對b加1再判斷,此時b的值已經(jīng)成為3,條件都不滿足,輸出a+b的值為1+3=4;class ExamTest public static void

28、main(String args) int a=1,b=2; if(a=0)&(+b=6) a = 100; System.out.println(a+b); (7)下列程序的運行結(jié)果是(x=2st.y=1st.y=1 )原因:生成類StaticTest時,先對靜態(tài)成員變量x賦值1,當執(zhí)行主方法時,先執(zhí)行其靜態(tài)代碼塊,將x的值加1,此時x=2。在實例化類時因為y并不是靜態(tài)的,所以它屬于對象,不屬于類。所以對象中y的初值為0,調(diào)用構(gòu)造方法后對其加1.class StaticTest static int x=1; int y; StaticTest() y+; public static

29、 void main(String args ) StaticTest st=new StaticTest(); System.out.println("x=" + x); System.out.println("st.y=" + st.y); st=new StaticTest(); System.out.println("st.y=" + st.y); static x+; (8)下列程序的運行結(jié)果是( x1=0x3=5x2=2 )原因:在生成類時先對類中的靜態(tài)成員進行初始化分配空間,所以x1先賦值。再執(zhí)行主函數(shù)時,先執(zhí)行靜態(tài)代碼

30、塊,所以輸出x3=5,再執(zhí)行模3運算,x得2賦給x2輸出。class StaticStuff static int x; static System.out.println("x1=" + x); x+=5; public static void main(String args ) System.out.println("x2=" + x); static System.out.println("x3=" + x);x%=3; (9)下列程序的運行結(jié)果是( 223 )原因:當調(diào)用子類無參構(gòu)造方法時,就調(diào)用父類的的無參構(gòu)造方法,該方法

31、調(diào)用func()函數(shù),而該函數(shù)被子類覆蓋,所以會調(diào)用子類的func()函數(shù)。當執(zhí)行第二條語句調(diào)用子類的含參構(gòu)造方法時,系統(tǒng)會默認先調(diào)用父類的無參構(gòu)造方法再調(diào)用子類含參構(gòu)造方法。class Person public Person () func(); public void func() System.out.println("1 "); public class Person_A extends Person public Person_A() super(); public Person_A(int a) System.out.println(a); public void func() System.out.println("2 "); public static void main(String args) Person_A pa = new Person_A(); Person_A pb = new Pe

溫馨提示

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

評論

0/150

提交評論