第9章测试 - Java输入和输出

测试您对Scanner输入和System.out输出的掌握程度

题目数量

10道题

建议时间

15分钟

难度等级

初级

及格分数

70分

1
以下哪个是创建Scanner对象的正确方式?

解析

创建Scanner对象需要传入输入源,System.in表示标准输入(键盘输入)。正确语法是:Scanner scanner = new Scanner(System.in);

2
以下代码的输出结果是什么?
System.out.print("Hello "); System.out.print("World"); System.out.println("!");

解析

print()方法不换行,println()方法会在输出后换行。所以输出是:Hello World!(在同一行)

3
Scanner的哪个方法用于读取整行文本(包含空格)?

解析

nextLine()方法读取整行文本直到遇到换行符,包括空格。而next()方法只读取到第一个空格为止。

4
以下printf语句的输出结果是什么?
String name = "张三"; int age = 25; System.out.printf("姓名: %s, 年龄: %d", name, age);

解析

printf方法会将格式符替换为对应的值:%s替换为字符串"张三",%d替换为整数25。

5
以下代码可能出现什么问题?
Scanner scanner = new Scanner(System.in); System.out.print("输入年龄: "); int age = scanner.nextInt(); System.out.print("输入姓名: "); String name = scanner.nextLine();

解析

nextInt()只读取数字,不消费换行符。当nextLine()执行时,会读取到剩余的换行符,导致读取到空字符串。解决方法是在nextInt()后添加scanner.nextLine()清除缓冲区。

6
以下哪个格式符用于输出浮点数?

解析

%f用于格式化浮点数,%d用于整数,%s用于字符串,%c用于字符。可以使用%.2f来控制小数位数。

7
以下代码的输出结果是什么?
double price = 123.456; System.out.printf("价格: %.2f元", price);

解析

%.2f表示保留2位小数,123.456会四舍五入为123.46。

8
Scanner使用完毕后应该怎么做?

解析

Scanner使用完毕后应该调用close()方法释放资源,这是良好的编程习惯。

9
以下哪个方法可以检查Scanner是否还有下一个整数输入?

解析

hasNextInt()方法用于检查下一个输入是否为整数,这在输入验证中很有用。hasNext()只检查是否有下一个输入,不检查类型。

10
以下代码的输出结果是什么?
System.out.printf("%10s|", "Java"); System.out.printf("%-10s|", "Java");

解析

%10s表示右对齐,总宽度10个字符;%-10s表示左对齐,总宽度10个字符。"Java"有4个字符,所以会补6个空格。