?考試時間:120 分鐘?
?總分:100 分?
一、選擇題(每題 2 分,共 30 分)
1.以下哪個不是 Java 的關鍵字?
A. final
B. sizeof
C. static
D. void
2.以下代碼輸出結果是?
System.out.println(5 / 2);
A. 2
B. 2.5
C. 2.0
D. 編譯錯誤
3.以下關于繼承的說法正確的是:
A.子類可以繼承父類的構造方法
B. 子類可以訪問父類的 private 成員
C. 子類可以重寫父類的私有方法
D. Java支持多繼承
4.以下代碼的輸出是?
String a = "hello";
String b = new String("hello");
System.out.println(a == b);
A. True
B. false
C. 編譯錯誤
D. 運行時異常
5.以下代碼的輸出是?
int[] arr = {1, 2, 3};
System.out.println(arr[3]);
A. 0
B. null
C. 編譯錯誤
D. 拋出 ArrayIndexOutOfBoundsException
6.以下代碼的輸出是?
int x = 10;
int y = 0;
if(y >= 0 & x / y >= 0)
{System.out.print(y - x);
}
else
{System.out.print(y + x);
}
A. 10
B. -10
C. ArithmeticException
D. 0
7.Java語言的特點不包括:
A. 面向對象
B. 平臺無關性
C. 指針操作
D. 自動內存管理
8.下列代碼輸出結果是:
int x = 5;
int y = --x;
System.out.println(x++);
System.out.println(++x);
System.out.println(--y);
A. 4,5,6
B. 4,6,3
C. 5,6,4
D. 6,5,5
9.正確的三元運算符用法:
A. result = a > b ? true : false;
B. result = a > b ? “true” ; “false”;
C. result = a > b ? true; false;
D. result = a > b ? “true” : “false”;
10.Java內存管理采用:
A. 手動內存分配
B. 垃圾回收機制
C. 智能指針
D. 引用計數
11.下面正確的變量名是:
A. 2variable
B. public
C. _value
D. class
12.switch語句支持的數據類型不包括:
A. byte
B. String
C. boolean
D. enum
13.以下哪種不是合法的訪問修飾符?
A. private
B. default
C. protected
D. public
14.以下代碼的輸出結果是什么?
int a = 10;
int b = 7;
System.out.println(a++ % --b);
System.out.println(++a / b);
A. 4,2
B. 3,1
C. 4,3
D. 3,3
15.以下代碼的輸出結果是什么?
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
for (Integer num : list) {if(num == 2){list.remove(num);}
}
System.out.println(list);
A. [1,2,3]
B. [2,3]
C. [1,3]
D. 運行報錯
二、填空題(每空 2 分,共 20 分)
1.Java 程序運行的入口方法是_________________________。
2.使用_________________________________關鍵字聲明包。
3.若 try 塊中拋出異常,程序會跳轉到______________塊執行。
4.Java所有類的基類是_______________________________。
5.@Override注解的作用是 ___________________________。
6.下面方法中有________________________________處錯誤。
public int Run()
{String name;if(name.equals("張三")){System.out.print("我是張三!")}double num = 0;int age = num;int times = 100 / age;
}
7.值類型存儲在內存的__________________________。
8.float f = 3.14; 需要改為 float f = ______ 才能通過編譯。
9.Integer和 int的自動轉換稱為 ___________________。
10. 判斷閏年平年的代碼:
private bool isLeapYear(int year)
{return _______________________________________;
}
三、編程題(共50分)
1.面向對象(10分)
設計Animal類:
(1) 包含name(名字) 、age(年齡)
(2) 方法: Eat 打印吃的食物, Bark: 打印動物的叫聲
(3) 設計繼承自Animal的狗(Dog),分別重寫Eat(打印”吃骨頭”)和Bark(打印”汪汪”)方法,新增方法:Use(打印”看家護院”);
(4) 設計繼承自Dog的寵物狗(PetDog),重寫Eat(打印”吃狗糧”)和Use(打印”陪伴主人”)方法;
2.功能實現(15分)
(1) 輸入任意一段英文句子,句子只允許使用的標點符號 嘆號:”!” 逗號:”,” 句號:”.”
(2) 分別統計每個字符出現的次數,打印每個字符以及最終的出現次數;
(3) 統計句子有多少個單詞;
(4) 統計有多少個標點符號
3.完善寫出輸出斐波那契數列(1,1,2,3,5,7,11,…)5分)
要求:
(1) 參數為:指定的項數
(2) 使用循環實現
(3) 輸出格式:1,1,2,3,5(每行5個數字)
(4) 禁止使用遞歸
private void print_Fibonacci(int number)
{}
4.身份信息提取(5分)
要求:
(1) 輸入一個18位的身份證號
(2) 分析出出生日期,輸出格式:yyyy年mm月dd日
(2) 計算出年齡,并輸出年齡
5.給一個整數數組nums,其中可能包含重復元素,請你返回,所有的不重復子集(15分)
public List<List<Integer>> subsetsWithDup(int[] nums)
{}
參考答案:地址