《 Java程序設計 》課程試題 一、單項選擇題(20題;每題2分,共40分) 1、若數組a定義為int[][]a=new int[3][4],則a是___。 A)一維數組 B)二維數組 C)三維數組 D)四維數組 答案:B (難度系數C 知識點: 數組) 2、 Java語言使用的字符碼集是____。 A)Unicode B)BCD C)DCB D)ASCⅡ 答案:A (難度系數C 知識點:編碼) 3、下列關於Java Application程序特點的描述中,錯誤的是 ___。 A) 該程序只能是一個名字與主類名相同的文件組成。 B)該程序中僅有一個主方法,並被包含在某個類中。 C) 該程序中沒有不屬於某個類的方法。 D)該程序實際上是一個類串。 答案:D (難度系數C , 知識點:JAVA語言特點) 4、下列屬於Java合法的一組標識符是_____。 A)void define "ABC" _sys_tea B)If _123 $points myName C) &5678 class case #time D)DO +static 25c My_name 答案:B (難度系數C , 知識點:JAVA語言標識符) 5、在Java中,關鍵字_____使類不能派生出子類。 A) final B)public C)volatile D)native 答案:A (難度系數A , 知識點:繼承) 6、以下關於循環語句描述正確的是___。 A) for循環不可能產生死循環 B)while循環不可能產生死循環 C) for循環不能嵌套while循環 D) 即使條件不滿足do……while循環體內的語句也至少執行一次 答案:D (難度系數B)知識點:循環 7、以下對選擇語句的描述錯誤的是___。 A)根據某一條件重復執行一部分代碼直到滿足終止循環條件為止 B) 可以根據條件控制程序流程,改變程序執行的順序 C)選擇語句可以嵌套使用 D)當條件滿足時就會執行相應的語句 答案:A (難度系數 C)知識點:選擇結構 8、Java中___類提供了隨機訪問文件的功能. A)RandomAccessFile B)RandomFile C)File D)AccessFile 答案:A (難度系數B)知識點:數據流 9、實現一個繼承接口Runnable的類需要實現___方法。 A) start B)run C) wait D)paint 答案:B (難度系數B)知識點:多線程 10、可以改變容器布局的語句是___。 A)addLayout(myLayout) B)layout(myLayout) C) setLayout(myLayout) D)setLayoutManager(myLayout) 答案:C (難度系數B)知識點:GUI編程 11、下列代碼的輸出是______。 public class test{ public static void main(String args[]){ System.out.print("IBM\n012\63ABC\\".length( )); } } A) 12 B) 13 C) 14 D) 15 答案 A (難度系數C 知識點: 字符串) 12、下列關於構造方法的敘述中,錯誤的是___。 A)Java語言規定構造方法名與類名必須相同 B)Java語言規定構造方法沒有返回值,但不用void聲明 C)Java語言規定構造方法不可以重載 D)Java語言規定構造方法只能通過new自動調用 答案:C (難度系數B)知識點:構造方法 13、 關於被私有訪問控制符private修飾的成員變量,以下說法正確的是___。 A)可以被三種類所引用:該類自身、與它在同一個包中的其他類、在其他包中的該類的子類 B)可以被兩種類訪問和引用:該類本身、該類的所有子類 C)只能被該類自身所訪問和修改 D)只能被同一個包中的類訪問 答案:C (難度系數B)知識點:類的繼承 14、以下語句正確的是___。 A) x+1=5; B) i++=1; C) a++b=1; D) x+=1; 答案:D (難度系數B)知識點:表達式 15、以下結果為真(true)的是___。 A)10>’a’ B)’a’>20 C) !true D)(3<5) && (4>10) 答案:B (難度系數B)知識點:表達式 16、int a=’2’; a的值是___。 A)1 B)50 C)49 D)2 答案:B (難度系數B)知識點:表達式 17、下面選項中,___不可以用作變量名的首字符。 A)字母 B)下划線(_) C)數字 D)美元符號(¥) 答案:C (難度系數C)知識點:變量 18、 在HTML中,用________標簽來強制顯示Applet。 A) name,height,width B)codebase, height,width C) code,name D) code, height,width 答案:D (難度系數B)知識點:小應用程序 19、在JAVA編程中,基於線程的多任務處理環境中,執行特定任務的可執行代碼的最小單位是__ _____。 A)進程 B)線程 C)應用程序 D)服務 答案:B (難度系數A,知識點:線程) 20、int 型 public 成員變量 MAX_LENGTH,該值保持為常數100,則定義這個變量的語句是____。 A)public int MAX_LENGTH=100 B)final int MAX_LENGTH=100 C)public const int MAX_LENGTH=100 D)public final int MAX_LENGTH=100 答案:D;(難度系數:C;知識點:語法基礎) 二、填空題(10題;每題2分,共20分) 1、表達式1/2*3的結果是____。 答案:0 (難度系數 B)知識點:表達式 2、定義一個包含7個元素的數組a,則該數組的最后一個元素是 。 答案:a[6] (難度系數C)知識點:數組 3、在Java中只能實現單繼承(Java不支持多重繼承),但可通過 實現多重繼承。 答案:接口 (難度系數 B)知識點:接口 4、 Applet的生命周期是有init()、start()、stop()、destroy()這4個方法構成的,在程序執行過程中, 方法只被調用執行一次,但 start()方法可以多次被調用執行。 答案:init( ) (難度系數B)知識點:小應用程序 5、在定義類時,指明類成員的權限修飾符有 、 和 。 答案public protected private 難度系數B 知識點:類的定義 6 已知:int a[ ]={2,4,6,8}; 則:表達式(a[0]+=a[1])+ ++a[2]值為_________ 答案:_13_ (難度系數B 知識點:數組) 7 JDK提供的編譯器是___。 答案:javac.exe (難度系數B)知識點:JAVA簡介 8 設 x = 2 ,則表達式 ( x + + )/3 的值是 。 答案:0 (難度系數 B)知識點:表達式 9 構造方法只能通過 運算符調用,用戶不能直接調用。 答案:new (難度系數 B)知識點:構造方法 10線程同步執行過程中,wait()方法與 方法是匹配使用,否則易造成死鎖。 答案:notify (難度系數 A)知識點:線程同步 三、判斷題(10題;每題1分,共10分) 1. ( )由繼承性可知,程序中子類擁有的成員數目一定大於等於父類擁有的成員數目。 答案:錯 難度系數: C 知識點:類繼承 2.( )注釋的作用是使程序在執行時在屏幕上顯示//之后的內容。 答案:錯 難度系數: C 知識點:函數注釋 3.( )在異常處理中總是將可能產生異常的語句放在try塊中,用catch子句去處理異常,而且一個try塊之后只能對應一個catch語句。 答案:錯 難度系數: B 知識點:異常處理 4. ( )Java是區分大小寫的語言,關鍵字的大小寫不能搞錯,如果把類class寫成Class或者CLASS,都是錯誤的。 答案:對 (難度系數B)知識點:關鍵字 5.( )JAVA語言對內存的釋放是采用垃圾自動回收機制。JAVA虛擬機自動判斷並收集“垃圾”,但一般不立即釋放它們的存儲空間。 答案:對 (難度系數B)知識點:內存回收 6.( )子類可以繼承父類所有的成員變量和成員方法。 答案:錯 (難度系數B)知識點:繼承 7.( )java程序是由若干個類定義組成的。 答案 對 難度系數 C 知識點:程序結構 8.( )在面向對象方法中,類的實例稱為對象。() 答案:對;難度系數:C;知識點:面向對象基礎。 9.( )即使一個類中未顯式定義構造函數,也會有一個缺省的構造函數,缺省的構造函數是無參的,函數體為空。 答案:對 難度系數: C 知識點:構造函數 10.()Java程序里,創建新的類對象用關鍵字new,回收無用的類對象使用關鍵字free。 答案:錯 難度系數: C 知識點:類實例化 四、程序填空題(1題;每題5分,共5分) 1.以下為一個java的完整程序,它定義了一個類Car,並在程序中創建了一個該類的對象DemoCar,調用該對象的set_number方法設置車號屬性為3388,調用該對象的show_number方法輸出車號。 //Car.java class Car { int car_number; void set_number(int car_num) { car_number=car_num ;} void show_number() { System.out.println(“My car No. is :”+car_number); } } } //CarDemo.java class CarDemo { public static void main(String args[]) { Car Democar= (1) ;//構造一輛車 DemoCar. (2) ; //設置車號為3388 DemoCar. (3) ; //顯示車號 } } 難度系數B 知識點:JAVA類特性 答案:(1)new Car() (2)set_number(3388) (3)show_number() 五、讀程序寫結果(1題;每題5分,共5分) 1.寫出下列程序在控制台窗口中的輸出結果。 public class J_Hanoi { public static void mb_hanoi(int n, char start, char temp, char end) { if (n<=1) System.out.println("將盤從" + start + "移到" + end); else { mb_hanoi(n-1, start, end, temp); System.out.println("將盤從" + start + "移到" + end); mb_hanoi(n-1, temp, start, end); } // if-else結構結束 } // 方法mb_hanoi結束 public static void main(String args[ ]) { mb_hanoi(3, 'S', 'T', 'E'); } } 程序運行結果是: (難度系數 B) 答案:將盤從S移到E 將盤從S移到T 將盤從E移到T 將盤從S移到E 將盤從T移到S 將盤從T移到E 將盤從S移到E 知識點:迭代 六、編程題(2題;每題10分,共20分) 1 從標准輸入(即鍵盤)讀入10個整數存入整型數組a中,然后逆序輸出這10個整數。 難度系數A 知識點:JAVA輸入輸出 答案: import Java.io.* ; public class Reverse{ public static void main(String args[ ]){ int i,n=10 ; int a[ ]=new int[10]; for(i=0;i<n;i++) try { BufferedReader br=newBufferedReader(new InputStreamReader(System.in)); a[i]=Integer.parseInt(br.readLine( )); // 輸入一個整數 } catch (IOException e) { } ; for (i=n-1;i>=0;i--) System.out.print(a[i]+" "); System.out.println( ); } } 2設計雇員Employee類,記錄雇員的情況,包括姓名、年薪、受雇時間,要求定義MyDate類作為受雇時間,其中包括工作的年、月、日,並用相應的方法對Employee類進行設置。編寫測試類測試Employee類。要求使用自己的包。 (難度系數 A 知識點:類的定義 ) 答案:package mypackage.employee; class MyDate{ private int year; private int month; private int day; public MyDate(int year,int month,int day){ this.year=year; this.month=month; this.day=day; } public int getYear(){ return year; } } public class Employee{ private String name; private double salary; private MyDate hireDay; public Employee(String name,double salary,MyDate day){ this.name=name; this.salary=salary; hireDay=day; } public void print(){ System.out.println(name+ ""+salary+""+hireYear()); } public int hireYear(){ return hireDay.getYear(); } } class TestEmployee{ public static void main(String [] args){ Employee a=new Employee("李明",20000,new MyDate(2000,10,1)); Employee b=new Employee("王強",24000,new MyDate(1995,8,12)); a.print(); b.print(); } }