全国计算机二级Java选择题高频真题20道精选与试题解析
全国计算机二级Java选择题高频真题20道精选与试题解析
整理全国计算机等级考试(NCRE)二级 Java 选择题 20 道高频真题与试题解析,涵盖面向对象向上转型、异常链处理、位运算、集合框架、多线程接口及公共基础知识部分。
在线题库练习入口:java.code2ji.cn
1. 二叉树结点与度数关系推导

某二叉树中共有 350 个结点,其中 200 个为叶子结点,则该二叉树中度为 2 的结点数为:
选项:
A. 149
B. 150
C. 199
D. 不可能有这样的二叉树
【正确答案】D
【试题解析】
- 在二叉树中,度为 0 的结点数(叶子结点 N0)与度为 2 的结点数(N2)满足恒等式
N0 = N2 + 1,由此推导N2 = N0 - 1。 - 已知
N0 = 200,则N2 = 200 - 1 = 199。 - 总结点数计算公式为
N = N0 + N1 + N2 = 200 + N1 + 199 = 399 + N1 ≥ 399。 - 题目已知总结点数为 350,小于最小可能的结点数 399,在逻辑上无法构成二叉树。
2. 数组下标越界与异常匹配捕获

下列程序的输出结果是:
public class Test {
public static void main(String[] args) {
int[] array = {2, 4, 6, 8, 10};
int size = 6;
int result = -1;
try {
for (int i = 0; i < size && result == -1; i++) {
if (array[i] == 20) result = i;
}
}
catch (ArithmeticException e) {
System.out.println("Catch---1 ");
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Catch---2 ");
}
catch (Exception e) {
System.out.println("Catch---3");
}
}
}
选项:
A. Catch---1
B. Catch---2
C. Catch---3
D. 以上都不对
【正确答案】B
【试题解析】
- 数组
array长度为 5,合法索引范围为0~4。 for循环终止边界为size = 6。当i = 5访问array[5]时触发ArrayIndexOutOfBoundsException异常。- JVM 按 catch 块自上而下匹配,精确进入
catch(ArrayIndexOutOfBoundsException e)分支并输出Catch---2。
3. 系统软件与应用软件分类

下面属于应用软件的是:
选项:
A. Oracle 数据库管理系统
B. 人事管理系统
C. iOS 操作系统
D. C++ 编译系统
【正确答案】B
【试题解析】
- 系统软件用于管理、监控和维护计算机软硬件资源,包括操作系统、编译系统、数据库管理系统(DBMS)。
- 应用软件针对特定业务领域开发,人事管理系统属于典型的应用软件。
4. 软件规范学术定义

软件是:
选项:
A. 程序、数据和文档的集合
B. 计算机系统
C. 程序
D. 程序和数据
【正确答案】A
【试题解析】
计算机软件的规范定义为:计算机程序、数据及其相关完整文档的集合体。
5. AppletContext 浏览器交互规范

提供 showDocument() 方法,使 Applet 能够请求浏览器访问特定 URL 的类是:
选项:
A. Applet
B. AppletContext
C. JApplet
D. URL
【正确答案】B
【试题解析】
AppletContext接口定义了 Applet 与其宿主浏览器环境之间的交互方法。- 通过调用
AppletContext.showDocument(URL url)方法,可请求浏览器导航至指定 URL。
6. 三目条件运算符求值

阅读下列代码:
public class Test {
public static void main(String args[]) {
System.out.println((2 < 0) ? 10 : 8);
}
}
其运行结果是:
选项:
A. 2
B. 0
C. 10
D. 8
【正确答案】D
【试题解析】
三目表达式 (条件) ? 表达式1 : 表达式2 中,当条件为 false 时返回表达式 2 的求值结果。2 < 0 求值为 false,故输出结果为 8。
7. 树结构度数与总结点数推导

设一棵度为 3 的树,其中度为 2,1,0 的结点数分别为 3,1,6。该树中度为 3 的结点数为:
选项:
A. 1
B. 2
C. 3
D. 不可能有这样的树
【正确答案】A
【试题解析】
- 设树中度为 3 的结点数为 N3。总结点数
N = N3 + N2 + N1 + N0 = N3 + 3 + 1 + 6 = N3 + 10。 - 树的所有结点的总分支数(度数之和)为
3×N3 + 2×3 + 1×1 + 0×6 = 3×N3 + 7。 - 树中总分支数恒等于总结点数减 1,即
3×N3 + 7 = (N3 + 10) - 1,解得2×N3 = 2,即N3 = 1。
8. 接口访问修饰符权限范围

在使用 interface 声明一个接口时,用下面哪个修饰符修饰该接口时,该接口被使用的范围最广:
选项:
A. private
B. protected
C. private protected
D. public
【正确答案】D
【试题解析】
使用 public 修饰符声明的接口具有全局公共访问权限,可被工程中所有包的类访问与实现。
9. String 字符串检索方法

若有语句 String s = "java";,则查找 s 中字母 'a' 最后出现的位置的语句是:
选项:
A. s.lastIndexOf('a');
B. charAt(2);
C. s.indexOf('a');
D. indexOf(s, 'a');
【正确答案】A
【试题解析】
String.lastIndexOf(int ch) 方法从字符串末尾向前逆向查找指定字符最后一次出现的索引位置;indexOf() 用于正向检索首次出现位置。
10. 向上转型与多态赋值

