1、计算机二级 JAVA-176 及答案解析(总分:68.00,做题时间:90 分钟)一、选择题(总题数:36,分数:68.00)1.阅读下述代码。 import Java.awt.*; import Javax.swing.*; public class AskErame extends JFrame public AskFrame() setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container pane=getContentPane(); JSlider value=new JSlider(0,255,100); Pane.add(val
2、ue); setSize(450,150); setVisible(true); setContentPane(pane); super(); public static void main(String arguments) AskFrame af=new AskFrame(); 如果编译并运行它,将出现什么情况?(分数:2.00)A.能够通过编译并正确运行B.能够通过编译,但不会在框架中显示任何东西C.由于其中的 super()语句而无法通过编译D.由于其中的 setContentPane()语句而无法通过编译2.下列叙述中正确的是_。(分数:1.80)A.对长度为 n 的有序链表进行查找
3、,最坏情况下需要的比较次数为 nB.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)3.当不希望某个类被其他类继承时,就可以将该类标识为(分数:2.00)A.finalB.abstractC.privateD.protected4.关系数据库管理系统能实现的专门关系运算包括_。(分数:1.80)A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表5.设循环队列的存储空间为 Q(
4、1:35),初始状态为 front=rear=35。现经过一系列入队与出队运算后,front=15,rear=15,则循环队列中的元素个数为_。(分数:2.00)A.15B.16C.20D.0 或 356.在 Applet 生命周期中,下面方法中是在装载 Applet 时被调用的是_。(分数:2.00)A.stop()B.init()C.start()D.destroy()7._根据判定条件的真假来决定执行哪一种操作。(分数:1.00)A.多分支语句B.条件语句C.switch 语句D.For 语句8.阅读下面程序 public class Test1 public static void m
5、ain(String args) System.out.println(34+56-6); System.out.println(26*2-3); System.out.println(3*4/2); System.out.println(5/2); 程序运行结果是(分数:2.00)A.84 49 6 2B.90 25 6 2.5C.84 23 12 2D.68 49 14 2.59.下列代码的执行结果是_。 public class Test1 public static void main(String args) float t=9.0f; int q=5; System.out.pri
6、ntln(t+)*(-q); (分数:1.00)A.40B.40.0C.36D.36.010.下列选项成员变量声明正确的是_。(分数:1.80)A.public protected final int i;B.abstract class F1.C.private double height;D.double weight11.Java 程序的解释执行过程分为_。(分数:2.00)A.代码的装入、校验、执行B.代码的校验、装入、执行C.代码的校验、装入、执行D.代码的装入、执行、校验12.设有如下三个关系表 (分数:2.00)A.T=RSB.T=RSC.T=RSD.T=R/S13.线性表中经常
7、采用的两种存储结构是_。(分数:2.00)A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构14.在创建 Applet 应用程序时,需要用户考虑的问题是_。(分数:2.00)A.窗口如何创建B.绘制的图形在窗口中的位置C.程序的框架D.事件处理15.一个对象的生命周期分为_三个阶段。(分数:2.00)A.生成、清除和使用B.使用、生成和清除C.生成、使用和清除D.清除、使用和生成16.JDK 基本命令中能生成 C 语言头文件的命令是_。(分数:2.00)A.javahB.javapC.jarD.java17.下列程序实现对 ZIP 文件
8、filel4.zip 的检索,在横线处填入正确的语句。 package ch1; import java.io.*; import java.util.*; import java.util.zip.*; public class exl4 publio static void main(String args try FileInputStream fis = new FileInputStream(“chl/filel4.zip“); ZipInputStream zis = new zipInputStream(fis); ZipEntry en; while(_) ! = null)
9、en.getName(); zis.clcseEntry(); zis.close(); catch(Exception e) e.printStackTrace(); (分数:2.00)A.en = zis.getNexTEnTRY()B.en = zis.getEntry()C.en=zis.getNextEntry()D.zis.getNextEntry()18.下列各选项中属于 Java 保留字的是 _ 。(分数:2.00)A.TRUEB.NULLC.FALSED.null19.下列关于过滤流的叙述中,不正确的是_。(分数:2.00)A.过滤流提供了同步处理机制,保证某 I/O 流只能
10、同时被一个线程访问B.过滤流可以使用文件作为构造函数的参数C.过滤流是 FilterInputSream 和 FilterOuputStream 抽象类及其子类D.使用过滤流时先把过滤流连接到某个 I/O 流上20.下面代码段的输出是 _ 。 if (5 (分数:1.00)A.编译出错B.5752C.trueD.无输出21.下列叙述中,正确的是 _ 。(分数:2.00)A.Java 语言的标识符是区分大小写的B.源文件名与 public 类名可以不相同C.源文件的扩展名为.jarD.源文件中 public 类的数目不限22.以下程序运行后输出的结果是 _ 。 #include stdio.h
11、main() int i; for(i=1;i=5;i+) switch (1%5) case 0:printf“*“);break; case 1:printf(“#“);break; default:printf(“/n“); case 2:printf(“); (分数:2.00)A.#*B.#*C.#D.#23.在 E-R 图中,用来表示实体的图形是(分数:2.00)A.矩形B.椭圆形C.菱形D.三角形24.以下定义线程方法正确的是_。(分数:2.00)A.Public Thread();B.Public Thread(Runnable target)C.Public Thread(Th
12、readGroup group,Runnable target);D.以上都正确25.下列情况中,不会使线程返回所持有的对象锁的是 _ 。(分数:2.00)A.当 synchronized()语句块执行完毕B.当调用了线程的 suspend()方法C.当在 synchronized()语句块中出现异常(Exception)D.当持有锁的线程调用该对象的 wait()方法26.已知数据表 A 中每个元素距其最终位置不远,为了节省时间,应采用的算法是_。(分数:2.00)A.堆排序B.直接插入排序C.快速排序D.直接选择排序27.运行 Java 程序需要的工具软件所在的目录是_。(分数:2.00)
13、A.JDK 的 bin 目录B.JDK 的 demo 目录C.JDK 的 lib 目录D.JDKR 的 jre 目录28.Panel 类的默认布局管理器是_。(分数:2.00)A.BorderLayoutB.CardLayoutC.FlowLayoutD.GridBagLayout29.阅读如下程序。 public class Test2 public static void main(String args) int a=10,b=4,c=20,d=6; System.out.println(a+*b+c*-d); 程序运行结果是_。(分数:2.00)A.144B.160C.140D.164
14、30.结构化程序设计的一种基本方法是 _(分数:2.00)A.筛选法B.递归法C.归纳法D.逐步求精法31.下列代码中 if(x0)System. out. println(“first“); elseif(x-3)System. out. println(“second“); elseSystem. out. println(“third“); 要求打印字符串为“second”时,x 的取值范围是_。(分数:1.80)A.x=0 且 x-3B.x0C.x-3D.x=-332.Swing 的选项面板是_。(分数:2.00)A.JtabbedPaneB.JLayeredpaneC.JScroll
15、PaneD.JsplitPane33.有下列二叉树,对此二叉树前序遍历的结果为_。 (分数:2.00)A.XZCYABB.XYZABCC.XYABCZD.XYAZBC34.当使用 SomeThread t=new SomeThread()创建一个线程时,下列叙述中正确的是_。(分数:1.80)A.SomeThread 类是包含 run()方法的任意 Java 类B.SomeThread 类一定要实现 Runnable 接口C.SomeThread 类是 Thread 类的子类D.SomeThread 类是 Thread 类的子类并且要实现 Runnable 接口35.下面属于黑盒测试方法的是_
16、。(分数:2.00)A.语句覆盖B.逻辑覆盖C.边界值分析D.路径覆盖36.下列模式中,能够给出数据库物理存储结构与物理存取方法的是_。(分数:2.00)A.内模式B.外模式C.概念模式D.逻辑模式计算机二级 JAVA-176 答案解析(总分:68.00,做题时间:90 分钟)一、选择题(总题数:36,分数:68.00)1.阅读下述代码。 import Java.awt.*; import Javax.swing.*; public class AskErame extends JFrame public AskFrame() setDefaultCloseOperation(JFrame.E
17、XIT_ON_CLOSE); Container pane=getContentPane(); JSlider value=new JSlider(0,255,100); Pane.add(value); setSize(450,150); setVisible(true); setContentPane(pane); super(); public static void main(String arguments) AskFrame af=new AskFrame(); 如果编译并运行它,将出现什么情况?(分数:2.00)A.能够通过编译并正确运行B.能够通过编译,但不会在框架中显示任何东
18、西C.由于其中的 super()语句而无法通过编译 D.由于其中的 setContentPane()语句而无法通过编译解析:解析 题目程序中 super()语句的作用是调用父类的构造函数,该语句只能作为方法的第一个语句,否则会产生编译错误。2.下列叙述中正确的是_。(分数:1.80)A.对长度为 n 的有序链表进行查找,最坏情况下需要的比较次数为 nB.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n) D.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)解
19、析:解析 二分法查找只适用于顺序存储的有序表,对于长度为 n 的有序线性表,最坏情况只需比较log 2 n 次。3.当不希望某个类被其他类继承时,就可以将该类标识为(分数:2.00)A.final B.abstractC.privateD.protected解析:解析 本题考查类定义中的关键字。final 修饰符表示这是一个不能被继承的类; abstract 修饰符表示该类是抽象类;protected 和 private 是用来设置访问权限的。题目希望某个类被其他类继承时,就可以将该类标识为 final,选项 A 正确。4.关系数据库管理系统能实现的专门关系运算包括_。(分数:1.80)A.排
20、序、索引、统计B.选择、投影、连接 C.关联、更新、排序D.显示、打印、制表解析:解析 关系数据库管理系统的专门关系运算包括选择运算、投影运算和连接运算。5.设循环队列的存储空间为 Q(1:35),初始状态为 front=rear=35。现经过一系列入队与出队运算后,front=15,rear=15,则循环队列中的元素个数为_。(分数:2.00)A.15B.16C.20D.0 或 35 解析:此题目主要考查数据结构中队列的存储规则,队列的元素个数为 rear-front,如果差是非正数,加队列的长度。当队首与队尾指向同一空间时,队列可能为空,也可能为满,所以选择 D。6.在 Applet 生命
21、周期中,下面方法中是在装载 Applet 时被调用的是_。(分数:2.00)A.stop()B.init() C.start()D.destroy()解析:解析 在 JavaApplet 的生命周期中,共有 4 种状态和 4 个方法:init()、start()、stop()和destroy()。在 Applet 装载时,由浏览器或 appletviewer 调用 init()方法,通知该 Applet 已被加载到浏览器中,使 Applet 执行一些基本初始化。7._根据判定条件的真假来决定执行哪一种操作。(分数:1.00)A.多分支语句B.条件语句 C.switch 语句D.For 语句解析
22、:8.阅读下面程序 public class Test1 public static void main(String args) System.out.println(34+56-6); System.out.println(26*2-3); System.out.println(3*4/2); System.out.println(5/2); 程序运行结果是(分数:2.00)A.84 49 6 2 B.90 25 6 2.5C.84 23 12 2D.68 49 14 2.5解析:解析 本题考查 Java 的表达式运算。 程序中包含四条输出语句,运行时首先计算表达式的结果,然后将结果进行输
23、出。 第一个表达式 34+56-6,运算结果为 84,然后输出。因此,运行结果的第一行显示“84”。 第二个表达式 26*2-3,*号代表乘法,运算结果为 49,然后输出。因此,运行结果的 第二行显示“49”。到此,可以判断,本题的正确答案是选项 A。9.下列代码的执行结果是_。 public class Test1 public static void main(String args) float t=9.0f; int q=5; System.out.println(t+)*(-q); (分数:1.00)A.40B.40.0C.36D.36.0 解析:10.下列选项成员变量声明正确的是_
24、。(分数:1.80)A.public protected final int i;B.abstract class F1.C.private double height; D.double weight解析:解析 本题考查对成员变量的声明。成员变量的声明格式为:修饰符 type 变量名;其中 type 可以是 java 语言中的任意数据类型,而修饰符可以是 public、protected, prlvate, static, final, transient, volatile 等。选项 A 错误,成员变量不能同时声明成 public 和 protected。选项 B 是类的声明格式,并不是成
25、员变量的声明。成员变量声明应以“;“结尾,选项 D 错误。选项 C 声明了一个私有的double 型成员变量,为正确答案。11.Java 程序的解释执行过程分为_。(分数:2.00)A.代码的装入、校验、执行 B.代码的校验、装入、执行C.代码的校验、装入、执行D.代码的装入、执行、校验解析:解析 该题考查考生对 Java 程序的解释执行过程的掌握。解释执行过程分 3 步进行:代码的装入,装入代码的工作由“类装载器”完成;代码的校验,被装入的代码由字节码校验器进行检查;代码的执行,通过校验后,代码便开始执行了。12.设有如下三个关系表 (分数:2.00)A.T=RSB.T=RSC.T=RS D
26、.T=R/S解析:13.线性表中经常采用的两种存储结构是_。(分数:2.00)A.顺序存储结构和链式存储结构 B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构解析:解析 线性表的存储通常有两种存储结构:顺序存储结构和链式存储结构。14.在创建 Applet 应用程序时,需要用户考虑的问题是_。(分数:2.00)A.窗口如何创建B.绘制的图形在窗口中的位置 C.程序的框架D.事件处理解析:解析 Applet 类是所有 Applet 应用程序的基础,该类为 Applet 应用提供了程序框架,在创建Applet 应用程序时,只需要在框架中填入相应的方法,至于窗口如何创建、
27、事件处理如何进行都不需要用户考虑。用户只需要把注意力集中在如何在窗口中进行用户界面设计等问题上。15.一个对象的生命周期分为_三个阶段。(分数:2.00)A.生成、清除和使用B.使用、生成和清除C.生成、使用和清除 D.清除、使用和生成解析:16.JDK 基本命令中能生成 C 语言头文件的命令是_。(分数:2.00)A.javah B.javapC.jarD.java解析:解析 javah 可以生成 C 头文件和 Stub 文件。17.下列程序实现对 ZIP 文件 filel4.zip 的检索,在横线处填入正确的语句。 package ch1; import java.io.*; import
28、 java.util.*; import java.util.zip.*; public class exl4 publio static void main(String args try FileInputStream fis = new FileInputStream(“chl/filel4.zip“); ZipInputStream zis = new zipInputStream(fis); ZipEntry en; while(_) ! = null) en.getName(); zis.clcseEntry(); zis.close(); catch(Exception e) e
29、.printStackTrace(); (分数:2.00)A.en = zis.getNexTEnTRY() B.en = zis.getEntry()C.en=zis.getNextEntry()D.zis.getNextEntry()解析:18.下列各选项中属于 Java 保留字的是 _ 。(分数:2.00)A.TRUEB.NULLC.FALSED.null 解析:解析 在 Java 中,常量 null、false、true 都是小写的;所以 A、B 和 C 选项中的字符串都不是Java 的保留字。19.下列关于过滤流的叙述中,不正确的是_。(分数:2.00)A.过滤流提供了同步处理机制,
30、保证某 I/O 流只能同时被一个线程访问B.过滤流可以使用文件作为构造函数的参数 C.过滤流是 FilterInputSream 和 FilterOuputStream 抽象类及其子类D.使用过滤流时先把过滤流连接到某个 I/O 流上解析:解析 FilterInputSream 和 FilterOuputStream 抽象类及其子类是过滤流类,它们保证某 I/O 流只能同时被一个线程访问,从而为 Java 对 I/O 的同步处理机制提供保障。使用过滤流时先把过滤流连接到某个 I/O 流上,再通过构造方法的参数去指定连接的 I/O 流。20.下面代码段的输出是 _ 。 if (5 (分数:1.0
31、0)A.编译出错 B.5752C.trueD.无输出解析:解析 本题考查对位运算符和逻辑运算符的理解。位运算符“ case 1:printf(“#“);break; default:printf(“/n“); case 2:printf(“); (分数:2.00)A.#*B.#*C.# D.#解析:23.在 E-R 图中,用来表示实体的图形是(分数:2.00)A.矩形 B.椭圆形C.菱形D.三角形解析:解析 在 E-R 图中,用 3 种图框分别表示实体、属性和实体之间的联系,其规定如下:用矩形框表示实体,框内标明实体名;用椭圆状框表示实体的属性,框内标明属性名:用菱形框表示实体间的联系,框内标
32、明联系名。所以,选项 A 正确。24.以下定义线程方法正确的是_。(分数:2.00)A.Public Thread();B.Public Thread(Runnable target)C.Public Thread(ThreadGroup group,Runnable target);D.以上都正确 解析:解析 Tread 类在 Java API 的 java. lang 包中定义,Thread 类的构造方法有多个,这些方法的一般构造可以表示如下:public Thread (ThreadGroup group,Runnable target,String name);其中参数的含义是:gro
33、up指明该线程所属的线程组;target提供线程体的对象,线程启动时,该对象的run()方法将被调用;name线程名称,Java 中的每个线程都有自己的名称,如果 name 为 null,则 Java自动给线程赋予惟一的名称。上述方法的每个参数都可以为 null。不同的参数去 null 值,就成为 Thread类的各种构造方法。所以选项 A、B、C 的构造方法都是正确的。25.下列情况中,不会使线程返回所持有的对象锁的是 _ 。(分数:2.00)A.当 synchronized()语句块执行完毕B.当调用了线程的 suspend()方法 C.当在 synchronized()语句块中出现异常(
34、Exception)D.当持有锁的线程调用该对象的 wait()方法解析:解析 本题考查 Java 线程中对象的加锁及其操作。对象加锁的使用非常灵活,一定要注意。对象的锁在如下几种情况下由持有线程返还:当 synchronized()语句块执行完后,所以选项 A 错误;当在synchronized()语句块中出现异常 (exception),所以选项 B 错误;当持有锁的线程调用该对象的 wait()方法,此时该线程将释放对象的锁,所以选项 D 错误。而当调用了线程的 suspend()方法只是使线程暂时停止执行,可以使用其他线程调用 resume()方法恢复执行,所以选项 B 正确。26.已
35、知数据表 A 中每个元素距其最终位置不远,为了节省时间,应采用的算法是_。(分数:2.00)A.堆排序B.直接插入排序 C.快速排序D.直接选择排序解析:若数据表 A 中每个元素距其最终位置不远,说明数据表 A 按关键字值的排序是有序的。在待排序列基本有序的情况下,采用插入排序所用的时间最少。27.运行 Java 程序需要的工具软件所在的目录是_。(分数:2.00)A.JDK 的 bin 目录 B.JDK 的 demo 目录C.JDK 的 lib 目录D.JDKR 的 jre 目录解析:解析 JDK 目录中,选项 A 的 bin 目录下存放编译器、解释器和许多工具;选项 B 的 demo 目录
36、下有各种演示例子;选项 C 的 lib 目录下都是库文件;选项 D 的 jre 目录是 Java 程序运行环境的根目录。另外还有 include 目录是 win32 子目录,都是本地方法文件。28.Panel 类的默认布局管理器是_。(分数:2.00)A.BorderLayoutB.CardLayoutC.FlowLayout D.GridBagLayout解析:解析 FlowLayout 是 Panel 和 Applet 的默认布局管理器。29.阅读如下程序。 public class Test2 public static void main(String args) int a=10,b
37、=4,c=20,d=6; System.out.println(a+*b+c*-d); 程序运行结果是_。(分数:2.00)A.144B.160C.140 D.164解析:解析 表达式 a+和-d 的值分别是 a 和 d-1,所以程序运行结果是 104+20(6-1)=40+100=140。30.结构化程序设计的一种基本方法是 _(分数:2.00)A.筛选法B.递归法C.归纳法D.逐步求精法 解析:解析 结构化程序设计的主要方法是自顶向下,逐步求精,模块化,限制使用 GOTO 语句。所以选择 D。31.下列代码中 if(x0)System. out. println(“first“); els
38、eif(x-3)System. out. println(“second“); elseSystem. out. println(“third“); 要求打印字符串为“second”时,x 的取值范围是_。(分数:1.80)A.x=0 且 x-3 B.x0C.x-3D.x=-3解析:解析 本题考查 Java 中的条件结构。条件语句根据判定条件的真假来决定执行哪一种操作。题目所给程序,如果 x0,则直接执行其后的 System. out. println(“first“)语句,而不执行 elseif 等语句,当 x=0 且 x-3 时执行 System. out. println(“second
39、“)语句,所以选项 A 正确。当 x 为其他值时执行 else 语句。应该对 Java 的流程控制涉及的语句有所掌握,这些都是考试重点内容。32.Swing 的选项面板是_。(分数:2.00)A.JtabbedPane B.JLayeredpaneC.JScrollPaneD.JsplitPane解析:解析 Swing 中的选项面板(JTabbedPane)提供了一组可供用户选择的带有标签或图标的选项,每个选项下面都可以显示一个构件。33.有下列二叉树,对此二叉树前序遍历的结果为_。 (分数:2.00)A.XZCYABB.XYZABCC.XYABCZD.XYAZBC 解析:解析 对二叉树的前序
40、遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次防问其左、右子树。34.当使用 SomeThread t=new SomeThread()创建一个线程时,下列叙述中正确的是_。(分数:1.80)A.SomeThread 类是包含 run()方法的任意 Java 类B.SomeThread 类一定要实现 Runnable 接口C.SomeThread 类是 Thread 类的子类 D.SomeThread 类是 Thread 类的子类并且要实现 Runnable 接口解析:解析 由 SomeThread t=new SomeThread()可
41、知此题是通过继承 Thread 类来创建线程的。35.下面属于黑盒测试方法的是_。(分数:2.00)A.语句覆盖B.逻辑覆盖C.边界值分析 D.路径覆盖解析:解析 黑盒测试方法包括等价类和边界值分析。36.下列模式中,能够给出数据库物理存储结构与物理存取方法的是_。(分数:2.00)A.内模式 B.外模式C.概念模式D.逻辑模式解析:概念模式(Conceptual Schema)是对数据库系统中全局数据逻辑结构的描述,此种描述是一种抽象的描述,它不涉及具体的硬件环境与平台,也与具体的软件环境无关。外模式(External Schema)也称子模式(Subschema)或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出。概念模式给出了系统全局的数据描述,而外模式则给出了每个用户的局部数据描述。内模式(Internal Schema)又称物理模式(Physical Schema),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及 Hash 等存取方式与存取路径。