Java程序設計試題及答案-JAVA程序設計習題集
Java程序設計知識包括Java語言的基礎語法、結構化程序設計、面向對象程序設計。以下是由陽光網小編整理關于Java程序設計試題的內容,希望大家喜歡!
Java程序設計試題及答案(一)
一、判斷題。判斷下列各題是否正確,若正確,在()內打“√”,否則打“×”。
1、當前路徑的標識是“.”。 √
2、java命令不區分大小寫,而javac命令區分大小寫。×
3、說明或聲明數組時不分配內存大小,創建數組時分配內存大小。√
4、強制類型轉換運算符的功能是將一個表達式的類型轉換為所指定的類型。√
5、類是一種類型,也是對象的模板。√
6、Java語言會自動回收內存中的垃圾。√
7、IOException必須被捕獲或拋出。√
二、不定項選擇題。
1、以下關于編寫、編譯、運行Java 程序的步驟中,錯誤的是(BE)。
A、用link 將二進制目標碼文件連接成可執行文件
B、用javac 將java 源文件編譯成二進制目標碼文件
C、用java 命令運行編譯過的java 程序
D、用文本編輯器編寫java 源文件
E、用javac 命令編譯java 源文件
2、下面關于Java Application 程序結構特點描述中,錯誤的是(D )。
A、一個Java Application程序由一個或多個文件組成,每個文件中可以定義一個或多個類,每個類由若干個方法和變量組成
B、Java程序中聲明有public類時,則Java程序文件名必須與public類的類名相同,并區分大小寫,擴展名為.java
C、組成Java Application程序的多個類中,有且僅有一個主類
D、一個.java文件中定義多個類時,允許其中聲明多個public類
3、以下關于中斷控制語句的描述錯誤的是(D)。
A、break 語句用于中斷當前的程序塊,如for 結構塊等的執行
B、continue 停止繼續執行下面的語句,直接跳回循環起始位置
C、return 用于退出整個子程序
D、break 用于強行退出循環,不執行循環中剩余的語句
E、在一個函數中不管有沒有返回值,都需要return 語句來退出函數
4、以下程序的執行結果是什么?(B)
int[] myArray=new int[3];
try{
for (int i=0; i <= myArray.length; i++){
myArray[i]=i*3 ;
System.out.println("myArray 數組的第"+ i +"個元素的值是"+myArray[i]);
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("數組下標越界");
}
A、程序出現異常,屏幕提示“數組下標越界”
B、程序執行,顯示數組中每個元素的值,最后顯示“數組下標越界”
C、程序正常執行結束,屏幕上顯示數組中每個元素的值
D、程序編譯出錯
5、對象的有效期有多長?(B)
A、與引用變量的有效期相同,當引用變量的有效期結束時,對象也自動消失
B、從對象創建時開始,直到沒有任何引用變量指向該對象時,對象失去作用,被自動回收
C、從對象創建時開始,直到編程人員用“delete”關鍵字刪除對象為止
D、從對象創建時開始,直到程序結束
6、關于類的構造方法,以下正確的是(BC)。
A、同一個類可以有幾個構造方法,各構造方法的參數必須不同
B、同一個類可以有幾個構造方法,各構造方法的參數必須相同
C、當創建一個對象時,需要指明是否調用該對象的構造方法
D、構造方法的名稱與類的名稱相同
E、當創建一個對象時,該對象的構造方法會被自動調用
7、下列關于子類繼承父類的成員描述中,錯誤的是(C )。
A、當子類中出現成員方法頭與父類方法頭相同的方法時,子類成員方法覆蓋父類中的成員方法
B、方法重載是編譯時處理的,而方法覆蓋是在運行時處理的
C、子類中繼承父類中的所有成員都可以訪問
D、子類中定義有與父類同名變量時,在子類繼承父類的操作中,使用繼承父類的變量;子類執行自己的操作中,使用自己定義的變量
8、下列關于繼承性的描述中,錯誤的是(C )。
A、一個類可以同時生成多個子類
B、子類繼承了父類中除私有的成員以外的其他成員
C、Java支持單重繼承和多重繼承
D、Java通過接口可使子類使用多個父類的成員
9、關于實現接口中的方法,哪些敘述是正確的?(B)
A、類中應當實現接口中的所有方法,但方法參數可以有所不同
B、類中應包括所有接口中方法,并且方法名、返回值的類型、方法參數的個數、名稱、類型都必須與接口中的對應方法相一致
C、類只能實現接口所提供的方法,而不能定義其他的方法
D、類只能實現接口的方法,而不能使用接口中的常量
10、關于抽象類的說法中正確的有(CD)。
A、只有子類覆蓋了父類的所有抽象方法之后,這個子類才不是抽象類
B、抽象類只有方法,沒有屬性 C、抽象類的所有方法都是抽象方法
D、帶有抽象方法的類為抽象類 E、抽象類不能創建對象
11、Java內部如何利用"+"號把字符串String連接在一起?(B)
A、"+"相當于append函數,在StringBuffer對象的后面添加字符串
B、Java在用"+"號進行字符連接時,是新建一個StringBuffer對象,用它來連接所有字符串,然后再轉回String對象.
C、"+"號相當于append 函數,在String對象的后面添加字符串
D、只有String對象才用"+"連接符,StringBuffer對象、整數、浮點數等都不能使用"+"連接符
12、如果下列的方法能夠正常運行,在控制臺上將顯示什么?(ACD)
public void example(){
try{
unsafe();
System.out.println("Test1");
}catch(SafeException e){
System.out.println("Test 2");
}finally{
System.out.println("Test 3");
}
System.out.println("Test 4");
}
A 、Test 1 B、 Test 2 C、 Test 3 D、 Test 4
三、簡答題。
1、為什么說構造方法是一種特殊的方法?特殊在哪里?構造方法什么時候執行?被誰調用?
答:在java語言中,構造函數又稱構造方法。特殊性在于,與普通方法的區別是,他與類名相同,不返回結果也不加void返回值。構造函數的作用是初始化對象,即在創建對象時被系統調用(與普通方法不同,程序不能顯示調用構造函數)。構造函數還能夠被重載,即可以傳入參數,當程序中包含有帶參的構造函數時,系統將不會再提供的無參構造函數。
構造函數特點:沒有函數返回值,構造函數名與類名相同;當創建類對象的時候調用其對應的構造方法去創建
2、Java的異常處理塊的形式是什么樣?
答:用戶程序使用throw關鍵字拋出異常。系統定義的異常由系統在合適的時刻自動拋出。
四、編程題。
1、給出一百分制成績,要求輸出成績等級''A'',''B'',''C'',''D'',''E''。90分以上的為''A'',80~89分為''B'',70~79分為''C'',60~69為''D'',60分以下為''E''。
#include <stdio.h>
int main()
{ int s;
printf("請輸入一個成績:");
scanf("%d", &s);
if(s>100 || s < 0)
{
printf("輸入了一個錯誤的成績。\n");
return 1;
}
char ch;
switch(s/10)
{
case 10:
case 9: ch = 'A'; break;
case 8: ch = 'B'; break;
case 7: ch = 'C'; break;
case 6: ch = 'D'; break;
default:
ch = 'E'; break;
}
printf("您輸入的成績等級為:%c\n", ch);
return 0;
2、定義—個類Rectangle代表矩形,為矩形定義getLength方法(獲得矩形的長度)、getWidth方法(獲得矩形的寬度)、setLength方法(設置矩形的長度)、setWidth方法(設置矩形的'寬度)、getArea方法(求矩形的面積)和toString方法(顯示矩形的格式),為矩形派生出一個子類Square代表正方形,并對getArea和toString進行重寫。并編寫程序進行測試。
public class Rectangle {
// top, left 左上角那個頂點的坐標
// width: 寬
// heigth: 長
private double top, left, width, height;
// 構造函數
public Rectangle(double top, double left, double width, double height) {
this.top = top;
this.left = left;
this.width = width;
this.height = height;
}
// 改變寬,高,即改變矩形寬高
public void size(double width, double height) {
this.width = width;
this.height = height;
}
// 計算面積,寬×高
public double area() {
return width * height;
}
//求面積
public double getMianJi(int mx,int my){
return Point.getDistance(pointA, pointB)*Point.getDistance(pointB, pointC);
}
3、卡車要裝載一批貨物,貨物有三種商品:電視、計算機和洗衣機。需要計算出大貨車承載的3種貨物的重量。要求有一個ComputeWeight接口,該接口中有一個抽象方法:
public double computeWeight();
設計3個實現接口的類:Television, Computer, WashMachine。這三個類通過實現接口給出自重。
定義一個Car類,該類用ComputeWeight接口類型的數組作為成員,那么該數組的單元可以存放Television, Computer, WashMachine對象的引用。
設計程序能輸出Car對象所裝載的貨物的總重量。
提示:可以把實現某接口的類創建的對象的引用賦值給該接口聲明的接口變量。
class Television implements Compute
Weight{
private double weight;
private double
//override
public double computeWeight(){
return this.weight;
}
class Car
{
public:
Car();
Car(int Television, int Computer int WashMachine );
private:
int Television;
int Computer;
int WashMachine;
}
>>>下一頁更多精彩“Java程序設計試題及答案”