java程序設計題庫


選擇題

答題要求:單選題,每題只有一個正確答案,選擇正確給分,不正確不給分。

 

1、 下面(   A    )數據類型可用於main()方法中傳遞的參數

A、String   B、Integer   CBoolean   DVariant

2、以下的選項中能正確表示Java語言中的一個整型常量的是    B   

A12B-20   C1,000     D4 5 6

3、下列的變量定義中,正確的是   D    

Aboolean b1="true";   Bfloat x=6.6;

Cbyte i=200;         Ddouble y;

4、在屏幕上顯示的消息正確的語句是(   A    

ASystem.out.println("I am Java Expert");       

B、system.out.println("I am Java Expert");       

C、System.Out.Println("I am Java Expert");      

D、System.out.println('I am Java Expert');

5、下面(  B     )命令可用於編譯Java程序

A、java   B、javac  Cappletviewer    Djavadoc

6Java編譯器會將Java程序轉換為(     A  

A、字節碼    B、可執行代碼

C、機器代碼  D、以上所有選項都不正確

7、以下字符常量中不合法的是  C     

A'@'  B'&'  C"k"   D'整'

8、以下的選項中能正確表示Java語言中的一個double型常量的是(  C     

AFloat.MIN_VALUE      B1.8e-6F

C2.0                    D'abc'

9、以下的變量定義語句中,合法的是(    C   )。

Afloat $_*5= 3.4F;    Bbyte b1= 15678;

Cint $abc=5;         Dint class="5";

10、在一個類中定義的成員變量和成員方法時,不允許( A )。

A. 兩個成員變量名相同.  

B. 成員變量與成員方法名相同.

C. 兩個成員方法名相同   

D. 成員方法中的參數與成員變量名相同

11、下列敘述正確的是  (  B  

A. 在類中的構造方法的名字與類的名字相同, 而且不能重載

B. 在類中的構造方法的名字與類的名字相同,但沒有返回類型.

C. 在類中的構造方法的名字與類的名字相同,而且有返回類型.

D. 在類中的構造方法的名字與類的名字相同,而且不能初始化.

12Java application中的主類需包含main方法,main方法的返回類型是什么?(   D

Aint     Bfloat  Cdouble      Dvoid

13、給出如下代碼:

class Test{

  private int m;

  public static void fun() {

     // some code...

}

}

如何使成員變量m 被函數fun()直接訪問?(    C   

A、將private int m 改為protected int m

B、將private int m 改為 public int m

C、將private int m 改為 static int m

D、將private int m 改為 int m

14、在Java中,一個類可同時定義許多同名的方法,這些方法的形式參數個數、類型或順序各不相同,傳回的值也可以不相同。這種面向對象程序的特性稱為(C     )。

A、隱藏         B、覆蓋        C、重載       DJava不支持此特性

15、執行下面的程序,輸出結果是(   B  )。

public class Test {

int x= 12;

public void method(int x) {

x+=x;

System.out.println(x);

}

public static void main(String[] args){

Test t = new Test();

  t.method(5);

}}

A. 5   B. 10    C. 12     D. 17     E. 24

16、若在某一個類定義中定義有如下的方法: final  void  aFinalFunction( );

則該方法屬於( C)。       。

A. 本地方法.  B. 解態方法.  C. 最終方法  D. 抽象方法

17、下列敘述正確的是   ( D  )      

A. 子類可以繼承父類的所有成員。

B.. 除了繼承父類的成員以外,子類不可以創建自己的成員。

C. 當實例化子類時,父類的構造方法不被調用。

D. 子類只能繼承父類的非私有成員。.

18、某java程序的類定義如下: public class MyClass extends BaseClass{   }

則該java源文件在存盤時的源文件名應為如下哪一種:(  D )

A. myclass.java  B. Myclass.java  C. MYCLASS.java  D. MyClass.java

19、給出如下代碼:

class A{

public A(){

System.out.print("A");

}

}

public  class  B  extends  A{

public B(){

System.out.print("B");

}

public static void main(String[ ]  args){

new  B( );

}

}

程序的輸出結果(   A    

AAB   BA   CB  DBA

20、以下哪個接口的定義是正確的?(  D  )。       

A interface  A

{  void print()  {  } ;}

B abstract  interface  A

{ void print() ;}

C abstract  interface  A  extends I1, I2  //I1I2為已定義的接口

{ abstract  void  print(){  };}

D interface  A

{  void  print();}

21、下面選項中能把字符串轉換成float類型的是?(B

A. float value = new Float(str);

B. float value = Float.parseFloat(str)

C. float value = Float.floatValue(str);

D. float value = (new Float()).parseFloat(str)

22、在某個類中存在一個方法:void getSort(int x),以下能作為這個方法的重載的聲明的是( C )

A. public get (float x)   

B. int getSort(int y)

C. double getSort(int x,int y)

D. void get(int x,int y)

23、下邊程序運行的輸出結果是(   B    

class Base

Base(){System.out.print("Base");}

}

public class Alpha extends Base {

public static void main(String[] args){

new Alpha();

new Base();

}

ABase   BBaseBase   C、程序編譯失敗  D、程序運行但沒有任何輸出

24、下列說法正確的是(  C   )。

A. 一個子類可以有多個父類,一個父類也可以有多個子類

B. 一個子類可以有多個父類,但一個父類只可以有一個子類

C. 一個子類可以有一個父類,但一個父類可以有多個子類

D. 上述說法都不對

25、關於下面程序片段,(B  )的結論是正確的。

String a = "Java";              String b = "Java";

String x = "Ja";                String y = "va";

String c = x + y;

Aab指向同一個實例對象,ac指向同一個實例對象

Bab指向同一個實例對象,ac不指向同一個實例對象

Cab不指向同一個實例對象,ac指向同一個實例對象

Dab不指向同一個實例對象,ac不指向同一個實例對象

26、下面這段代碼會產生(C  )個String對象。

String s1 = "hello";              String s2 = s1.substring(2, 3);

String s3 = s1.toString();         String s4 = new StringBuffer(s1).toString();

A1   B2   C3   D4

27、設有定義:String s=”World”;,下列語句錯誤的是( D )。

Aint m=s.indexOf(‘r’);  Bchar c=s.charAt(0);  Cint n=s.length();  DString str=s.append();

28、已知int i = 2147483647; ++i; i的值等於( A   )。

A-2147483648        B2147483647      C2147483648    D-1

29、若x = 5,y = 8,則表達式x|y的值為( B   )。

A3           B13            C0         D5

30、執行String[ ]  s=new String[10];語句后,哪個結論是正確的?(B

As[0] 為 未定義    Bs.length 10     Cs.length 11    Ds[10] ""

31、下列說法不正確的是( D  )。

A、表達式“1+2>3”的值是false      B、表達式“1+2||3”是非法的表達式

C、表達式“i+j=1”是非法的表達式   D、表達式“1+2>3”的值是true

32、若String s = "hello";  String t = "hello";  char c[] = {'h','e','l','l','o'} ; 則下列哪個表達式返回false?( C

As.equals(t);    Bt.equals(new String("hello"));      Ct.equals(c);     Ds==t;

33、執行完下面程序片段后,( B)的結論是正確的。

    int a, b, c;   a = 1;  b = 2;   c = (a + b > 3 ? a++ : b++);

 Aa的值是2b的值是3           Ba的值是1b的值是3

 Ca的值是1b的值是2           Dc的值是false

34、下面程序片段輸出的是( D )。

int i = 0, j = 9;

do {

 if(i++ > --j) break;

} while(i < 4);

System.out.println("i = " + i + " and j = " + j);

Ai = 4 and j = 4    Bi = 5 and j = 5    Ci = 5 and j = 4    Di = 4 and j = 5

35、設有定義“int k=3;”,語法正確且值為true的表達式是(D  )。

Ak=3;    Bk++>3;    Ck--==3&&k++==3;    Dk++==3||++k>3;

36、若有定義int  a = 2;則執行完語句 a -= a * a; 后,a的值是(C  )

A0       B)4        C-2        D、 –4

37、下列語句序列執行后,j 的值是(A  )。    int  j=1;

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

A15     B1     C60     D0

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

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

A、有語法錯,不能執行    B、無限次    C、執行1次       D、一次也不執行

39、下列語句序列執行后,j 的值是(B  )

   int  j=9,  i=6;

   while( i-- >3 )  --j;

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

40. 若有循環:

   int x=5,y=20;

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

則循環體將被執行(A  )

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

41. 下列語句序列執行后,i的值是(  A)

   int  i=10;

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

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

42. 以下語句中能構成多分支的語句是( C )。

   A) for 語句              B) while 語句

   C) switch 語句           D) do - while 語句

43. 能從循環語句的循環體中跳出的語句是(B )。

 A)for語句    B)break語句    C) continue語句    D)return語句

44.字符流與字節流的區別是( A )。

A、每次讀入的字節數不同 B、前者帶有緩沖,后者沒有

C、前者是塊讀寫,后者是字節讀寫 D、二者沒有區別,可以互換使用

45.下面關於使用throw關鍵字拋出的對象說法正確的是( A )。  

A、它必須被聲明為Throwable類型 B、它必須被聲明為error類型

C、它必須被聲明為Exception類型 D、它必須被聲明為String類型

46.在oneMethod()方法運行正常的情況下,程序段將輸出什么? D

public void test(){

try{

oneMethod();

System.out.println("condition1");

} catch (ArrayIndexOutOfBoundsExceptione){

System.out.println("condition2");

} catch(Exceptione){

System.out.println("condition3");

} finally{

System.out.println("finally");

}

}

Acondition1  Bcondition2  Ccondition3  Dcondition1finally

47下列常見的系統定義的異常中,哪個是輸入、輸出異常? B  

AClassNotFoundException BIOException

CNumberFormatException DUnknownHostException

48.下列InputStream類中哪個方法可以用於關閉流? B  

Askip() Bclose() Cmark() Dreset()

49.下面關於try-catch-finally語句塊中有關finally說法正確的是(  C  

A、它只會在catch語句塊執行結束后才會執行

B、它只有在catch語句塊不被執行的情況下才會被執行

C、不管有沒有異常產生它總會被執行

D、只有在有異常產生的情況下它才會被執行

50.關於異常的應用,下列說法恰當的是(  B  

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

B、在程序中過多的使用異常,會使程序的執行效率降低

C、異常產生后,我們只需捕獲它,至於是否對異常給與處理,無所謂

DJava中的異常全部都被預先定義好了,程序員無需自行定義異常類

51.如果一個程序段中有多個catch,則程序會按如下哪種情況執行(  C  

A.找到適合的例外類型后繼續執行后面的catch

B.找到每個符合條件的catch都執行一次

C.找到適合的例外類型后就不再執行后面的catch

D.對每個catch都執行一次

52.屬於Java輸入輸出流的、且處理的是char類型的類是(  A  

AReader類  BInputStreamCOutputStreamDFile

53. 下列不屬於面向對象編程的三個特征的是(    B   )

A. 封裝     B. 指針操作      C. 多態      D. 繼承

54. 以下字符串常量中不合法的是(    B   )

A. "q"    B. ‘&’    C. "k"    D. "整數" 

55. public int getGameScore(),getGameScore這個方法的返回值類型是(   A    )

A. int   B. void    C. INT     D. short

56. java中語句:37.2%10的運算結果為(   C    )

A. 37         B. 2        C. 7.2        D. "0"

57. 若已定義 x ydouble 類型,則表達式 x=1y=x+3/2 的值是(   C  )

A. 1      B. 2     C. 2.0     D. 2.5

58. 關於while和do-while循環,下列說法正確的是:(   D   )

A. 兩種循環除了格式不同外,功能完全相同

B. do-while語句不通的是,while語句的循環至少執行一次

C. do-while語句首先計算終止條件,當條件滿足時,才去執行循環體中的語句

D. 以上都不對

59. 下面(   C   )表達式是聲明一個含有10個String對象的數組。

A. char str[ ];                       B. char str[ ][ ];

C. String str[ ]=new String[10];      D. String str[10];

60. 多分支語句switch(表達式){}中,表達式可以返回哪種類型的值(   B   )

A. 實型       B. 字符型       C. 數組        D. 布爾型

61. 下列不屬於條件語句關鍵字的是: (   A   )

A. for        B. if           C.else         D. switch

62. 下列類的定義,錯誤的是(   D   )

A. public class test extends Object{

…… }

B. final class operators{

……}

C. class Point{

……  }

D. void class Point{

……  }

63. 下面表達式中,用來訪問數組a中第一個元素的是(   A   )

A. a[0]      B. a[1]      C. a.0        D. a.1

64. atrue時,值為“真”的表達式是(   A   )

A. a       B.!(++a)    C. a=true     D. a==0

65. 下面命令中(   A   )可用於解釋Java程序。

A. java   B. javac  C. javaapplview  D. javadoc

66. 方法的形參是(   A   )

A. 可以沒有              B. 至少有一個      

C. 方法必須都含有        D. 一個方法中可以有多個return

67. 有一個類A,對於其構造函數的聲明正確的是(   B   )

A. void  A(int x){}        B. public  A(int x){}      

C. A  A(int x) {}          D. int  A(int x) {}

68. Test為已定義的類,下面聲明類Test對象a的語句正確的是(   C   ) 

A. Test a=Test();              B. public Test a;     

C. Test a=new Test();          D. public Test a=new Test();

69. 如下哪個是Java中的正確的標識符(   D   )

A. public   B. super     C. 3number   D. width

70. 定義一個類,必須使用的關鍵字是(   B   )

 A. public      B. class     C. interface    D. static

71. 下列數組聲明語句錯誤的是:(   C   )

A. int [] a;    B. int a[];     C. int a[5];      D. int[]a=new int[5];

72. Java語言屬於下列哪一種語言(   B   )

A. 面向過程語言                 B.面向對象語言  

C. 面向機器語言                 D. 面向操作系統語言

73. 現有一個整型數組a [4],它的所有元素是(   B   )

A. a0.a1a2.a3              B.  a[0]a[1]a[2]a[3]    

C. a [1]a [2]a[2]a[4]      D.  a [0]a[1]a [2]a[3]a[4]


填空題

答題要求:每空只有一個正確答案,填對給分,填不對不給分。

 

1. 若有定義 int[ ] a = new int[8]; a的數組元素中第7個元素和第8個元素的下標分別是(  6    )和(  7    )。

2. Scanner類在(   java.util   )包下面。

3. JVM是指( java虛擬機)。

4. 假設有一個JAVA應用程序,其源程序文件名是Morning.java,則編譯該源程序時應該在命令提示符窗口中輸(  javac Morning.java )命令,運行該程序時應該在命令提示符窗口中輸入(java Morning)命令。

5. 要聲明整型數組a,應該用語句(  int a[ ];  )。

6. 要定義xint類型的數組,並且數組元素的初值是12345,則可以用一條語句(  int[ ]x={1,2,3,4,5};   )。

7. Java語言中,所有的數組都有一個( length  )屬性,這個屬性存儲了該數組的元素的個數或者說數組長度。

8. 面向對象程序設計的四個特性是:抽象性、(繼承性)、(封裝性)、(多態性)。

9. Java中類成員的限定詞有以下幾種:private 缺省, public , protected )。其中(public)的限定的范圍最大。

10. 用於創建類實例對象的運算符是(new), Java中所有類都是類(Object)的子類。

11. 構造方法的方法名與(類名)相同,若類中沒有定義任何的構造方法,則運行時系統會自動為該類生成一個沒有參數的構造的方法。

12. java中用關鍵字(extends)指明繼承關系、用關鍵字(implements)指明接口實現。

13. this代表了(當前對象 )的引用,super表示的是當前對象的(父類)對象。

14. java中提供了兩種用於多態的機制( 重載)( 覆蓋)

15.關鍵字(final)表示一個對象或變量在初始化后不能被修改。

16. 下面方法的功能是判斷一個整數是否為偶數,將程序補充完整。

publicboolean   isEven(int  a)

{   if(a%2==0)

      return true  ;

else

      return  false;

}

17. thissuper 關鍵字只能在(非靜態)方法中使用。

18. java中用關鍵字(abstract)指明抽象類,用關鍵字( interface )指明接口。

19. 執行下列代碼后的結果是什么? int x,a=8,b=4,c=5; x=++a+b+++c++;

x = (   18  , a = (9     )b = (  5 ),  c = (  6  )

20. Java語言中,字符串直接量是用雙引號括起來的字符序列,字符串不是字符數組,而是類 ( String ) 的實例對象。

21. String對象用= = 比較時,如果String包括相同的地址,則結果為( true )

22. 對於下列描述,各寫出一條語句完成要求的任務

1)比較s1中的串和s2中的串的內容的相等性;    (  s1.equals(s2) ; )      

2)用+=向串s1附加串;     ( s1+=s2; )         

3)判斷s1中串的長度;      (s1.length(); )       

23. x,ymax,min均為int型變量,xy已賦值。用三目條件運算符求xy的最大值和

最小值,並分別賦給變量maxmin,這兩個賦值語句分別是(max=a>b?a:b)( min=a<b?a:b)

24. “當整型變量n的值不能被13除盡時其值為 false” Java語言表達式是(n%13==0)。

25. 執行以下程序段后:x = ( 6 ),  y =( 24 )

int x = 5, y=5;

y = ++x * - -y;

26. Java程序運行時,系統自動通過System類創建三個靜態的I/O對象,它們是標准輸入流對象(  System.in )、標准輸出流對象( System.out ) 和標准錯誤流對象( System.err )

27. java中的異常處理通過5個關鍵字來實現:它們是trycatchthrowthrowsfinally。進行異常監測的代碼要放在try子句內:捕獲異常需要使 ( catch )子句;在方法中宣布可能產生的異常應使用( throw)關鍵字。

28. 異常是一種運行時錯誤,在java中,異常是以對象的方法表示的,任何異常對象都是(Throwable)類或其子類的對象。

29. Java中,InputStreamOutputStream是以( 字節 )為數據讀寫單位的輸入輸出流的基類;ReaderWriter是以( 字符 )為數據讀寫單位的輸入輸出流的基類。

30. Java的異常處理模型以3種操作為基礎:聲明異常、拋出異常和捕捉異常。當程序語句導致錯誤時,包含語句的方法將創建異常對象並把它傳遞到系統,這個過程稱為( 拋出異常 ),查找異常處理程序的過程稱為( 捕捉異常 )。       

31.一般用( System.in)創建InputStream對象,表示從標准輸入中獲取數據。用( System.out)創建OutputStream對象,表示輸出到標准輸出設備中。

32.java把它能夠識別的異常分為兩大類:檢查的和非檢查的異常。非檢查的異常是(Error)類和RuntimeException類的實例,它代表程序不必處理嚴重系統錯誤;檢查異常是(Exception)類的子類,它代表程序應該而且能夠處理的錯誤。

33. 將以( .java )為擴展名的Java源文件編譯成字節碼文件,字節碼文件的擴展名為 (.class)

34. Java語言中的浮點數默認類型是(double或者雙精度浮點型)

35. Java語言以()為程序的基本單位,它是具有某些共同特性實體的集合,是一種抽象的概念。

36. 代碼System.out.println(076)的輸出結果是(62)。

37. 數組初始化分為(動態數組)和(靜態數組)兩種。

39. 類中的(構造)方法是一個特殊的方法,其名稱與類名相同。

40. 在面向對象方法中,類的實例被稱為(對象)。

 

問答題

答題要求:按采分點給分,語言能符合采分點表達的含義。

1. 什么是變量?什么是常量?變量名和變量的數據類型各有什么意義?

答:常量是一個某種基本數據類型的數值(1分),變量是內存中一個存放數據的存儲單元(1分)。變量名表示存放該變量的存儲單元地址(1分),變量的數據類型表示該變量占用內存的大小(2分)。

2. 怎樣構成一個合法的Java變量名?

答:Java要求變量名只能由英文字母、美元符號$或下划線_構成,且不能以數字開頭,中間也不能有空格。(3分)不能以關鍵字作為變量名(1分)區分大小寫(1分)。

3、簡述構造方法的特殊性以及它的主要作用

答:構造方法的特殊性在於:該方法沒有返回數據類型,創建對象時系統自動調用。該方法的作用(3分):為創建的對象分配存儲空間,為對象的屬性賦初始值。(2分)

4、類的主要修飾符有哪些?類的成員變量的修飾符有哪些?

答:類的修飾符有缺省、publicabstractfinal等;(2分)成員變量的修飾符有publicprivate、缺省、protectedstaticfinal等。(3分)

5、類包括哪些部分?類體包括哪些部分?方法定義包括哪些部分?方法聲明包括哪些部分?

答:類包括類聲明和類體兩部分(2)。類體包括變量定義和方法定義兩部分(1)

方法定義包括方法聲明和方法體兩部分(1)。方法聲明包括方法名和返回類型兩部分(1)

6.類和接口有什么不同

答:一個類只能有一個父類,但是可以有多個接口。接口中只能聲明方法,不允許給出方法體,方法體要在實現接口的類中給出。(3分)在默認狀態下接口中所有變量和方法都是public。所以當一個類實現了某個接口以后,便可以使用接口的所有變量和方法。(2分)

7.能不能將一個類既聲明為abstract又聲明為final

答:不能。abstract類可能包含抽象方法,抽象方法只有方面聲明,沒有方法體。所以抽象類不能直接使用,只能通過繼承,在子類中給出抽象方法的方法體。final類不能被繼承,沒有子類。所以,他們是矛盾的。

8.如果某子類和它的父類不在同一個包中,采用什么權限修飾符才能訪問父類的成員?不加任何修飾符行不行?

答:需要用publicprotected修飾(3分)。不行,不加任何修飾符的成員只能在同一個包中訪問(2分)。

9Java 是否支持多重繼承,如何實現多重繼承關系?

答:在Java程序中,通過類的定義只能實現單重繼承(3分),但通過接口的定義可以實現多重繼承關系。(2分)

10、字符串類String StringBuffer類有何不同?

答:從根本上來說應該是stringBuffer在做字符長度變動的時候將繼續使用原來的內存空間,不新分配.2分)String的長度一旦變動,就如上面的例子一樣,其內部將分配新的內存空間。(3分)

11.流是指數據的流動。輸入流的數據從哪里流到哪里?輸出流中的數據從哪里流到哪里?

答:對於輸入流,數據從文件或輸入設備流動到程序。(2分)對於輸出流,數據從程序流動到文件或輸出設備。(3分)

程序分析題

1. 如果程序代碼為:

public class Demo{

public static void main (String[ ] args){

String a=args[1];

System.out.println(a);

}

}

進行編譯后,執行以下命令將得到什么結果?java Demo a1 a2 a3

答:a2 5分)

2、現有一個類定義如下,請回答問題:

class Employee{

String name;

int age;

double wage;

static int No=0;

Employee(String a1,int a2,double a3){

name=a1; age=a2; wage=a3;

No++;

}

}

在使用該類時,已使用下面語句生成了該類的對象:

Employee e1,e2;

e1=new Employee("王勁",26,6300);

e2=new Employee("張山",30,3800);

問題:

1)e2.name,e2.age,e2.wage的值各是什么 ?

