第一部分:选择题 (30分)
选择唯一正确答案
1
以下哪个是Java有效的变量声明?
正确答案:C
解析:Java变量命名规则:只能包含字母、数字、下划线和美元符,不能以数字开头,不能使用保留字。C选项符合规则。
解析:Java变量命名规则:只能包含字母、数字、下划线和美元符,不能以数字开头,不能使用保留字。C选项符合规则。
2
表达式 10 + 20 / 5 * 2 的结果是?
正确答案:B
解析:运算符优先级:先乘除后加减。20/5=4,4*2=8,10+8=18。
解析:运算符优先级:先乘除后加减。20/5=4,4*2=8,10+8=18。
3
以下代码的输出结果是什么?
int x = 5;
System.out.println(x++ + ++x);
正确答案:C
解析:x++ 先使用x的值5,然后x变为6;++x 先增加x为7,然后使用7;5+7=12。
解析:x++ 先使用x的值5,然后x变为6;++x 先增加x为7,然后使用7;5+7=12。
4
以下哪个循环会至少执行一次?
正确答案:C
解析:do-while循环先执行循环体,再检查条件,因此至少执行一次。
解析:do-while循环先执行循环体,再检查条件,因此至少执行一次。
5
以下代码的输出结果是什么?
int num = 10;
if (num > 5) {
System.out.print("A");
} else if (num > 8) {
System.out.print("B");
} else {
System.out.print("C");
}
正确答案:A
解析:num=10满足第一个条件(num>5),执行后不再检查后续条件。
解析:num=10满足第一个条件(num>5),执行后不再检查后续条件。
6
以下数组声明正确的是?
正确答案:B
解析:正确语法是 int[] arr = new int[5]; 或 int arr[] = new int[5];
解析:正确语法是 int[] arr = new int[5]; 或 int arr[] = new int[5];
第二部分:编程题 - BMI计算器 (40分)
编写一个Java程序计算身体质量指数(BMI)
需求说明
身体质量指数(BMI)是国际上常用的衡量人体肥胖程度和是否健康的重要标准
1
BMI计算公式
BMI = 体重(kg) / (身高(m) * 身高(m))
例如:身高1.75m,体重70kg,BMI = 70 / (1.75 * 1.75) = 22.86
2
健康状态分类
BMI范围 | 分类 |
---|---|
BMI < 18.5 | 体重过轻 |
18.5 ≤ BMI < 24 | 正常体重 |
24 ≤ BMI < 28 | 超重 |
BMI ≥ 28 | 肥胖 |
3
程序要求
- 从控制台读取用户输入的身高(米)和体重(千克)
- 计算BMI值并保留2位小数
- 根据BMI值判断健康状态
- 输出BMI值和健康状态建议
- 使用Scanner类获取输入
- 使用printf格式化输出
4
示例输出
请输入您的身高(米):
1.75
请输入您的体重(千克):
70
您的BMI值为: 22.86
健康状态: 正常体重
编写BMI计算器
在下方代码编辑区完成程序:
import java.util.Scanner;
public class BMICalculator {
public static void main(String[] args) {
// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
// 获取用户输入
System.out.print("请输入您的身高(米): ");
double height = scanner.nextDouble();
System.out.print("请输入您的体重(千克): ");
double weight = scanner.nextDouble();
// 计算BMI
double bmi = weight / (height * height);
// 格式化输出BMI值
System.out.printf("您的BMI值为: %.2f%n", bmi);
// 判断健康状态
String status;
if (bmi < 18.5) {
status = "体重过轻";
} else if (bmi < 24) {
status = "正常体重";
} else if (bmi < 28) {
status = "超重";
} else {
status = "肥胖";
}
System.out.println("健康状态: " + status);
// 关闭Scanner
scanner.close();
}
}
程序输出将显示在这里...
实现提示
- 使用nextDouble()方法读取浮点数输入
- 注意处理输入异常(本题可不考虑)
- 使用System.out.printf控制小数位数
- 使用if-else if-else结构进行多条件判断
第三部分:代码填空题 (30分)
在空白处填写正确代码使程序完整
1
计算两个整数的和与差
public class Calculate {
public static void main(String[] args) {
int a = 15;
int b = 7;
// 计算和
int sum = ;
// 计算差
int difference = ;
System.out.println("和: " + sum);
System.out.println("差: " + difference);
}
}
参考答案:
第一空:a + b
第二空:a - b
第一空:a + b
第二空:a - b
2
判断数字是否为偶数
import java.util.Scanner;
public class EvenNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数: ");
int number = ;
// 判断是否为偶数
if () {
System.out.println(number + " 是偶数");
} else {
System.out.println(number + " 是奇数");
}
scanner.close();
}
}
参考答案:
第一空:scanner.nextInt()
第二空:number % 2 == 0
第一空:scanner.nextInt()
第二空:number % 2 == 0
3
使用循环输出数字
public class LoopExample {
public static void main(String[] args) {
// 使用for循环输出1到5
(int i = 1; ; i++) {
System.out.println(i);
}
}
}
参考答案:
第一空:for
第二空:i <= 5
第一空:for
第二空:i <= 5