# 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课 主流框架