2)生成對象e1,e2,e1.No值為多少 能否通過類名做前綴引用屬性Noage

答:1(張山;30;3800.0)   ;(3分)

2(2; 可以訪問No,不能訪問age)2分)

3、閱讀以下程序,寫出運行結果  。

class   Q1{

    public static void mainString  args[ ]{

double  d=1.23;

Dec  dec=new  Dec( );

dec.decrement(d);

System.out.println(d);

}

classs   Dec{

public void  decrement(double   decMe){

decMe = decMe 0.1;

}

}

答:1.23  5分)

4、分析下列程序的執行結果:

class Value{

     public int i = 15;

  }

  public class Test{

    public static void main(String argv[]){

      Test t = new Test();     t.first();

    }

    public void first(){

      int i = 5;

      Value v = new Value();

      v.i = 25;     second(v, i);

      System.out.println(v.i);

    }

    public void second(Value v, int i){

      i = 0;     v.i = 20;

      Value val = new Value();

      v = val;

      System.out.println(v.i + " " + i);

    }

  }

  15 0 20

5、分析下列程序的執行結果:

public class Test{

     public static void main(){

        int i = 1, j = 10;

        do{

           if(i++ > --j)

           continue;

        }while(i < 5);

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

     }

  }

結果是:                  

:i=5,j=6

