1、计算机二级 JAVA-167 及答案解析(总分:57.60,做题时间:90 分钟)一、选择题(总题数:36,分数:57.60)1.对鼠标单击按钮操作进行事件处理的接口是_。(分数:1.00)A.MouseListenerB.WindowListenerC.ActionListenerD.KeyListener2.下列关于 Applet 生命周期的说法,正确的是_。(分数:2.00)A.void init()在 Applet 下载前调用B.void start()只在初始化之后调用C.void stop()在关闭浏览器时调用D.stop()总在 void destroy()之前被调用3.下列关于
2、 JDK 目录结构的说法,错误的是(分数:1.00)A.bin 目录下有许多工具B.demo 目录下有各种演示例子C.include 目录下都是库文件D.jre 目录是 Java 程序运行环境的根目录4.如果进栈序列为 e1、e2、e3、e4、e5,则可能的出栈序列是_。(分数:2.00)A.e3、e1、e4、e2、e5B.e5、e2、e4、e3、e1C.e3、e4、e1、e2、e5D.任意顺序5.下列不属于 Swing 的构件是_。(分数:1.00)A.JButtonB.JLabelC.JFrameD.JPane6.鼠标在窗口中移动时,产生的事件是_。(分数:2.00)A.ActionEve
3、ntB.PrintEventC.KeyEventD.MouseEvent7.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。(分数:1.00)A.编译程序B.操作系统C.教务管理系统D.汇编程序8.下列可用作 switch(expression)语句参数的是_。(分数:2.00)A.String sB.Integer iC.boolean bD.int i9.有以下程序: #includestdio.h #define F(X,Y)(X)*(Y) void main() int a=3,b=4; printf(“%d/n“,F(a-,+b); 程序运行后
4、输出的结果是 _ 。(分数:2.00)A.8B.10C.12D.1510.下列程序的执行结果是_。 public classExceptionTest public static void main(String args) Stringdata=“1“,“2.5“; int sum=0; for(int i=1;i=2;i+) try sum=sum+Integer.parseInt(datai) catch(NumberFormatException f) System.out.println(“*“); )catch(Exception e) System.out println(“#“
5、); finally System.out.println(“end“); (分数:1.00)A.*end#endB.endendC.*#D.end#11.javax. swing. Japplet 的父类是_。(分数:2.00)A.java. awt. panelB.java. applet. AppletC.java. awt. frameD.java. awt. Window12.有三个关系 R,S 和 T 如下: R A B C a 1 2 b 2 1 c 3 1 S A B C d 3 2 T A B C a 1 2 b 2 1 c 3 1 d 3 2 其中关系 T 由关系 R 和
6、S 通过某种操作得到,该操作为_。(分数:1.00)A.选择B.投影C交D并13.下列内部类的正确用途是_。 Btnn.addActionListener(new /注册监听器 ActionListener() public void actionPerformed (ActionEvent event) String s=input.getText(); Output.setText(“Hello“+s+“,Welcome You!“); )(分数:2.00)A.用于访问外部类的数据B.用于进行事件处理C.隐藏起来不被同一包中的其他类所见D.生成事件适配器14.下列情况中,不会使线程返回所持
7、有的对象锁的是(分数:2.00)A.当 synchronized()语句块执行完毕B.当调用了线程的 suspend()方法C.当在 synchronized()语句块中出现异常(Exception)D.当持有锁的线程调用该对象的 wait()方法15.下面_可用于处理 Unicode 码。(分数:2.00)A.WriterB.BufferedReaderC.ByteArraylnputStreamD.PipedlnputStream16.Java 虚拟机(JVM)运行 Java 代码时,不会进行的操作是_。(分数:1.00)A.加载代码B.校验代码C.编译代码D.执行代码17.在 Java
8、中,所有类的根类是_。(分数:1.80)A.java. lang. ObjectB.java. lang. ClassC.java. applet. AppletD.java. awt. Frame18.数据流图中带有箭头的线段表示的是_。(分数:1.00)A.控制流B.事件驱动C.模块调用D.数据流19.下列关于 Java 安全性的说法正确的是 _ 。(分数:2.00)A.有严格的访问权限检查B.对程序执行前要检查C.不允许使用指针D.可防止对内存的非法入侵20.当浏览器重新返回到包含 Applet 的页面时调用的方法是_。(分数:1.00)A.start()B.init()C.stop()
9、D.destroy()21.结构化程序设计所规定的三种基本控制结构是_。(分数:2.00)A.输入、处理、输出B.树形、网形、环形C.顺序、选择、循环D.主程序、子程序、函数22.Thread 类的方法中用于修改线程名字的方法是_。(分数:1.80)A.setName()B.reviseName()C.getName()D.checkAccess()23.在 Java Applet 程序中,如果对发生的事件做出响应和处理的时候,应该使用下列_语句。(分数:1.80)A.import java. awt. event. * ;B.import java. io. * ;C.import java
10、. awt. * ;D.import java. applet. * ;24.下列表达式中,类型可以作为 int 型的是_。(分数:1.80)A.“abc“+“efg“B.“abc“+“efg“C.“a“+“b“D.3+“4“25.下列不属于软件调试技术的是 _(分数:2.00)A.强行排错法B.集成测试法C.回溯法D.原因排除法26.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为 90的元素时,查找成功的比较次数为_。(分数:1.80)A.1B.2C.3D.927.下列选项中,用于实现接口的关键字是 _(分数:2.00)A.i
11、nterfaceB.implementsC.abstractD.class28.在文件类提供的方法中,用于创建目录的方法是 _ 。(分数:2.00)A.mkdir()B.mkdirs()C.list()D.listRoots()29.下列叙述中,错误的是 _ 。(分数:1.00)A.接口与类的层次无关B.通过接口说明类所实现的方法C.通过接口可了解对象的交互界面D.接口与存储空间有关30.应用数据库的主要目的是 _ 。(分数:2.00)A.解决数据保密问题B.解决数据完整性问题C.解决数据共享问题D.解决数据量大的问题31.支持子程序调用的数据结构是_。(分数:2.00)A栈B树C.队列D.二
12、叉树32.下面代码中的内部类名是_。 import java.awt*; import javax.swing.*; class TalkingClock public static void main(int interval,final boolean beep) ActionListener listener = new ActionListener() public void actionPerformed(ActionEvent event) . Timer t = new Timer (interval,listener); t.start(); (分数:1.00)A.TimerB
13、.ActionListenerC.listenerD.匿名33.下列程序的运行结果是_。 public class Test public static void main(String args) float i=3.Of; int n=10; System.out.print(i+); System.out.println(“,“+n*i+); (分数:1.00)A.4.0,36.0B.3.0,40.0C.3.0,36.0D.4.0,40.034.循环链表的主要优点是(分数:1.00)A.不再需要头指针了B.从表中任一结点出发都能访问到整个链表C.在进行插入、删除运算时,能更好的保证链表不
14、断开D.已知某个结点的位置后,能够容易的找到它的直接前件35.下列表达式中,类型可以作为 int 型的是_。(分数:1.80)A.“abc“+“efg“B.“abc“+“efg“C.“a“+“b“D.3+“4“36.数据库设计包括两个方面的设计内容,它们是_。(分数:1.80)A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计计算机二级 JAVA-167 答案解析(总分:57.60,做题时间:90 分钟)一、选择题(总题数:36,分数:57.60)1.对鼠标单击按钮操作进行事件处理的接口是_。(分数:1.00)A.MouseListener B
15、.WindowListenerC.ActionListenerD.KeyListener解析:解析 WindowListener 是监听窗口事件的接口;ActionListener 是监听按钮、文本框、列表框等组件的动作事件的接口;KeyLitener 是监听键盘事件的接口。因此,本题选择 A。2.下列关于 Applet 生命周期的说法,正确的是_。(分数:2.00)A.void init()在 Applet 下载前调用B.void start()只在初始化之后调用C.void stop()在关闭浏览器时调用D.stop()总在 void destroy()之前被调用 解析:3.下列关于 JD
16、K 目录结构的说法,错误的是(分数:1.00)A.bin 目录下有许多工具B.demo 目录下有各种演示例子C.include 目录下都是库文件 D.jre 目录是 Java 程序运行环境的根目录解析:解析 本题考查 JDK 目录结构。bin 目录下有编译器、解释器和各种工具,如服务器工具、IDL、package 工具和 jdb 等。jre 目录是 Java 程序运行环境的根目录,它下面有 bin 子目录,包括平台所用工具和库的可执行文件和 DLL 文件;lib 子目录包括 java 运行环境的代码库。lib 目录下都是库文件。demo 目录下有各种演示例子。include 目录下是 Win3
17、2 子目录,都是本地方法文件,选项 C 错误。4.如果进栈序列为 e1、e2、e3、e4、e5,则可能的出栈序列是_。(分数:2.00)A.e3、e1、e4、e2、e5B.e5、e2、e4、e3、e1 C.e3、e4、e1、e2、e5D.任意顺序解析:解析 根据栈先进后出的特点可知 e1 肯定是最后出栈的,因此正确答案为选项 B。5.下列不属于 Swing 的构件是_。(分数:1.00)A.JButtonB.JLabelC.JFrameD.JPane 解析:解析 Swing 常用组件包含 JLabel 组件(标签)、JButton 组件(按钮)、JTextField 组件(单行文本)、JTex
18、tArea 组件(多行文本)、JcheckBox 组件(复选按钮)、JRadioButton 组件(单选按钮)、JComboBox 组件(下拉列表框)、JList 组件(列表)、JTablc 组件(表格)、JTree 组件(树)等。选项 D 中JPane 写错了。选择 D。6.鼠标在窗口中移动时,产生的事件是_。(分数:2.00)A.ActionEventB.PrintEventC.KeyEventD.MouseEvent 解析:解析 属于记忆概念题,固定用法。7.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是_。(分数:1.00)A.编译程序B.操作系统
19、C.教务管理系统 D.汇编程序解析:解析 操作系统属于系统软件,编译程序与汇编程序都属于支撑软件,而教务管理系统是属于应用软件的。8.下列可用作 switch(expression)语句参数的是_。(分数:2.00)A.String sB.Integer iC.boolean bD.int i 解析:解析 switch 多分支选项运算的判别对象必须是 byte、int、short 和 char 这几种类型的原始类型。9.有以下程序: #includestdio.h #define F(X,Y)(X)*(Y) void main() int a=3,b=4; printf(“%d/n“,F(a-
20、,+b); 程序运行后输出的结果是 _ 。(分数:2.00)A.8B.10C.12D.15 解析:10.下列程序的执行结果是_。 public classExceptionTest public static void main(String args) Stringdata=“1“,“2.5“; int sum=0; for(int i=1;i=2;i+) try sum=sum+Integer.parseInt(datai) catch(NumberFormatException f) System.out.println(“*“); )catch(Exception e) System.
21、out println(“#“); finally System.out.println(“end“); (分数:1.00)A.*end#end B.endendC.*#D.end#解析:解析 try.catch.finally.代码块的运行方式是:首先运行 try.中的代码,如果没有发生任何异常,执行完毕 try.中的代码后,执行 finally.中的全部代码;如果执行 try.中的代码时发生异常,在发生异常的语句处停止继续执行,进入 catch.语句块,执行其中的全部代码,执行完毕后,接着执行 finally.中的全部代码。也就是说,无论任何情况,都会执行 finally.中的代码。首先,
22、程序运行至 Integer.parseInt(datai)时会出 NumberFormatException()异常,程序用 trycatch 捕获了这个异常,故而第一次 for 循环时会先输出“*”,然后输出“end”。接下来的程序也有异常,也是先运行 catch.语句块,再运行 finally.中的代码。11.javax. swing. Japplet 的父类是_。(分数:2.00)A.java. awt. panelB.java. applet. Applet C.java. awt. frameD.java. awt. Window解析:解析 javax. swing. Japplet
23、 是 Applet 的直接子类,继承了 Applet 的方法与执行机制。 java. awt. panel 是 java. applet. Applet 的直接父类,java. awt. Window 是 java. awt. frame 的直接父类。12.有三个关系 R,S 和 T 如下: R A B C a 1 2 b 2 1 c 3 1 S A B C d 3 2 T A B C a 1 2 b 2 1 c 3 1 d 3 2 其中关系 T 由关系 R 和 S 通过某种操作得到,该操作为_。(分数:1.00)A.选择B.投影C交D并 解析:解析 选择和投影是对单个关系进行操作,结果是一个
24、关系。交和并运算要求参与运算的表有相同的属性,交运算的结果是两个表的公共部分,并运算是将两个表整合成一个表。13.下列内部类的正确用途是_。 Btnn.addActionListener(new /注册监听器 ActionListener() public void actionPerformed (ActionEvent event) String s=input.getText(); Output.setText(“Hello“+s+“,Welcome You!“); )(分数:2.00)A.用于访问外部类的数据B.用于进行事件处理 C.隐藏起来不被同一包中的其他类所见D.生成事件适配器解
25、析:解析 题目中所示的类,是在为按钮事件添加相应的操作,其实质是进行事件的处理操作。14.下列情况中,不会使线程返回所持有的对象锁的是(分数:2.00)A.当 synchronized()语句块执行完毕B.当调用了线程的 suspend()方法 C.当在 synchronized()语句块中出现异常(Exception)D.当持有锁的线程调用该对象的 wait()方法解析:解析 本题考查 Java 线程中对象的加锁及其操作。对象加锁的使用非常灵活,一定要注意。 对象的锁在如下几种情况下由持有线程返还:当 synchronized()语句块执行完后,所以选项 A 错误;当在 synchroniz
26、ed()语句块中出现异常(exception),所以选项 B 错误;当持有锁的线程调用该对象的wait()方法,此时该线程将释放对象的锁,所以选项 D 错误。而当调用了线程的 suspend()方法只是使线程暂时停止执行,可以使用其他线程调用 resume()方法恢复执行,所以选项 B 正确。15.下面_可用于处理 Unicode 码。(分数:2.00)A.WriterB.BufferedReader C.ByteArraylnputStreamD.PipedlnputStream解析:16.Java 虚拟机(JVM)运行 Java 代码时,不会进行的操作是_。(分数:1.00)A.加载代码
27、B.校验代码C.编译代码D.执行代码解析:解析 Java 中,类加载器把一个类装入 Java 虚拟机需要经过 3 个步骤来完成:装载、链接、初始化,其中链接又分为校验、准备、解析过程。装载:查找和导入类和接口的.class 文件。连接:检查装入.class 文件的正确性,然后.Java 虚拟机为变量分配内存,设黄默认值。初始化:把符号引用变成直接引用。由以上分析,可以看出虚拟机(JVM)运行时不需要加载代码,选择 A。17.在 Java 中,所有类的根类是_。(分数:1.80)A.java. lang. Object B.java. lang. ClassC.java. applet. App
28、letD.java. awt. Frame解析:解析 本题考查考生对 Java 类的掌握。在 Java 中 java.lang 包封装着所有编程应用的基本类。Object 是所有类的根,它所包含的属性和方法被所有类集成。Class 类是由编译器自动生成对象的一个特殊类,它伴随每个类。选项 C 和选项 D 都是普通类。18.数据流图中带有箭头的线段表示的是_。(分数:1.00)A.控制流B.事件驱动C.模块调用D.数据流 解析:解析 数据流图的基本符号的意思:矩形表示数据的外部实体;圆角的矩形表示变换数据的处理逻辑;少右面的矩形表示数据的存储;箭头表示数据流。19.下列关于 Java 安全性的说
29、法正确的是 _ 。(分数:2.00)A.有严格的访问权限检查B.对程序执行前要检查 C.不允许使用指针D.可防止对内存的非法入侵解析:解析 本题考查 Java 的安全性特点。面向网络、分布式的 Java 语言,对非法入侵的防范是非常重要的,Java 语言提供充分的安全保障,在运行程序时,有严格的访问权限检查。对字节代码执行前要检杳,不允许使用指针,可防止对内存的非法入侵,它是目前安全性最佳的语言。但是 Java 并不是对程序执行前检查,而是对字节代码进行检查,Java 编写好的程序首先山编译器转换为标准字节代码,然后由 Java 虚拟机去解释执行。20.当浏览器重新返回到包含 Applet 的
30、页面时调用的方法是_。(分数:1.00)A.start() B.init()C.stop()D.destroy()解析:解析 Applet 生命周期包括 Applet 的创建、运行与消亡几个状态。Applet 类提供了在生命周期不同阶段响应主要事件的 4 种方法,这 4 种方法的调用次序如下图所示: 21.结构化程序设计所规定的三种基本控制结构是_。(分数:2.00)A.输入、处理、输出B.树形、网形、环形C.顺序、选择、循环 D.主程序、子程序、函数解析:解析 顺序结构、选择结构和循环结构(或重复结构)是结构化程序设计的 3 种基本结构。22.Thread 类的方法中用于修改线程名字的方法是
31、_。(分数:1.80)A.setName() B.reviseName()C.getName()D.checkAccess()解析:解析 Thread 类的其他方法有 setName()、getName()、activeCount()和 setDaemon()等。其中,用于修改线程名字的方法是 setName()。23.在 Java Applet 程序中,如果对发生的事件做出响应和处理的时候,应该使用下列_语句。(分数:1.80)A.import java. awt. event. * ;B.import java. io. * ;C.import java. awt. * ; D.impor
32、t java. applet. * ;解析:解析 本题考查对 Java 常用的各种包所包含的一些类的基本功能的理解。java. awt 包是抽象窗口工具包,里面包括各种容器、组件、窗口布局管理器以及一些常用的类如 Color、Font 等,选项 A 满足题意。而 java. applet 包里面包括了小程序执行时必须要重载的一个类 Applet,也就只有这一个类,选项 D 错误。java. io 包主要是提供一些输入/输出类的,选项 B 不满足题意。java. awt. event 包就包含了一些能够对事件做出响应和处理的一些标准类,选项 A 不满足题意。24.下列表达式中,类型可以作为 in
33、t 型的是_。(分数:1.80)A.“abc“+“efg“B.“abc“+“efg“C.“a“+“b“ D.3+“4“解析:解析 字符型可以转为 int 型,但字符串不可以。25.下列不属于软件调试技术的是 _(分数:2.00)A.强行排错法B.集成测试法 C.回溯法D.原因排除法解析:解析 我们严格区分调试与测试,调试是已知有错误而来找错误,是被动的;测试有很多种,比如未发现错误但不能保证程序没错而来找 BUG,还比如我们运行测试程序是否符合用户的要求,是主动的。所以答案是选项 B。 A、C、D 都是具体的程序调试方法,而 B 是宏观的程序测试方法。测试有单元测试、集成测试、确认测试、系统测
34、试。比如我们在进行单元测试时,发现程序有错误,我们再可以根据A、C、D 的方法来找错误。26.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为 90的元素时,查找成功的比较次数为_。(分数:1.80)A.1B.2 C.3D.9解析:解析 根据二分法查找需要两次:首先将 90 与表中间的元素 50 进行比较,由于 90 大于 50,所以在线性表的后半部分查找;第二次比较的元素是后半部分的中间元素,即 90,这时两者相等,即查找成功。27.下列选项中,用于实现接口的关键字是 _(分数:2.00)A.interfaceB.impleme
35、nts C.abstractD.class解析:解析 interface 是定义接口时用的关键字;abstract 是用来声明抽象类或方法的;class 是声明一个类的关键字;implements 是用来实现接口的关键字。所以选项 B 是正确的。28.在文件类提供的方法中,用于创建目录的方法是 _ 。(分数:2.00)A.mkdir() B.mkdirs()C.list()D.listRoots()解析:解析 本题考查文件类提供的方法。mkdir()是为目录操作提供的方法,用来创建目录;mkdirs()也是为目录操作提供的方法,创建包含父目录的目录;list()是对文件名操作提供的方法,返回一
36、个字符串数组,为该文件所在目录下的所有文件名列表;listRoots 是为目录提供的方法,返回根目录结构。由此可见,只有选项 A 满足题目要求。29.下列叙述中,错误的是 _ 。(分数:1.00)A.接口与类的层次无关B.通过接口说明类所实现的方法C.通过接口可了解对象的交互界面D.接口与存储空间有关 解析:解析 本题考查 Java 中接口的概念。接口是一种只含有抽象方法或变量的特殊的抽象类,主要功能是:不管类的层次,可实现互不相关的类具有相同的方法,所以选项 A 说法正确;通过接口说明多个类所需实现的方法,选项 B 说法正确;通过接口可以了解对象的交互界面,无需了解对象所对应的类,选项C 说
37、法正确;因为接口不包括任何实现,所以与存储空间没有任何关系,选项 D 说法错误。30.应用数据库的主要目的是 _ 。(分数:2.00)A.解决数据保密问题B.解决数据完整性问题C.解决数据共享问题 D.解决数据量大的问题解析:解析 数据库中的数据具有“集成”与“共享”的特点,亦即是数据库集中了各种应用的数据,进行统一构造与存储,而使它们可以被不同应用程序所使用,故选项 C 正确。31.支持子程序调用的数据结构是_。(分数:2.00)A栈 B树C.队列D.二叉树解析:解析 根据栈的定义,栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,主函数会保持当前状态,然后转去执行子函数,把子
38、函数的运行结果返回到主函数,主函数继续向下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。32.下面代码中的内部类名是_。 import java.awt*; import javax.swing.*; class TalkingClock public static void main(int interval,final boolean beep) ActionListener listener = new ActionListener() public void actionPerformed(ActionEvent event) . Timer t = new Timer (in
39、terval,listener); t.start(); (分数:1.00)A.TimerB.ActionListenerC.listenerD.匿名 解析:解析 因为是直接通过 new 操作接口在实现里直接实现这个接口的方法的方式实现内部类的,所以是匿名内部类。33.下列程序的运行结果是_。 public class Test public static void main(String args) float i=3.Of; int n=10; System.out.print(i+); System.out.println(“,“+n*i+); (分数:1.00)A.4.0,36.0B.
40、3.0,40.0 C.3.0,36.0D.4.0,40.0解析:解析 该程序主要是考查对 j+与+j 的区分。i+是先得到 i 的值,然后 i 的值加 1;而+i 是 i的值先加 1,然后得到 i 的值。无论是哪一种,i 的值最后都会加 1。所以第一次运算的结果是 3.0,由于之前进行了 i+运算,所以 i 的值为 4.0,在进行 n*i+运算的时候,先运算 n*i,然后 i 的值再加 1。所以第二次运算的结果是 40.0,而 i 的值为 5。34.循环链表的主要优点是(分数:1.00)A.不再需要头指针了B.从表中任一结点出发都能访问到整个链表 C.在进行插入、删除运算时,能更好的保证链表不
41、断开D.已知某个结点的位置后,能够容易的找到它的直接前件解析:解析:循环链表就是将单向链表中最后一个结点的指针指向头结点,使整个链表构成一个环形,这样的结构使得从表中的任一结点出发都能访问到整个链 35.下列表达式中,类型可以作为 int 型的是_。(分数:1.80)A.“abc“+“efg“B.“abc“+“efg“C.“a“+“b“ D.3+“4“解析:解析 字符型可以转为 int 型,但字符串不可以。36.数据库设计包括两个方面的设计内容,它们是_。(分数:1.80)A.概念设计和逻辑设计 B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计解析:解析 数据库设计包括概念设计和逻辑设计两个方面的内容。