若已有如下类定义:
class Animal { }
class Cat extends Animal { }
class PetCat extends Cat { }
则下列语句中正确的是:
选项:
A. Cat cat = new Animal();
B. PetCat cat = new Animal();
C. Animal animal = new PetCat();
D. PetCat cat = new Cat();
【正确答案】C
【试题解析】
- Java 支持向上转型(Upcasting),即父类引用变量可直接指向子类实例对象。
- 类继承关系为
PetCat -> Cat -> Animal,Animal animal = new PetCat();属于合法的向上转型。
11. for 循环控制变量生命期与终值

下列程序的运行结果是:
public class MyTest {
public static void main(String[] args) {
int i = 0, j = 0;
for (j = 1; j < 100; j++) {
i += j;
}
System.out.println(j);
}
}
选项:
A. 1
B. 99
C. 100
D. 4950
【正确答案】C
【试题解析】
- 控制变量
j在for循环外部声明。 - 当
j = 99执行完循环体后,执行迭代步进j++,j取值变为 100。 - 条件判断
100 < 100为false退出循环,输出System.out.println(j)打印出的数值为100。
12. 按位取反与按位与复合运算

阅读下列代码:
public class Test2005 {
public static void main(String args[]) {
System.out.println(~(0xa5) & 0xaa);
}
}
其运行结果是:
选项:
A. 0xa5
B. 10
C. 0x50
D. 0xaa
【正确答案】B
【试题解析】
- 十六进制
0xa5二进制低 8 位为1010 0101。 - 按位取反
~0xa5低 8 位取值为0101 1010。 - 十六进制
0xaa二进制为1010 1010。 - 按位与运算:
0101 1010 & 1010 1010 = 0000 1010,转换为十进制整数为10。
13. Java 缓冲流类辨析

下列使用了缓冲区的流类是:
选项:
A. BufferedOutputStream
B. PipedInputStream
C. DataOutputStream
D. FileReader
【正确答案】A
【试题解析】
Java I/O 体系中,BufferedOutputStream、BufferedInputStream 等带 Buffered 前缀的包装流均维护了内存缓冲区以优化读写性能。
14. 实体多对多联系度判定

一名员工可以使用多台计算机,每台计算机可由多名员工使用,则实体员工和计算机间的联系是:
选项:
A. 多对多
B. 一对多
C. 一对一
D. 多对一
【正确答案】A
【试题解析】
一名员工可使用多台计算机,一台计算机亦可由多名员工使用,两实体集间各实体均可与对方多个实体建立关联,属于多对多(M:N)联系。
15. 循环控制与 continue 语句分支

下列选项中,不能输出 100 个整数的是:
选项:
A.
for (int i = 0; i < 100; i++)
System.out.println(i);
B.
int i = 0;
do {
System.out.println(i);
i++;
} while (i < 100);
C.
int i = 0;
while (i < 100) {
System.out.println(i);
i++;
}
D.
int i = 0;
while (i < 100) {
i++;
if (i < 100) continue;
System.out.println(i);
}
【正确答案】D
【试题解析】
选项 D 中,在循环体内部当 i < 100 时每次均命中 continue 语句,直接跳过输出语句;仅当 i = 100 时退出循环前执行一次输出,整段代码仅输出一个整数 100。
16. 指令周期概念

计算机完成一条指令所花费的时间称为一个:
选项:
A. 执行时序
B. 存取周期
C. 执行速度
D. 指令周期
【正确答案】D
【试题解析】
CPU 取出一条指令并执行完成该指令所需的全部时间称为指令周期。
17. Runnable 接口与多线程实现

在程序的下划线处应填入的选项是:
public class Test ______ {
public static void main(String args[]) {
Test t = new Test();
Thread tt = new Thread(t);
tt.start();
}
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println("i=" + i);
}
}
}
选项:
A. implements Runnable
B. extends Thread
C. implements Thread
D. extends Runnable
【正确答案】A
【试题解析】
Thread 类的构造函数 Thread(Runnable target) 接收实现了 Runnable 接口的对象。接口实现需使用 implements Runnable 关键字,类中重写 public void run() 方法。
18. List 集合操作与 Collections 聚合方法

下列代码段运行后的结果是:
List<Integer> lis = new ArrayList<Integer>();
lis.add(1);
lis.add(3);
lis.add(5);
lis.remove(0);
lis.add(9);
lis.add(3, 10);
System.out.println(Collections.min(lis));
选项:
A. 0
B. 5
C. 3
D. 1
【正确答案】C
【试题解析】
- 依次执行
add(1), add(3), add(5),列表元素为[1, 3, 5]。 - 执行
remove(0)移除索引 0 处元素 1,列表变为[3, 5]。 - 执行
add(9),列表变为[3, 5, 9]。 - 执行
add(3, 10)在索引 3 处插入元素 10,列表变为[3, 5, 9, 10]。 Collections.min(lis)返回列表当前最小值3。
19. 关系运算符与赋值运算符辨析

下列选项中,不属于关系运算符的是:
选项:
A. >=
B. <
C. !=
D. =
【正确答案】D
【试题解析】
>=、<、!= 为比较操作的关系运算符;= 为变量赋值运算符(相等比较使用 ==)。
20. Swing/AWT paint 方法形参类型

paint() 方法使用什么类型的参数:
选项:
A. Graphics
B. Graphics2D
C. String
D. Color
【正确答案】A
【试题解析】
AWT/Swing 组件重绘方法标准定义为 public void paint(Graphics g),形参类型为 java.awt.Graphics。
在线题库:java.code2ji.cn(支持手机端免配置环境在线答题与自动判分)

浙公网安备 33010602011771号