6、閱讀程序后回答問題 。

  public class ContinueTest

  {

     public static void main( String args[])

     {

        char  c='i';

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

        {

            if ( n == 8 )   continue;

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

        }

     }

  }

問題:1)程序的輸出結果是什么

 2)若將if中的continue語句替換為break語句,輸出結果是什么?

1i   j   k  l;(2

2i   j3

7分析下列程序的功能是                                                      

import java.io.File;

public class FileExercise{

public static void main(String[] args){

File fileObject = new File("Sally.txt");

if(fileObject.exists()){

System.out.println("There is a file named Sally.txt");

}else{

System.out.println("There is no file named Sally.txt");

}

}

}

答:測試程序所在的目錄是否包含一個名為Sally.txt的文件。如果存在則輸出There is a file named Sally.txt;如果不存在則輸出There is no file named Sally.txt

8. 下面程序輸出結果為:

   姓名:張三 性別:女 年齡:20

姓名:李四 性別:女 年齡:33

class Person{

  String name;

  char sex;

  int age;

  Person(String pName,char pSex,int pAge){//以下代碼完成類屬性賦值

                                   ;

                                   ;

                                   ;

  }

  public String toString(){

    String s = ("姓名:" + name + " 性別:" + sex + " 年齡:" +age);

                                 ; /返回s的值

  }

}

 

public class CreatePerson{

  public static void main(String[] args){

    Person p1 = new Person("張三",'',20);

    以下代碼完成定義對象p2,各參數值分別為:李四,女,28

                                 ;

    p1.sex = '';    //p1sex屬性改為女

    System.out.println(p1.toString()); //輸出p1的各個屬性

    //以下代碼將p2age改為33

                                 ;

//以下代碼輸出p2的各個屬性

                                 ;

  }

}

答:1name=pName2分)

       sex=pSex2分)

       age=pAge2分)

