# Java 基礎語法測試
> 考試說明:本次測試卷一共25道測試題,共計100分。考試時間120分鐘。
## 一、選擇題(每題2分)
1. 下列屬于合法的 Java 標識符是(A)
~~~
A. _cat B. 5books C. static D. -3.14
~~~
2. 下列哪一個選項不是 Java 的關鍵字(C)
~~~
A. class B. package C. Void D. static
~~~
3. 已知如下代碼,哪個選項中填寫到(1)(2)位置處,能滿足需求(C)
~~~
public static void main(String[] args) {
// 求數組中偶數的和
(1)
for (int i = 0; i < a.length; i++) {
(2)
sum = sum + a[i];
}
}
}
~~~
~~~
A. (1) int sum; (2) if (a[i] % 2 == 0) {
B. (1) int sum; (2) if (a[i] % 2 != 0) {
C. (1) int sum = 0; (2) if (a[i] % 2 == 0) {
D. (1) int sum = 0; (2) if (a[i] % 2 != 0) {
~~~
4. 下面代碼的輸出結果為(D)
~~~
System.out.println(14 % 5);
~~~
~~~
A. 14 B. 2.8 C. 2 D. 4
~~~
5. 執行下面語句后,b,x,y 的值分別是(B)
~~~
int x = 6, y = 8;
boolean b = x > y && ++x == --y
~~~
~~~
A. true, 6, 8
B. false, 6, 8
C. true, 7, 7
D. fasle 7, 7
~~~
6. 若 `a = 10`,`b = 20`,表示 x 在 a,b 之間的表達式為(A)
~~~
A. x >= a && x <= b
B. x >= a || x <= b
C. a <= x && x <= b
D. a <= x <= b
~~~
7. 若所用變量都已正確定義,以下選項中,非法的表達式是(C)
~~~
A. a != 4 || b == 1 B. 'a' % 5 C. 'a' = 2 / 5 D. 'C' + 35
~~~
8. 以下哪個不是合法的`int`類型字面量的表達方式(D)
~~~
A. 0x34 B. 026 C. 1000 D. 0x23dfL
~~~
9. 關于變量的定義的說法正確的是(B)
~~~
A. n = 3; 表示 n 和 3 相等。
B. int n = 3; 該語句表示定義變量的同時進行初始化。
C. Java 中的變量可以不定義就直接賦值。
D. int 3 = n; 該語句合法。
~~~
10. 關于字符類型,以下說法正確的是(D)
~~~
A. 字符類型常量使用雙引號引起來,如 "D"
B. ASCII 碼可以表示中文
C. 可以將任意整數賦值給字符變量而報錯
D. '@' 是一個字符型字面量的正確表示方式
~~~
11. 關于常量的說法錯誤的是(D)
~~~
A. final 是定義常量的關鍵字
B. 常量一旦定義就不可以改變
C. 常量名中的字母一般都大寫
D. final A = 4; 定義了一個常量 A
~~~
12. 下列哪個不是程序的流程控制結構(B)
~~~
A. 順序結構 B. 嵌套結構 C. 選擇結構 D. 循環結構
~~~
13. 關于選擇結構下列哪個說法是正確的(B)
~~~
A. if 語句和 else 語句必須成對出現
B. if 語句可以沒有 else 語句對應
C. switch 結構中每個 case 語句中必須用 break 語句
D. switch 結構中必須有 default 語句
~~~
14. 已知如下代碼,當`n`為何值時,程序段將只輸出字符串`second`(BC)
~~~
switch (n) {
case 0: {
System.out.println("first");
}
case 1: {}
case 2: {
System.out.println("scecond");
break;
}
defalut: {
System.out.println("end");
}
}
~~~
~~~
A. 0 B. 1 C. 2 D. 以上都可以
~~~
15. 已知如下代碼,則方法調用錯誤的是(D)
~~~
public class Test {
public static int sum(int a, int b) {
return a + b;
}
public static void main(String[] args) {
int m = 5, n = 4;
// 方法調用
}
}
~~~
~~~
A. sum(6, 8); B. sum(m, n); C. sum(0x12, 0x34); D. sum(10L, 30L);
~~~
## 二、代碼閱讀題(每題4分)
1. 以下代碼的輸出結果是(s = 180)
~~~
public static void main(String[] args) {
int s = 0;
int[] arr = {10, 20, 30, 40, 50, 60, 70, 80, 90};
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 3 == 0) {
s += arr[i];
}
}
System.out.println("s = " + s);
}
~~~
2. 以下代碼的輸出結果是(80,2)
~~~
public static void main(String[] args) {
int a = 80;
System.out.println(a++);
int b = (a / 3) % 5;
System.out.println(b);
}
~~~
3. 以下代碼的輸出結果是(i = 5)
~~~
public static void main(String[] args) {
int i = 1;
int j = i++;
if (i == ++j && i++ == j) {
i += j;
}
System.out.println("i = " + i);
}
~~~
4. 以下代碼的輸出結果是(35)
~~~
public static int calc(int temp) {
if (temp > 0) {
return temp * 2;
}
return -1;
}
public static void main(String[] args) {
System.out.println(calc(10) + calc(8) + calc(-10));
}
~~~
5. 以下代碼的輸出結果是(2500)
~~~
public static void main(String[] args) {
int sum = 0;
for (int i = 0; i < 100; i++) {
if (i % 2 == 0) {
continue;
}
sum += i;
}
System.out.println(sum);
}
~~~
## 三、編程題(每題10分)
1. 控制臺輸入0~100之間的整數,當輸入`90~100`時,輸出`A`;輸入`80~90`時,輸出`B`;輸入`70~80`時,輸出`C`;輸入`60~70`時,輸出`D`;輸入`0~60`時,輸出`E`。
~~~
public static void main(String[] args) {
System.out.println("請輸入一個0~100之間的數");
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
if (num < 0 || num > 100) {
System.out.println("輸入數字超出范圍");
} else if (num >= 90) {
System.out.println("A");
} else if (num >= 80) {
System.out.println("B");
} else if (num >= 70) {
System.out.println("C");
} else if (num >= 60) {
System.out.println("D");
} else {
System.out.println("E");
}
}
~~~
2. 控制臺輸入兩個大于0的整數,輸出兩個整數之間的所有質數。
~~~
public static boolean prime(int m) {
boolean flag = true;
for (int i = 2; i < m / 2; i++) {
if (m % i == 0) {
flag = false;
break;
}
}
return flag;
}
public static void judge(int begin, int end) {
for (int i = begin; i <= end; i++) {
if (prime(i)) {
System.out.println(i);
}
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入第一個的數");
int first = scanner.nextInt();
System.out.println("請輸入第二個的數");
int second = scanner.nextInt();
if (first > second) {
judge(second, first);
} else {
judge(first, second);
}
}
~~~
3. 略
4. 已知一個數組(數據類型可自定),將這個逆轉數組。
~~~
public static void reverse(int[] arr) {
for (int i = 0; i < arr.length / 2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
}
~~~
5. 打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等于該數本身。例如:153是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。
~~~
public static void main(String[] args) {
for (int i = 100; i <= 999; i++) {
int x = i % 10;
int y = i / 10 % 10;
int z = i / 10 / 10 % 10;
int num = x * x * x + y * y * y + z * z * z;
if (num == i) {
System.out.println(i);
}
}
}
~~~
- 階段一 Java 零基礎入門
- 步驟1:基礎語法
- 第01課 初識
- 第02課 常量與變量
- 第03課 運算符
- 第04課 選擇結構
- 第05課 循環結構
- 第06課 一維數組
- 第08課 方法
- 第09課 數組移位與統計
- 第10課 基礎語法測試
- 第09課 基礎語法測試(含答案)
- 步驟2:面向對象
- 第01課 類和對象
- 第02課 封裝
- 第03課 學生信息管理
- 第04課 繼承
- 第05課 單例模式
- 第06課 多態
- 第07課 抽象類
- 第08課 接口
- 第09課 內部類
- 第10課 面向對象測試
- 第10課 面向對象測試(含答案)
- 步驟3:常用工具類
- 第01課 異常
- 第02課 包裝類
- 第03課 字符串
- 第04課 集合
- 第05課 集合排序
- 第06課 泛型
- 第07課 多線程
- 第08課 輸入輸出流
- 第09課 案例:播放器
- 第10課 常用工具測試(一)
- 第10課 常用工具測試(一)(答案)
- 第10課 常用工具測試(二)
- 第10課 常用工具測試(二)(答案)
- 階段二 從網頁搭建入門 JavaWeb
- 步驟1:HTML 與 CSS
- 第01課 HTML 入門
- 第01課 HTML 入門(作業)
- 第02課 CSS 入門
- 第02課 CSS 入門(作業)
- 第03課 CSS 布局
- 第03課 CSS 布局(作業)
- 步驟2:JavaScript 與前端案例
- 第01課 JavaScript 入門
- 第01課 JavaScript 入門(作業)
- 第02課 仿計算器
- 第03課 前端油畫商城案例
- 第04課 輪播圖
- 第05課 網頁搭建測試
- 第05課 網頁搭建測試(含答案)
- 步驟3:JavaScript 教程
- 入門
- 概述
- 基本語法
- 數據類型
- 概述
- 數值
- 字符串
- undefined, null 和布爾值
- 對象
- 函數
- 數組
- 運算符
- 算術運算符
- 比較運算符
- 布爾運算符
- 位運算符
- 運算順序
- 語法專題
- 數據類型的轉換
- 錯誤處理機制
- 標準庫
- String
- Date
- Math
- DOM
- 概述
- Document 節點
- 事件
- EventTarget 接口
- 事件模型
- 常見事件
- 階段三 數據庫開發與實戰
- 步驟1:初始數據庫操作
- 第01課 數據類型
- 第02課 表的管理
- 第03課 數據管理
- 第04課 常用函數
- 第05課 JDBC 入門
- 第06課 Java 反射
- 第07課 油畫商城
- 第08課 數據庫基礎測試
- 步驟2:MyBatis 從入門到進階
- 第01課 IntelliJ IDEA 開發工具入門
- 第02課 Maven 入門
- 第03課 工廠模式
- 第04課 MyBatis 入門
- 第05課 MyBatis 進階
- 第06課 商品信息管理
- 第07課 MyBatis 基礎測試
- 步驟3:Redis 數據庫與 Linux 下項目部署
- 第01課 Linux 基礎
- 第02課 Linux 下 JDK 環境搭建及項目部署
- 第03課 Redis 入門
- 階段四 SSM 到 Spring Boot 入門與綜合實戰
- 步驟1:Spring 從入門到進階
- 第01課 Spring 入門
- 第02課 Spring Bean 管理
- 第03課 Spring AOP
- 第04課 基于 AspectJ 的 AOP 開發
- 第05課 JDBC Template
- 第06課 Spring 事務管理
- 第07課 人員管理系統開發
- 第08課 Spring 從入門到進階測試
- 步驟2:Spring MVC 入門與 SSM 整合開發
- 第01課 Spring MVC 入門與數據綁定
- 第02課 Restful 風格的應用
- 第03課 SpringMVC 攔截器
- 第04課 辦公系統核心模塊
- 步驟3:Spring Boot 實戰
- 第01課 Spring Boot 入門
- 第02課 校園商鋪項目準備
- 第03課 校園商鋪店鋪管理
- 第04課 校園商鋪商品管理及前臺展示
- 第05課 校園商鋪框架大換血
- 步驟4:Java 面試
- 第01課 面試準備
- 第02課 基礎面試技巧
- 第03課 Web基礎與數據處理
- 第04課 主流框架