1、2009年 3月国家二级( JAVA)笔试真题试卷及答案与解析 1 下列叙述中正确的是 ( )。 ( A)栈是 “先进先出 ”的线性表 ( B)队列是 “选进后出 ”的线性表 ( C)循环队列是非线性结构 ( D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 2 支持子程序调用的数据结构是 ( )。 ( A)栈 ( B)树 ( C)队列 ( D)二叉树 3 某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点数是 ( )。 ( A) 10 ( B) 8 ( C) 6 ( D) 4 4 下列排序方法中,最坏情况下比较次数最少的是 ( )。 ( A)冒泡排序 ( B)简单选择排序 (
2、 C)直接插入排序 ( D)堆排序 5 软件按功能可以分为:应用软件、系统软件和支撑软件 (或工具软件 )。下面属于应用软件的是 ( )。 ( A)编辑程序 ( B)操作系统 ( C)教务管理系统 ( D)汇编程序 6 下面叙述中错误的是 ( )。 ( A)软件测试的目的是发现错误并改正错误 ( B)对被调试的程序进行 “错误定位 ”是程序调试的必要步骤 ( C)程序调试通常也被称为 Debug ( D)软件测试应严格执行测试计划,排除测试的随意性 7 耦合性和内聚性是对模块独立性度量的两个标准,下列叙述中正确的是 ( )。 ( A)提高耦合性降低内聚性有利于提高模块的独立性 ( B)降低耦合
3、性提高内聚性有利于提高模块的独立性 ( C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 ( D)内聚性是指模块间互相连接的紧密程度 8 数据库应用系统中的核心问题是 ( )。 ( A)数据库设计 ( B)数据库系统设计 ( C)数据库维护 ( D)数据库管理员培训 9 有两个关系 R、 S如下: 由关系 R通过运算得到关系 S,则所使用的运算为 ( )。 ( A)选择 ( B)投影 ( C)插 ( D)连接 10 将 E-R图转换为关系模式时,实体和联系都可以表示为 ( )。 ( A)属性 ( B)键 ( C)关系 ( D)域 11 Java虚拟机 (JVM)运行 Java代码时,不会
4、进行的操作是 ( )。 ( A)加载代码 ( B)校验代码 ( C)编译代码 ( D)执行代码 12 Java程序的并发机制是 ( )。 ( A)多线程 ( B)多接口 ( C)多平台 ( D)多态性 13 在方法内部使用,代表对当前对象自身引用的关键字是 ( )。 ( A) super ( B) This ( C) Super ( D) this 14 阅读下列程序 public class VariableUse public static void main(Stringargs) inta; if(a=8) intb=9; System.out.println(“a“=“+a); Sy
5、stem.out.println(“b=“+b); System.out.println(“a=“+a); System.out.println(“b=“+b); 该程序在编译时的结果是 ( )。 ( A)变量 a未赋值 ( B)第二个 System.out.println(“b=“+b)语句中,变量 b作用域有错 ( C)第二个 System.out.println(“a=“+a)语句中,变量 a作用域有错 ( D)第一个 System.out.println(“b=“+b)语句中,变量 b作用域有错 15 下列不属于 Swing的构件是 ( )。 ( A) JButton ( B) JLa
6、bel ( C) JFrame ( D) JPane 16 对鼠标点击按钮操作进行事件处理的接口是 ( )。 ( A) MouseListener ( B) WindowListener ( C) ActionListener ( D) KeyListener 17 AWT中用来表示颜色的类是 ( )。 ( A) Font ( B) Color ( C) Panel ( D) Dialog 18 下列运算符中, 优先级最高的是 ( )。 ( A) + ( B) + ( C) * ( D) 19 Java语言中属于跳转语句的是 ( )。 ( A) try ( B) catch ( C) fina
7、lly ( D) break 20 阅读下列利用递归来求 n!的程序 class Factorial Test staticlong Factorial(intn)/定义 Factorial()方法 if(n=1) retum 1; else returnn*Factorial_; publicstaticvoidmainStringa)/main()方法 intn=8; System.out.printlnn+“!=“+Factorial(n); 为保证程序正确运行,在下划线处应该填入的参数是 ( )。 ( A) n-1 ( B) n-2 ( C) n ( D) n+1 21 阅读下列代码
8、publicclassPerson staticintalt=newint10; public static voidmain(Stringargs) System.out.printlnall9); 该代码的运行结果是( )。 ( A)编译时将产生错误 ( B)编译时正确,运行时将产生错误 ( C)输出零 ( D)输出空 22 在 Java中,若要使用一个包中的类时,首先要求对该包进行导入,其关键字是( )。 ( A) impoa ( B) package ( C) include ( D) packet 23 继承是面向对象 编程的一个重要特征,它可降低程序的复杂性并使代码 ( )。 (
9、A)可读性好 ( B)可重用 ( C)可跨包访问 ( D)运行更安全 24 阅读下列代码片段 class InterestTest_ActionListener public voidactionPerformed(ActionEventevent) double interest=balance*rate/100; balance+=interest; NumberFormat format=Number Format.getCurrencylnstance(): System.out.printb(“balance=“+formatter.format(balance); Privated
10、oublerate; 在下划线处,应填的正确选项是 ( )。 ( A) Implementation ( B) Inheritance ( C) implements ( D) extends 25 下列方法中,不属于类 String的方法是 ( )。 ( A) toLowerCase() ( B) valueOf() ( C) charAt() ( D) append() 26 grid95描述的是 ( )。 ( A)二维数组 ( B)一维数组 ( C)五维数组 ( D)九维数组 27 Java类库中,将信息写入内存的类是 ( )。 ( A) java.io.FileOu中 utStream
11、 ( B) java.io.ByteArrayOutputStream ( C) java.io.BufferedOutputStream ( D) java.io.DataOutputStream 28 阅读厂列 Java语句 ObjectOutputStreamout=new ObjectOu中utStream(new_(“employee.daf“); 在下划线处,应填的正确选项是 ( )。 ( A) File ( B) FileWriter ( C) FileOutputStream ( D) Outputstream 29 使新创建的线程参与运行调度的方法是 ( )。 ( A) ru
12、n() ( B) start() ( C) init() ( D) resume() 30 Java中,的线程模型由三部分组成,与线程模型组在无关的是 ( )。 ( A)虚拟的 CPU ( B)程序代码 ( C)操作系统的内核状态 ( D)数据 31 当 Applet需要更新显示内容时,应该调用的方法是 ( )。 ( A) paint ( B) update() ( C) start() ( D) repaint() 32 向 Applet传递参数的正确描述是 ( )。 ( A) paramname=age, value=20 ( B) appletcode=Try.class width=1
13、00, height=100, age=33 ( C) name=age, value=20 ( D) appletcode=Try.class name=age, value=20 33 Applet的默认布局管理:器是 ( )。 ( A) BorderLayout ( B) FlowLayout ( C) GridLayout ( D) PanelLayout 34 阅读下列代码段 class TestimplementsRunnable publicintrun() inti=0; while(true) i+; System.out.println(“i=“+1); 上述代码的编译结果
14、是 ( )。 ( A)程序通过编译并且 run()方法可以正常输出递增的 i值 ( B)程序通过编译,调用 run()方法将不显示任何输出 ( C)程序不能通过编译,因为 while的循环控制条件不能为 “true” ( D)程序不能通过编译,因为 run()方法的返向值类型不是 void 35 如果线程调用下列方法,不能保证使该线程停止运行的是 ( )。 ( A) sleep() ( B) stop() ( C) yield() ( D) wait() 36 假设用一个长度为 50的数组 (数组元素的下标从 0到 49)作为栈的存储空间,栈底指针 bosom指向栈底元素,栈顶指针 top指向
15、栈顶元素,如果 bottom=49,top=30(数组下标 ),则栈中具有 _个元素。 37 软件测试可分为白盒测试和黑盒测试。基本路径测试属于 _测试。 38 符合结构化原则的三种基本控 制结构是:选择结构、循环结构和 _。 39 数据库系统的核心是 _。 40 在 E-R图中,图形包括矩形框、菱形框、椭圆框。其中表示实体联系的是_框。 41 Java语言中,使用关键字 _对当前对象的父类对象进行引用。 42 能打印出一个双引号的语句是 System.out.println“_“;。 43 Swing中用来表示表格的类是 iavax.swing._。 44 大多数 Swing构件的父类是 j
16、avax.swing._,该类是 个抽象类。 45 “流 ”(stream)可以看作是一个流动的 _缓冲区。 46 Java接口内的方法都是公共的、 _的,实现接口就要实现接口内的所有方法。 47 Java语言的 _可以使用它所在类的静态成员变量和实例成员变量,也可以使用,占所在方法中的局部变量。 48 下列程序构造了一个 SwingApplet,请在下划线处填入正确的代码: import javax.swing0*; impon java.awt.*; public class SwingAppletextends_ JLabell=newJLabel(“ThisisaSwingApplet
17、.“); publicvoidinit() ContainercontentPane=getContentPane(); contentPane.add(1); 49 实现线程交互的 wait()和 notify()方法在 _类中定义。 50 15.清在下划线处填入代码,使程序正常运行并且输出 “Hello!” classTesl_ publicstaticvoidmain(stringargs) Test=newTest(); t.start(); Pubhcvoidrun() System.out.println(“Hello!“); 2009年 3月国家二级( JAVA)笔试真题试卷答案
18、与解析 1 【正确答案】 D 【试题解析】 本题考查了栈、队列、循环队列的基本概念,栈的特点是先进后出,队列的特点是先进先出,根据数据结构中 各数据元素之间的复杂程度,将数据结构分线性结构与非线性结构两类。有序线性表即可采用顺序存储结构,也可以采用链式存储结构。 2 【正确答案】 A 【试题解析】 根据栈的定义,栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,主函数会保持当前状态,然后转去执行子函数,把子函数的运行结果返回到主函数,主函数继续向下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。 3 【正确答案】 C 【试题解析】 根据二叉树的性质判定,在任意二叉树中,度为
19、 0的叶子结点总是比度为 2的结点 多一个。 4 【正确答案】 D 【试题解析】 本题考查排序的比较次数,冒泡排序、简单选择排序和直接插入排序在最坏的情况下比较次数为: n(n-1)/2。而堆排序法在最坏的情况下需要比较的次数为 O(nlog2n)。 5 【正确答案】 C 【试题解析】 编译程序和汇编程序属于开发工具,操作系统属于系统软件,而教务管理系统属于应用软件。 6 【正确答案】 A 【试题解析】 软件测试的目的是为了发现错误及漏洞而执行程序的过程。软件测试要严格执行测试计划。程序调式通常也称 Debug, 对被调试的程序进行 “错误 ”定位是程序调试的必要步骤。 7 【正确答案】 B
20、【试题解析】 耦合是指模块间相互连接的紧密程度,内聚性是指在一个模块内部各个元素间彼此之间接合的紧密程序。高内聚、低耦合有利于模块的独立性。 8 【正确答案】 A 【试题解析】 数据库设计的目的是设计一个能满足用户要求,性能良好的数据库。所以数据库设计的榱心是数据库应用的。 9 【正确答案】 B 【试题解析】 本题考察关系的运算,一个关系 R通过投影运算后仍为一个关系R, R是由 R中投影运算所指出 的那引起域的列所组成的关系。选择运算主要是对关系 R中选择由满足逻辑条件的元组所组成的一个新关系,所以题中关系 s是由 R投影所得。 10 【正确答案】 C 【试题解析】 在 C语言中,将 E-R
21、图转换为关系模式时,实体和联系都可以表示为关系。 11 【正确答案】 A 【试题解析】 Java虚拟机加载代码是在运行前的操作。运行代码时会校验、编译和执行代码。 12 【正确答案】 A 【试题解析】 Java是通过多线程实现并发机制的。多线程是指一个程序中包含多个执行流,多线程程序设计的 含义是可以将程序任务分成几个并行的子任务。 13 【正确答案】 D 【试题解析】 super关键字为实现对父类变量的访问和对父类方法的调用。对当前对象自身的引用应使用 this关键字。 14 【正确答案】 B 【试题解析】 局部变量 b是在 if(a=8)里定义的,作用域也只在这个汀语句范围内,第二个 Sy
22、stem.out.drintln(“b=“+b)语句中,变量 b超出了作用域。 15 【正确答案】 D 【试题解析】 Swlng构件中 JButton是按钮构件, JLabel为标签构件, IFrame为顶层窗体容器构件。中间容器面板应为 JPanel,而不是 JPane。 16 【正确答案】 C 【试题解析】 动作事件和按钮按下,以及在 TextField中按 Enter键对应的事件为 ActionEvent事件,进行处理的接口应为 AcfionListenero MouseListener是MouseEvent事件的实现接口,响应的是鼠标的移动、点击 (不包括点击按钮 )事件。 17 【正
23、确答案】 B 【试题解析】 AWT中 Font是表示字体的类, Color是表示颜 色的类, Panel是表示面板的类, Dialog是表示对话框的类。 18 【正确答案】 A 【试题解析】 在这些运算符中抖运算符优先级最高。 19 【正确答案】 D 【试题解析】 Java语言中跳转语句为 break。 try、 catch、 finally为异常处理语句。 20 【正确答案】 A 【试题解析】 因为在 n不为 1时, n!=n*(n-1)*(n-2)*1=n*(n -1)!,所以此处应为 n-1。 21 【正确答案】 C 【试题解析】 arr为整 型数 组,分配地址后默认值为 0,所以创建数
24、组时也是对每个数组元素赋初值 0。 22 【正确答案】 A 【试题解析】 定义一个包要用 package关键字,使用一个包中的类时,首先要使用 import导入这些类所在的包。 Include为 c语言的包含头文件的关键字,不是Java的。 23 【正确答案】 B 【试题解析】 继承性是面向对象方法的一个重要基本特性,它使代码可重用,可降低程序复杂性。对一个类的继承是指在现有类 (父类 )的基础上构建一个新类 (子类 ),子类重用 (继承 )了父类的方法和状态,同时还可 以向新类中增添新的方法和状态。 24 【正确答案】 C 【试题解析】 继承父类应使用的关键词为 extends。 25 【正
25、确答案】 D 【试题解析】 String的方法中, toLowerCase()方法是转换成小写, valueof()方法是获得相应数值, charAt()方法是提取字符中中指定位置的字符。 append()是StringBuffer的方法。 26 【正确答案】 A 【试题解析】 这是一个二维数组,口中的数字是每一维的大小。 27 【正确答案】 B 【试题解析】 在 java.io中,提供了 ByteArraylnputStream、 ByteArrayOutSUeam和 StringBufferlnputStxeam类可以直接访问内存,其中用ByteArrayOutputStream可以向字节
26、数组 (缓冲区 )写入数据。 28 【正确答案】 C 【试题解析】 ObjectOutputStxeam即继承了 OutputStream抽象类,又实现了ObjectOutput接口,这是 Java用接口技术代替双重继承的例子,其构造方法参数是串行化了的对象。所以 ,此处应为串行化的文件输出流。 29 【正确答案】 B 【试题解析】 start0方法使线程参与运行调度。 30 【正确答案】 C 【试题解析】 Java中线程模型包含 3部分: (1)一个虚拟的 CPU。 (2)该 CPU执行的代码。 (3)代码所操作的数据。 31 【正确答案】 D 【试题解析】 Applet与显示相关的有 3个
27、方法: (1)paint()方法,具体执行Applet的绘制; (2)update0方法,用于更新 Applet的显示: (3)repaint()方法,主要用于 Applet的重新显示; Applet程序可以在需要显示更新时调用该方法,通知系统刷新显示。 32 【正确答案】 A 【试题解析】 Applet标记的参数部分一般格式是: PARAMNAME=appletParameterVALUE=value 。 33 【正确答案】 B 【试题解析】 Applet是一个面板容器,它默认使用 Flow布局管理器,所以可以在 Applet中设置并操作 AWT构件。 34 【正确答案】 D 【试题解析】
28、while的循环控制条件可以为 “true”, run方法没有返回值,所以不能是 int型,故此程序不能通过编译。 35 【正确答案】 C 【试题解析】 线程的方法中 sleepO方法是使比其优先级低的线程运行;该方法使一个线程暂停运行一段固定时间。在休眠时间内,线程将不运行,低优先级的线程将有机会运行。 yield0方法为只让给同优先级的线程运行。如果没有同等优先级的,线程是可运行状态, yield0方法将什么也不做,即线程将继续运行。 stop()方法是强行终止线程。 wait()方法是线程间交互的方法,是使一个线程停止运行,进入等待状态。 36 【正确答案】 19。 【试题解析】 当前栈
29、中的所有元素的个数就是用栈底指针减去栈顶指针。 37 【正确答案】 白盒。 【试题解析】 根据定义彰:件测试按照功能劫分可以分为白盒测试和黑盒测试,白盒测试方法也称为结构测试或逻辑驱 38 【正确答案】 顺序结构。 【试题解析】 在 C语言中,结构化程序设计的 3种基本控制结构是:选择结构、循环结构和顺序结构。 39 【正确答案】 数据库管理系统。 【试题解析】 数据库管理 DBMS是一种系统软件,负责数据库数据组织、数据操纵、数据维护、控制及保护和数据服务等。数据库管理系统是数据库系统的核心。 40 【正确答案】 菱形。 【试题解析】 本题考察 E-R的关系,在 E-R图中,用菱形来表示实体
30、之间的联系。矩形表示实体集,椭圆形表示属性。 41 【正确答案】 Super。 【试题解析】 当子类隐藏了父类的变量,并重写了父类方法后,又要使用父类变量或父类被重写的方法时,可以通过 super来实现对父类变量的访问和对父类方法的调用。 42 【正确答案】 ”。 【试题解析】 双引号字符的输出应使用转 义字符。 43 【正确答案】 JTable。 【试题解析】 表格是 Swing新增加的构件,主要功能是把数据以二维表格的形式显示出来。 Swing中表示表格的是 JTable。 44 【正确答案】 JComponent。 【试题解析】 JComponent是一个抽象类,是大多数 Swing构件
31、的父类,定义了所有子类构件的一般方法, JComponem类继承于 Component类,所以凡是此类的构件都可以作为容器使用。 45 【正确答案】 数据。 【试题解析】 在计算机中,流可以看做 是一个流动的数据缓冲区。数据从数据源流向数据目的地。流的传送是串行的。 46 【正确答案】 抽象。 【试题解析】 接口是一种只含有抽象方法或常量的一种特殊的抽象类。是不包含成员变量和方法实现的抽象类,它只包含常量和方法的定义。 47 【正确答案】 内部类。 【试题解析】 在一个类的内部嵌套定义的类称为内部类,内部类可以使用它所在类的静态成员变量和实例成员变量,也可以使用它所在的类的方法中的局部变量。 48 【正确答案】 JApplet。 【试题解析】 构造一个 SwingApplet所应继承的父类应为 JApplet。 49 【正确答案】 Object。 【试题解析】 waitO和 notify()方法是 java.lang.object类的方法,是实现线程通信的两个方法。 50 【正确答案】 extendsThread。 【试题解析】 从后面的重写了 run()方法来看,这是通过继承 Thread类,并重写ran()方法定义线程体,然后创建该子类的对象的方式来创建线程。