2return s2分)

3Person p2=new Person(李四,28) 2分)

4p2.age=332分)

5p2.toString( )  2分)

9.分析程序的運行結果

public class Course{

private String cNumber;

private String cName;

private int cUnit;

public Course(String number,String name,int unit){

cNumber=number;cName=name;cUnit=unit;

}

public void printCourseInfo(){

System.out.println ("課程號:"+cNumber+" 課程名:"+cName+" 學分:"+cUnit);

}

}

class CourseTest{

public static void main(String[]args){

Course c;

c=new Course("001","Java",3);

c.printCourseInfo();

}

}

 

答:課程號:001 課程名:Java 學分:35分)  

10. 下面的程序運行結果如下,請將代碼填充完整:

   name:Tom

   salary:5000

   name:Jerry

   salary:3000

public class Employee{

  String name;

  int salary;

  Employee(String n,int s){

    __          __;          //給變量name賦值

    __          __;          //給變量salary賦值

  }

  Employee(String n){

    name = n;        //給變量name賦值

  }

  void print(){

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

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

  }

  void setSalary(int s){

    __          __;             給變量salary賦值

  }

  public static void main(String[] args){

    Employee e1 = new Employee("Tom",5000);

    Employee e2 = new Employee("Jerry");

    e1.print();

    e2.setSalary(3000);

    e2.print();

  }

}

