2006 年 4 月全国计算机二级 Java 考试真题及答案
(考试时间 90 分钟,满分 l00 分)
一、选择题
下列各题 A) 、B) 、C) 、D) 四个选项中,只有一个选项是正确的。
(1)下列选项中不属于结构化程序设计方法的是
A) 自顶向下
B) 逐步求精
C) 模块化
D) 可复用
(2)两个或两个以上模块之间关联的紧密程度称为
A) 耦合度
B) 内聚度
C) 复杂度
D) 数据传输特性
(3)下列叙述中正确的是
A) 软件测试应该由程序开发者来完成
B) 程序经调试后一般不需要再测试
C) 软件维护只包括对程序代码的维护
D) 以上三种说法都不对
(4)按照“后进先出”原则组织数据的数据结构是
A) 队列 B) 栈
C) 双向链表 D) 二叉树
(5)下列叙述中正确的是
A) 线性链表是线性表的链式存储结构
B) 栈与队列是非线性结构
C) 双向链表是非线性结构
D) 只有根结点的二叉树是线性结构
(6)对如下二叉树
进行后序遍历的结果为
A) ABCDEFB) DBEAFC
C) ABDECFD) DEBFCA
(7)在深度为 7 的满二叉树中,叶子结点的个数为
A) 32B) 31
C) 64D) 63
(8)“商品”与“顾客”两个实体集之间的联系一般是
A) 一对一 B) 一对多
C) 多对一 D) 多对多
(9)在 E-R 图中,用来表示实体的图形是
A) 矩形 B) 椭圆形
C) 菱形 D) 三角形
(10)数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是
A) DB 包含 DBS 和 DBMS
B) DBMS 包含 DB 和 DBS
C) DBS 包含 DB 和 DBMS
D) 没有任何关系
(11)Java 语言中,负责并发管理的机制是
A) 垃圾回收 B) 虚拟机
C) 代码安全 D) 多线程
(12)下列描述中,错误的是
A) Java 要求编程者管理内存
B) Java 的安全性体现在多个层次上
C) Applet 要求在支持 Java 的浏览器上运行
D) Java 有多线程机制
(13)Java 为移动设备提供的平台是
A) J2MEB) J2SE
C) J2EED) JDK5.0
(14)JDK 中提供的文档生成器是
A) java.exeB) javap.exe
C) javadoc.exeD) javaprof.exe
(15)在 Java 语言中,不允许使用指针体现出的 Java 特性是
A) 可移植 B) 解释执行
C) 健壮性 D) 安全性
(16)下列不属于 Swing 中构件的是
A) JPanelB) JTable
C) MenuD) JFrame
(17)下列方法中,不属于 WindowListener 接口的是
A) windowOpened()B) window Closed()
C) window Activated()D) mouseDragged()
(18)下列语句中,属于多分支语句的是
A) if 语句 B) switch 语句
C) do while 语句 D) for 语句
(19)阅读下列代码
public class Test 2005{
public static void main(String args[]){
Strings="Test";
switch(s){
case "Java":System.out.print("Java");
break;
case "Language":System.out.print("Language");
break;
case "Test":System.out.ptint("Test");
break;
}
}
}
其运行结果是
A) JavaB) Language
C) TestD) 编译出错
(20)阅读下列代码
public class Test 2005{
public static void main(String args[]){
System.out.println(~(0xa5)&0xaA) ;
}
}
其运行结果是
A) 0xa5B) 10
C) 0x50D) 0xaa
(21)阅读下列代码
public class Test 2005{
public static void main(String args[]){
System.out.println((3>2)?4:5);
}
}
其运行结果是
A) 2B) 3
C) 4D) 5
(22)阅读下列代码
public class Test{
public static void main(String args[]){
System.out.println(89>>1);
}
}
其运行结果是
A) 44B) 45
C) 88D) 90
(23)在 Applet 中显示文字、图形等信息时,应使用的方法是
A) paint()B) init()
C) start()D) destroy()
(24)线程生命周期中正确的状态是
A) 新建状态、运行状态和终止状态
B) 新建状态、运行状态、阻塞状态和终止状态
C) 新建状态、可运行状态、运行状态、阻塞状态和终止状态
D) 新建状态、可运行状态、运行状态、恢复状态和终止状态
(25)Thread 类中能运行线程体的方法是
A) start()B) resume()
C) init()D) run()
(26)下列关于 Applet 的说法中,错误的是
A) Applet 自身不能运行,必须嵌入到其他应用程序(如浏览器)中运行
B) 可以在安全策略的控制下读写本地磁盘文件
C) Java 中不支持向 Applet 传递参数
D) Applet 的主类要定义为 java.applet.Applet 类的子类
(27)下列选项中,不是 APPLET 标记的是
A) PARAMB) BODY
C) CODEBASED) ALT
(28)在 Java 中,与数据库连接的技术是
A) ODBC
B) YDBC
C) 数据库厂家驱动程序
D) 数据库厂家的连接协议
(29)下列命题中,错误的是
A) Java 编程时,要求应尽量多用公共变量
B) Java 编程时,要求应尽量少用公共变量
C) Java 编程时,要求应尽量不用公共变量
D) Java 编程时,要求应尽量使用私有变量
(30)若特快订单是一种订单,则特快订单类和订单类的关系是
A) 使用关系 B) 包含关系
C) 继承关系 D) 无关系
(31)若数组 a 定义为 int[][]a=new int[3][4],则 a 是
A) 一维数组 B) 二维数组
C) 三维数组 D) 四维数组
(32)Java 语言使用的字符码集是
A) ASCIIB) BCD
C) DCBD) Unicode
(33)在程序读入字符文件时,能够以该文件作为直接参数的类是
A) FileReaderB) BufferedReader
C) FileInputStreamD) ObjectInputStream
(34)java.io 包的 File 类是
A) 字符流类 B) 字节流类
C) 对象流类 D) 非流类
(35)下列描述中,正确的是
A) 在 Serializable 接口中定义了抽象方法
B) 在 Serializable 接口中定义了常量
C) 在 Serializable 接口中没有定义抽象方法,也没有定义常量
D) 在 Serializable 接口中定义了成员方法
二、填空题
请将每一个空的正确答案写在【1】~【15】序号的横线上。注意:以命令关键宇填空的必须拼写完整。
(1)对长度为 10 的线性表进行冒泡排序,最坏情况下需要比较的次数为【1】。
(2)在面向对象方法中,【2】描述的是具有相似属性与操作的一组对象。
(3)在关系模型中,把数据看成是二维表,每一个二维表称为一个【3】。
(4)程序测试分为静态分析和动态测试。其中【4】是指不执行程序,而只是对程序文本进行检查,通过阅
读和讨论,分析和发现程序中的错误。
(5)数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,
基于逻辑结构的应用程序不必修改,称为【5】。
(6)【6】是 Java 程序中基本的结构单位。
(7)Java 语言中,移位运算符包括:>>、<<和【7】。
(8)构件不能独立地显示出来,必须将构件放在一定的【8】中才能显示。
(9)能将显示空间分成很多层的布局管理器是【9】。
(10)Applet 是能够嵌入到【10】格式的文件中,并能够在浏览器中运行的 Java 类。
(11)使用 Swing 编写 Applet,则该 Applet 的主类应该定义为【11】类的子类。
(12)在 Java 中,线程的模型就是一个 CPU、程序代码和【12】的封装体。
(13)键盘键入字符串并在计算机屏幕上显示,这时的数据源是【13】。
(14)任何一个 Java 程序都默认引入了一个包,这个包的名字叫 java.【14】。
(15)Java 语言中,有一个类是所有类或接口的父类,这个类的名称是【15】。
一、选择题
(1)[答案]D
答案解析
[解析] 结构化程序设计方法的主要原则有 4 点:自顶向下(先从最上层总目标开始设计,逐步使问题具体
化)、逐步求精(对于复杂问题,设计一些子目标作为过渡,逐步细化)、模块化(将程序要解决的总目标分
解为分目标,再进一步分解为具体的小目标,每个小目标作为一个模块)、限制使用 GOTO 语句。没有可复
用原则,所以选项 D 为答案。
(2)[答案]A
[解析] 本题考核模块独立性的评价。评价模块独立性的主要标准有两个;一是模块之间的耦合,它表明
两个模块之间互相独立的程度,也可以说是两个或两个以上模块之间关联的紧密程度(所以,本题的正确
答案为选项 A) ;二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能
地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。
(3)[答案]D
[解析] 本题考核软件测试、软件调试和软件维护的概念。软件测试的目标是在精心控制的环境下执行程
序,以发现程序中的错误,给出程序可靠性的鉴定。软件测试具有挑剔性,测试不是为了证明程序是正确
的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷,就是说,测试是程
序执行的过程,目的在于发现错误;一个好的测试在于能发现至今未发现的错误;一个成功的测试是发现
了至今未发现的错误。由于测试的这一特征,一般应当避免由开发者测试自己的程序。所以,选项 A 的说
法错误。
调试也称排错,目的是发现错误的位置,并改正错误,经测试发现错误后,可以立即进行调试并改正错误;
经过调试后的程序还需进行回归测试,以检查调试的效果,同时也可防止在调试过程中引进新的错误。所
以,选项 B 的说法错误。
软件维护通常有 4 类:为纠正使用中出现的错误而进行的改正性维护;为适应环境变化而进行的适应性维
护;为改进原有软件而进行的完善性维护;为将来的可维护和可靠而进行的预防性维护。软件维护不仅包
括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都
必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。所以,选项 C 的说法错误。
综上所述,选项 A、B、C 的说法都错误,所以,选项 D 为正确答案。
(4)[答案]B
[解析] “后进先出”表示最后被插入的元素最先能被删除。选项 A 中,队列是指允许在一端进行插入、
而在另一端进行删除的线性表,在队列这种数据结构中,最先插入的元素将最先能够被删除,反之,最后
插入的元素将最后才能被删除,队列又称为“先进先出”的线性表,它体现了“先来先服务”的原则;选
项 B 中,栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素,栈底元素总是最先被插入的元
素,从而也是最后才能被删除的元素。队列和栈都属于线性表,它们具有顺序存储的特点,所以才有“先
进先出”和“后进先出”的数据组织方式。双向链表使用链式存储方式,二叉树也通常采用链式存储方式,
它们的存储数据的空间可以是不连续的,各个数据结点的存储顺序与数据元素之间的逻辑关系可以不一
致。所以选项 C 和选项 D 错误。
(5)[答案]A
[解析] 一个非空的数据结构如果满足下列两个条件:(1)有且只有一个根结点;(2)每一个结点最多有一
个前件,也最多有一个后件,则称为线性结构。线性链表是线性表的链式存储结构,选项 A 的说法是正确
的。栈与队列是特殊的线性表,它们也是线性结构,选项 B 的说法是错误的:双向链表是线性表的链式存
储结构,其对应的逻辑结构也是线性结构,而不是非线性结构,选项 C 的说法是错误的;二叉树是非线性
结构,而不是线性结构,选项 D 的说法是错误的。因此,本题的正确答案为 A。
(6)[答案]D
[解析] 二叉树后序遍历的简单描述如下:若二叉树为空,则结束返回。否则(1)后序遍历左子树:(2)后
序遍历右子树;(3)访问根结点。
也就是说,后序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历
右子树,最后访问根结点,并且在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根
结点。根据后序遍历的算法,后序遍历的结果为 DEBFCA。
(7)[答案]C
[解析] 在二叉树的第 k 层上,最多有 2k-1(上标)(k≥1)个结点。对于满二叉树来说,每一层上的结点数
都达到最大值,即在满二叉树的第 k 层上有 2k-1(上标)个结点。因此,在深度为 7 的满二叉树中,所有叶
子结点在第 7 层上,即其结点数为 2k-1(上标)=27-1(上标)=64
因此,本题的正确答案为 C。
(8)[答案]D
[解析] 本题考核实体集之间的联系。实体集之间的联系有 3 种:—一对一、一对多和多对多。因为一类
商品可以由多个顾客购买,而一个顾客可以购买多类商品;所以,“商品”与“顾客”两个实体集之间的
联系一般是“多对多”,选项 D 正确。
(9)[答案]A
[解析] 在 E-R 图中,用三种图框分别表示实体、属性和实体之间的联系,其规定如下:用矩形框表示实
体,框内标明实体名;用椭圆状框表示实体的属性,框内标明属性名;用菱形框表示实体间的联系,框内
标明联系名。所以,选项 A 正确。