2007 年 4 月全国计算机二级 Java 考试真题及答案
(考试时间 90 分钟,满分 1OO 分)
一、选择题(1)~(35)每小题 2 分,共 70 分)
下列各题 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) DYBEAFCZXB) YDEBFZXCA
C) ABDYECFXZD) ABCDEFXYZ
进行前序遍历的结果为
(7)某二叉树中有 n 个度为 2 的结点,则该二叉树中的叶子结点数为
A) n+1B) n-1C) 2nD) n/2
(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是
A) 并 B) 交 C) 投影 D) 笛卡儿乘积
(9)在 E-R 图中,用来表示实体之间联系的图形是
A) 矩形 B) 椭圆形 C) 菱形 D) 平行四边形
(10)下列叙述中错误的是
A) 在数据库系统中.数据的物理结构必须与逻辑结构一致
B) 数据库技术的根本目标是要解决数据的共享问题
C) 数据库设计是指在已有数据库管理系统的基础上建立数据库
D) 数据库系统需要操作系统的支持
(11)Java 语言与 C++语言相比,最突出的特点是
A) 面向对象 B) 高性能 C) 跨平台 D) 有类库
(12)下列叙述中,错误的是
A) Java 提供了丰富的类库 B) Java 最大限度地利用网络资源
C) Java 支持多线程 D) Java 不支持 TCP/IP 协议
(13)在下列 Java 语言的包中,提供图形界面构件的包是
A) java.ioB) javax.swingC) java.netD) java.rmi
(14)下列叙述中,错误的是
A) iavac.exe 是 Java 的编译器
B) javadoc.exe 是 Java 的文档生成器
C) iavaprof.exe 是 Java 解释器的剖析工具
D) javap.exe 是 Java 的解释器
(15)在执行 Java 程序时,将应用程序连接到调试器的选项是
A) -DB) -debugC) -vexbosegsD) -mx
(16)请阅读下面程序
import java.io. *;
public class TypeTransition {
public static void main(String args[]){
char a='a';
int i=l00;
long y=456L;
int aa=a+i;
long yy=y-aa;
System.out.print("aa = "+aA) ;
System.out.print("yy = "+yy);
}
程序运行结果是
A) aa=197
yy=259
B) aa=177
yy=259
C) aa=543
yy=288
D) aa=197
yy=333
(17)请阅读下面程序
public class OperatorsAndExpressions {
void residual() {
int i=100, j=30;
float m=563.5f, n=4.0f;
System.out.println(i%j);
System.out.println(m%n);
}
public static void main(String args[]) {
OperatorsAndExpressions OperAndExp=new OperatorsAndExpressions();
//取模运算符在整数和浮点数中的应用
OperAndExp.residual; } }
程序运行结果是
A) 10B) 20
C) 10D) 20
3.5
2.54.5
3.5
(18)请阅读下面程序
public class ForLoopStatement {
public static void main(string []args){
int i,j;
for (i=1; i<5; i++) {//i 循环
for (j=1;j<=i;j++)
//j 循环
System.out.print(i+"×"+j+"="+i*j+" ");
System.out.println();
}
}
}
程序完成后,i 循环和 j 循环执行的次数分别是
A) 4,10B) 8,9C) 9,8D) 10,10
(19)下列叙述中,错误的是
A) Java 中,方法的重载是指多个方法可以共享同一个名字
B) Java 中,用 abstract 修饰的类称为抽象类,它不能实例化
C) Java 中,接口是不包含成员变量和方法实现的抽象类
D) Java 中,构造方法可以有返回值
(20)请阅读下面程序
public class ExampleStringBuffer{
public static void main(String []args){
StringBuffer sb=new StringBuffer("test");
System.out.println("buffer="+sB) ;
System.out.println("length="+sb.length());} }
程序运行结果中在"length="后输出的值
A)
10B) 4
C)
20
D)
30
(21)请阅读下面程序
import java.io.*;
public class ExceptionCatch {
public static void main(String args[]) {
try{
FilelnputStream fis=new FilelnputStream("text");
System.out.println("content of text is:");
} catch(FileNotFoundException e) {
System.out.println(e);
System.out.println("message:"+e.getMessageO);
e.printStackTrace(System.out);
}____{
System.out.println(e);
}
}
}
为保证程序正确运行,程序中下划线处的语句应是
A) catch(FilelnputStream fis)B) e.printStackTrace()
C) catch(IOException e)D) System.out.println(e)
(22)下列叙述中,错误的是
A) 所有的字节输入流都从 InputStream 类继承
B) 所有的字节输出流都从 OutputStream 类继承
C) 所有的字符输出流都从 OutputStreamWriter 类继承
D) 所有的字符输入流都从 Reader 类继承
(23)下列叙述中,正确的是
A) 线程与进程在概念上是不相关的 B) 一个线程可包含多个进程
C) 一个进程可包含多个线程 D) Java 中的线程没有优先级
(24)请阅读下面程序
public class ThreadTest{
public static void main(String args[]) (
Thread t1=new Thread(new Hello());
Thread t2=new Thread(new Hello());
t1.start();
t2.start();
}
}
class Hello implements Runnable {
int i;
public void run() {
while(true) {
System.out.prinfin("Hello"+i++);
if(i=5) break;
}
}
}
该程序创建线程使用的方法是
A) 继承 Thread 类 B) 实现 Runnable 接口
C) t1.start()
D) t2.start()
(25)Java 对 I/O 访问所提供的同步处理机制是
A) 字节流 B) 过滤流 C) 字符流 D) 压缩文件流
(26)Java 对文件类提供了许多操作方法,能获得文件对象父路径名的方法是
A) getAbsolutePath()B) getParentFile()
C) getAbsoluteFile() D) getName()
(27)下列叙述中,错误的是
A) Java 中没有检测和避免死锁的专门机制
B) 程序中多个线程互相等待对方持有的锁,可能形成死锁
C) 为避免死锁,Java 程序中可先定义获得锁的顺序,解锁是按加锁的反序释放
D) 为避免死锁,Java 程序中可先定义获得锁的顺序,解锁是按加锁的正序释放
(28)请阅读下面程序
public class ThreadTest {
public static void main(String args[]) throws Exception{
int i=0;
Hello t=new Hello();
while(true) {
System.out.println("Good Moming"+i++);
if (i==2 && t.isAlive()) {
System. out.println("Main waiting for Hello!");
t.join();
//等待 t 运行结束
}
if(i==5) break;}
}
}
class Hello extends Thread {
int i;
public void run() {
while(true){
System.out.println("Hello"+i++);
if (i==5) break;}}}
为使该程序正确执行,下划线处的语句应是
A) t.sleep()B) t.yield()
C) t.interrupt() D) t.start()
(29)Panel 类的默认布局管理器是
A) BorderLayoutB) CardLayoutC) FlowLayoutD) GridBagLayout
(30)下列叙述中,错误的是
A) JButton 类和标签类可显示图标和文本
B) Button 类和标签类可显示图标和文本
C) AWT 构件能直接添加到顶层容器中
D) Swing 构件不能直接添加到顶层容器中
(31)下列叙述中,错误的是
A) Applet 的默认布局管理器是 FlowLayout
B) JApplet 中增加构件是加到 JApplet 的内容面板上,不是直接加到 JApplet 中
C) JApplet 的内容面板的默认布局管理器是 BorderLayout
D) JApplet 的内容面板的默认布局管理器是 FlowLayout
(32)在定制 Applet 的绘图功能时,应该使用的方法是
A) init()
B) start()
C) paintComponent()D) paint()
(33)下列叙述中,错误的是
A) Applet 事件处理机制与 JavaApplication 相同
B) JApplet 事件处理机制采用监听器方式
C) Applet 事件处理机制采用监听器方式
D) JApplet 事件处理机制不是采用监听器方式
(34)为保护本地主机,对 Applet 安全限制中正确的是
A) Applet 可加载本地库或方法
B) Applet 可读、写本地计算机的文件系统
C) Applet 可向 Applet 之外的任何主机建立网络连接
D) Applet 不能运行任何本地可执行程序
(35)J2SDK 基本命令中能生成 C 语言头文件的命令是
A) javahB) javapC) jarD) java
二、填空题(每空 2 分,共 30 分)
(1)在深度为 7 的满二叉树中,度为 2 的结点个数为 【1】 。
(2)软件测试分为白箱(盒)测试和黑箱(盒)测试。等价类划分法属于 【2】 测试。
(3)在数据库系统中,实现各种数据管理功能的核心软件称为 【3】 。
(4)软件生命周期可分为多个阶段。一般分为定义阶段、开发阶段和维护阶段。编码和测试属于 【4】 阶
段。
(5)在结构化分析使用的数据流图(DFD) 中,利用 【5】 对其中的图形元素进行确切解释。
(6) 【6】 是为嵌入式和移动设备提供的 Java 平台。
(7)在 Java 中,转义字符\n 表示 【7】 。
(8)阅读下列程序段
public class OperatorsAndExpressions {
String conditionalExpression(int score) {
String result;
//如果 score 超过 60 分, 则结果是 passed, 否则是 doesn't pass
result=-(score>=60)?"passed":"doesn't pass";
System.out.println(result);
retum result;
}
public static void main(String args[]) {
OperatorsAndExpressions OperAndExp=new OperatorsAndExpressions();
//条件表达式
OperAndExp.conditionalExpression(65);
}
}
其执行结果是 【8】 。