答: 1name=n;          //給變量name賦值

         salary=s;

2salary=s;

11.分析程序的運行結果

public class Father{

    String name,address,tel;

    int age;

    public Father(String name,int age){

       this.name=name;this.age=age;

}

    void out(){

        System.out.print("姓名:"+name);

        System.out.print(" 年齡:"+age);

     }

     void outOther(){

        System.out.print(" 家庭住址:"+address);

        System.out.print(" 電話:"+tel);

     }

}

class Son extends Father{

String school;

     public Son(String name,int age){

    super(name,age);

}

void out(){

       super.out();

       super.outOther();

       System.out.println (" 學校:"+school);

     }

public static void main(String args[]){

       Son son=new Son("Tom",15);

       son.address="金水區";

       son.school="九中";

       son.tel="66123456";

       son.out();

}

}

答:姓名:Tom 年齡:15 家庭住址:金水區 電話:66123456 學校:九中 (5分)

12.閱讀如下所示的3JAVA類,分析它們之間的關系,寫出運行結果。

class SuperClass{

  int x;

  SuperClass(){

    x = 3;

    System.out.println("in SuperClass:x=" + x);

  }

  void doSomething(){

    System.out.println("in SuperClass.doSomething()");

  }

}

class SubClass extends SuperClass{

  int x;

  SubClass(){

    super();

    x = 5;

    System.out.println("in SubClass:x=" + x);

  }

  void doSomething(){

    super.doSomething();

    System.out.println("in SubClass.doSomething()");

    System.out.println("super.x=" + super.x + " sub.x=" + x);

  }

}

public class Inheritance{

  public static void main(String[] args){

    SubClass subC = new SubClass();

    subC.doSomething();

  }

}

答:運行結果:

in SuperClass:x=32分)

in SubClass:x=52分)

in SuperClass.doSomething()2分)

in SubClass.doSomething()2分)

super.x=3 sub.x=52分)

13.閱讀如下程序,寫出運行結果。

class StaticDemo

{

static int x;

int y;

public static int getX()

{ return x; }

public static void setX(int newX)

{ x=newX; }

public int getY()

{return y;}

public void setY(int newY)

{y=newY; }

}

public class MainDemo {

public static void main(String[] args)

  {

System.out.println("靜態變量x="+StaticDemo.getX());

StaticDemo a=new StaticDemo();                                                                 

StaticDemo b=new StaticDemo();

a.setX(1);               

a.setY(2);

b.setX(3);

b.setY(4);

System.out.println("靜態變量a.x="+a.getX());

System.out.println("實例變量a.y="+a.getY());

System.out.println("靜態變量a.x="+b.getX());

System.out.println("實例變量a.y="+b.getY());

  }

}

答:運行結果:

靜態變量x=02分)

靜態變量a.x=32分)

實例變量a.y=22分)

靜態變量a.x=32分)

實例變量a.y=42分)

14. 觀察下面程序的運行結果,注意try語句中產生的異常與catch參數的匹配。

public class Test2{

  static int a = 3,b = 0;

  static String c[] = {"數組元素c[0]"};

  public static void main(String[] args){

    try{

      System.out.println(a);

      System.out.println(a/b);

      System.out.println(c[b]);//若上條語句產生異常,本語句將不被運行

    }

    catch(ArithmeticException e){

      System.out.println("捕捉到一個算術異常");

    }

    catch(ArrayIndexOutOfBoundsException e){

      System.out.println("捕捉到一個數組下標越界異常");

    }

    catch(Exception e){

      System.out.println("捕捉到一個系統異常");

    }

    finally{

      System.out.println("程序結束");

    }

  }

}

答:運行結果:

32分)

捕捉到一個算術異常(2分)

程序結束(2分)

編程題

答題要求:按采分點給分,要求代碼編寫有一定的規范性,完成采分點功能區代碼則給分,未完成該采分點的,不給分。

 

1. 編寫出一個程序,其中創建了數組abc,該數組的五個元素分別為“北京奧運會”五個漢字。要求程序運行后,能將五個元素顯示在同一行上,並顯示該數組的長度。(共10分)

編碼規范2分;類和主方法的定義2分;數組的聲明和賦值2分,漢字輸出2分(注意:字符輸出時一定要轉為字符串后輸出,沒有轉換的扣1分),數組長度輸出2分。

答:

public class ShowChar{

public static void main (String[ ] args){

char abc[] = {'','','','',''};

System.out.println("" + ch[0] + ch[1] + ch[2] + ch[3] + ch[4]);

System.out.println(abc.length);

}

}

2. 設計一個動物類,它包含動物的基本屬性。例如名稱、大小、重量等,並設計相應的動作,例如跑、跳、走等。

編碼規范2分;類定義2分;成員變量定義3分,成員函數定義3分。

答:public class Animal{  
  private String name;
  private double weight;
  private int length;
  privateString sex;
  public void run(){
    System.out.println("the animal is running!");來源:考試大
  }
  public void jump(){
    System.out.println("the animal is jumping!");
  }
  public void walk(){
    System.out.println("the animal is walking!");
  }
 }

3. 定義一個環形類Ring,包含屬性外半徑outerRadius,內半徑innerRadius,顏色,生成GetSet方法,並定義一個方法求環形的面積getArea,定義一個含有三個參數的構造方法和一個參數為0的構造方法。

編碼規范2分;類的成員變量的定義3分;類的成員函數的定義5分;

答:public class Ring {

private double outerRaduis;

private double innerRaduis;

private String Color;

public double getArea()

{

return Math.PI*this.outerRaduis*this.outerRaduis-

Math.PI*this.innerRaduis*this.innerRaduis;

}

public Ring(double r1,double r2,String c)

{

this.outerRaduis=r1;

this.innerRaduis=r2;

this.Color=c;

}

public Ring()

{

this.outerRaduis=50;

this.innerRaduis=40;

this.Color="green";

}

}

4. 設計一個三角形類,它包含三角形基本屬性底和高,以及求三角形面積的方法。要求從鍵盤接收三角形的底和高的值,然后輸出三角形的面積。(提示:可以使用鍵盤掃描類Scanner或命令行參數接收三角形的底和高的值)

編碼規范2分;類的成員變量的定義2分;類的成員函數的定義3分;主方法的實現3分。

import java.util.*;

class Reta {

  private double di;

  private double high;

  public Reta(double di, double high) {

  this.di = di;

  this.high = high;

    }

 public double area() {

  try {

   return 0.5 * this.di * this.high;

  } catch (Exception e) {

   e.printStackTrace();

   return 0;

  }

  }

}

public class Ret{

public static void main(String[] args){

Scanner sc = new Scanner(System.in);

double x = sc.nextDouble();

double y = sc.nextDouble();

Reta reta = new Reta(x,y);

double area = reta.area() ;

System.out.print(area);

 }

}

5. 有三個字符串String s1= "Hello Java";  String s2= "Java Applet";  String s3= "Java";,編寫程序找出其中最大者。

編碼規范2分;類定義2分;主方法的實現6分。

答:

public class max1

{

   public static void main(String args[])

   {

String s1= "Hello Java";  

String s2= "Java Applet";  

String s3= "Java";  

String s;  

if(s1.compareTo(s2)<0)

  s=s2;

  else s=s1;

  if(s.compareTo(s3)<0)

  s=s3;

  Systrm.out.println("big="+s);

  }

}

6. 編寫一個程序,設定一個有大小寫字母的字符串String s1= "Hello Java";,先將字符串的大寫字符輸出,再將字符串中的小寫字符輸出。注:利用StringBuffer完成。

編碼規范2分;類定義2分;主方法的實現6分。

    答:

public class out

{

public static void main(String args[])

{

String str="Hello Java";

StringBuffer bufup=new StringBuffer();

StringBuffer buflow=new StringBuffer();

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

{

if(str.charAt(i)<97)

{

bufup.append(str.charAt(i));

bufup.append(' ');

}

else

{

buflow.append(str.charAt(i));

buflow.append(' ');

}

}

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

System.out.println("uppercase="+bufup);

System.out.println(" lowercase= "+buflow);

}

}

7. 設定一個有大小寫字母的字符串String s1="abcdefghi";和一個查找字符,使用類 String方法IndexOf()來判斷在該字符串中該字符出現的次數。

編碼規范2分;類定義2分;主方法的實現6分。

答:

import java.util.*;

public class StringNum{

    public static void main(String args[]){

Scanner input = new Scanner(System.in);

System.out.println("請輸入一個字符串:");

String s1 = input.nextLine();

System.out.println("請輸入一個字符:");

String c1 = input.nextLine();

char[] cArr = c1.toCharArray();

char c = cArr[0];

int num = 0;

int index;

int i = 0;

while(i < s1.length()){

index = s1.indexOf(c, i);

if(index == -1){

break;

}else{

i = index+1;

num++;

}

}

System.out.print("字符" + c + "的個數為" + num );

}

}

 

8. 編寫一個程序,要求:

1)在當前目錄下創建目錄Personal

2)將自己的學號、姓名、性別寫入到目錄Personal下的文件Info.txt

3)將文件中的數據顯示在屏幕上

編碼規范2分;類定義2分;主方法的實現6分(其中題目要求的每個功能實現各2分)。

答:

import java.io.*;

import java.util.*;

public class FileExercise3{

    public static void main(String[] args){

//create folder

String folderName = "Personal";

String fileName = "Info.txt";

File f=new File(folderName);

f.mkdir();

//write file

PrintWriter outputStream = null;

        try{

            outputStream = new PrintWriter(new FileOutputStream(folderName + "\\" + fileName));

        }catch(FileNotFoundException e){

            System.out.println("Error opening the file Info.txt.");

            System.exit(0);

        }

        outputStream.println("學號:0921404");

        outputStream.println("姓名:安文琪");

outputStream.println("性別:男");

        outputStream.close( );

//read file

Scanner inputStream = null;

        try{

inputStream = new Scanner(new FileInputStream(folderName + "\\" + fileName));

        }catch(FileNotFoundException e){

            System.out.println("File " + fileName + " was not found");

            System.out.println("or could not be opened.");

            System.exit(0);

        }

        while(inputStream.hasNextLine()){

System.out.println(inputStream.nextLine());

}

inputStream.close( );

 

    }

}

 

9. 編寫一個程序,將一維數組中元素順序倒置。例如:若數組元素的順序原來是1、2、3,則倒置后的順序變為3、2、1。(要求使用循環語句)

編碼規范2分;類定義2分;主方法的實現6分。

public class LianXi {

public static void main(String[] args) {

int a[]={1,2,3,4};

int temp;

for(int i=0;i<=(a.length/2);i++){

temp=a[i];

a[i]=a[a.length-1-i];

a[a.length-1-i]=temp;

}

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

System.out.print(a[i]+",");

}

}

}

10. 設計一個矩形類,包括屬性:長、寬及方法,再通過主類調用其矩形類輸出相應的面積。(注:長寬自己給定任意的值就可以)

編碼規范2分;類定義2分;主方法的實現6分。

class JuXing{

private double length;

private double weight;

public JuXing(double length,double weight){

this.length=length;

this.weight=weight;

}

public double Area(){

double area=length*weight;

return area;

}

}

public class LianXi {

public static void main(String[] args) {

JuXing ju=new JuXing(1.2,3.4);

System.out.print(ju.Area());

}

}

11. 創建一個Table類,該類中有桌子名稱name)、重量weight)、桌面寬度width)、長度length)和桌子高度height)等私有的屬性,以及以下幾個方法

   構造方法:初始化所有成員變量

   area():計算桌面的面積。

   display():在屏幕上輸出所有成員變量的值

   changeWeight(int w):改變桌子的重量

   MainTable類main()方法中實現創建一個桌子對象,計算機桌面的面積,改變桌子的重量,並在屏幕上輸出桌子屬性的值。

編碼規范2分;類定義2分;主方法的實現6分(其中題目要求的每個功能實現各1分)。

 

12. 定義一個人類(Person),包括屬性:姓名(name)、性別(sex)、年齡(age);包括方法:吃飯(eat)、睡覺(sleep)、工作(work)。

1)根據人類,派生一個學生類(Student),增加屬性:學校(school)、學號(s_number);重寫工作方法(學生的工作是學習)。

2)根據人類,派生一個工人類(Worker),增加屬性:單位,工齡;重寫工作方法(工人的工作是……自己想想吧)。

3)根據學生類,派生一個學生干部類(StudentLeading),增加屬性:職務(job);增加方法:開會(meeting)。

4)編寫主類分別對上述3類具體人物進行測試。

編碼規范2分;類定義2分;其他8分(其中題目要求的每個功能實現各2分)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM