1、国家二级( JAVA)笔试模拟试卷 127及答案与解析 1 设一棵完全二叉树共有 699个结点,则该二叉树中的叶子结点数为 ( )。 ( A) 349 ( B) 350 ( C) 255 ( D) 351 2 下述关于数据库系统的叙述中正确的是 ( )。 ( A)数据库系统减少了数据冗余 ( B)数据库系统避免了一切冗余 ( C)数据库系统中数据的一致性是指数据类型的一致 ( D)数据库系统比文件系统能管理更多的数据 3 下列对队列的叙述中正确的是 ( )。 ( A)队列属于非线性表 ( B)队列按 “先进后出 ”原则组织数据 ( C)队列在队尾删除数据 ( D)队列按 “先进先出 ”原则组织
2、数据 4 下列叙述中正确的是 ( )。 ( A)软件测试的主要目的是发现程序中的错误 ( B)软件测试的主要目的是确定程序中错误的位置 ( C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作 ( D)软件测试是证明软件没有错误 5 在结构化程序设计中,模块划分的原则是 ( )。 ( A)各模块应包括尽量多的功能 ( B)各模块的规模应尽量大 ( C)各模块之间的联系应尽量紧密 ( D)模块内具有高内聚度、 模块间具有低耦合度 6 对下列二叉树进行前序遍历的结果为 ( )。 ( A) DYBEAFCZX ( B) YDEBFZXCA ( C) ABDYECFXZ ( D) AB
3、CDEFXYZ 7 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是 ( )。 ( A)控制流 ( B)加工 ( C)数据存储 ( D)源和潭 8 下列叙述中正确的是 ( )。 ( A)算法的效率只与问题的规模有关,而与数据的存储结构无关 ( B)算法的时间复杂度是指 执行算法所需要的计算工作量 ( C)数据的逻辑结构与存储结构是一一对应的 ( D)算法的时间复杂度与空间复杂度一定相关 9 某二叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为 ( )。 ( A) n+1 ( B) n-1 ( C) 2n ( D) n/
4、2 10 下列叙述中错误的是 ( )。 ( A)在数据库系统中,数据的物理结构必须与逻辑结构一致 ( B)数据库技术的根本目标是要解决数据的共享问题 ( C)数据库设计是指在已有数据库管理系统的基础上建立数据库 ( D)数据库系统需要操作系统的支持 11 Java程序编译后的形式叫做 ( )。 ( A)机器码 ( B)浓咖啡 ( C)字节码 ( D) BCD码 12 下面所列类型中,不是复合数据类型的是 ( )。 ( A)类 ( B)数组 ( C)整型 ( D)接口 13 下列关于变量作用域的描述中,不正确的是 ( )。 ( A)变量属性是用来描述变量作用域的 ( B)局部变量作用域只能是它所
5、在方法的代码段 ( C)类变量能在类的方法中声明 ( D)类变量的作用域是整个类 14 下列关于基本数据类型的说法中,不正确的是 ( )。 ( A) boolean是 Java特殊的内置值,或者为真或者为假。 ( B) float是带符号的 32位浮点数 ( C) double是带符号的 64位浮点数 ( D) char是 8位的 Unieode字符 15 Java中,数值类型值中不可能出现的符号是 ( )。 ( A) f ( B) d ( C) / ( D) e 16 下面程序片段的执行中,说法正确的是 ( )。 public class Test public static void ma
6、in (String args) byte y=20; int i=y; int x=100; y=x; System.out.println(y); ( A)输出 y的值为 100 ( B)第 4行错误 ( C)输出 y的值为 20 ( D)第 6行错误 17 下面专门定义常量变量的保留字是 ( )。 ( A) interface ( B) int ( C) var ( D) final 18 switch语句 ( )。 ( A) 有的可以用 if-else if结构实现 ( B)都不可以用 if-else if结构实现 ( C)都可以用 if-else if结构实现 ( D)大部分可以用
7、if-else if结构实现 19 给出下面程序段 if(x0) System.out.println(“Hello “); else if(x -3) System.out.println(“Nice to meet you!“); else System.out.println(“How are you?“); 若打印字串 “How are you?“,则 x的取值范围是 ( )。 ( A) x 0 ( B) x -3 ( C) x =-3 ( D) x =0 public Person (String n, String d,intA) _ department=d; A)Person
8、(n, A); ( B) this (Person(n, A); ( C) this(n, A); ( D) this(name, age); 23 下列能正确计算 45的余弦值的是 ( )。 ( A) double d Math.cos(45); ( B) double d Math.cosine(45); ( C) double d=Math.cos (Math.toRadians(45); ( D) double d=Math.cos (Math.toDegress(45); 24 现有一个整型数组 a4,它的所有数组元素为 ( )。 ( A) a0、 a1、 a2、 a3 ( B) a
9、0、 a1、 a2、 a3 ( C) a1、 a2、 a3、 a4 ( D) a0、 a1、 a2、 a3、 a4 25 下面程序代码运行结果为 ( )。 import java.awt.*; public class Test public static void main (String args) String s1=“a+b+c“; String s2=“+“; int i=s1.lastIndexOf (s2); System.out.println(i); ( A) 0 ( B) 1 ( C) 2 ( D) 3 26 java.io包的 File类是 ( )。 ( A)字符流类 (
10、 B)字节流类 ( C)对象流类 ( D)非流类 27 在文件类提供的方法中,用于创建目录的方法是 ( )。 ( A) mkdir() ( B) mkdirs() ( C) list() ( D) listRoots() 28 所有字节输出流都 ( )。 ( A)实现 Serializable接口 ( B)实现 Objectoutput接口 ( C)继承于 Reader抽象类 ( D)继承于 OutputStream类 29 下列关于 Thread类中方法的叙述正确的是 ( )。 ( A)方法 activeCount()的功能是获取当前活动的线程数 ( B)方法 enumerate()的功能是
11、拷贝当前活动线程信息 ( C)方法 getName()获取线程的名称,而方法 getThreadGroup()可以获取当前线程所属线程组的名称 ( D)方法 toString()的功能是转化输入的数据类型,以字符串形式输出 30 Thread类中启动线程体的方法是 ( )。 ( A) start() ( B) resume() ( C) init() ( D) run() 31 对象状态的持久是通过 ( )实现的。 ( A)管道 ( B)过滤器 ( C)文件 ( D)串行化 32 所有 Swing构件都实现了 ( )接口。 ( A) Accessible ( B) MouseListener
12、( C) ActionListener ( D) Serializable 33 下面不属于 java.awt.Event包中定义的事件适配器是 ( )。 ( A)焦点适配器 ( B)键盘适配器 ( C)标签适配器 ( D)构件适配器 34 下列不属于 Applet运行过程的是 ( )。 ( A)浏览器加载指定 URL中的 HTML文件 ( B)编译 Applet程序 ( C)浏览器解析 HTML文件 ( D)浏览器中的 Java运行环境运行 Applet 35 关于 Applet,下面选项中错误的是 ( )。 ( A) Applet就是一个 Application ( B) Applet可以
13、在浏览器中执行 ( C) Application可以直接用 Java解释器执行 ( D) Applet也可以是一个 Application 36 一棵二叉树第六层 (根结点为第一层 )的结点数最多为【 】个。 37 算 法复杂度主要包括时间复杂度和【 】复杂度。 38 在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块 (桩模块 )。其中【 】的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。 39 数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【 】。 40 数据结构分为逻辑结构和存储结构,循环队列属于【
14、】结构。 41 Java的简单性首先体现在自身系统的精炼上,它的基本解释程序和【 】占内存 40 KB,附加的 基本标准类库和支持线程程序占 175 KB。 42 在 Java语言中的实数,如数字后没有任何字母,计算机默认其为【 】类型。 43 switch语句先计算保留字 switch后面【 】的值,再和各 case语句后的值做比较。 44 在捕获或声明异常时,应注意选择适当的异常类,选择适当的地方处理,是在方法内处理还是用【 】子句传递给调用栈的上层。 45 在 Java新的 I/O功能中,通过文件锁定来实现多个线程的【 】,避免了可能存在的安全隐患。 46 Java中实现完全定制串行化,
15、必须实现 【 】接口。 47 Applet是能够嵌入到【 】页面中,并能够在浏览器中运行的 Java类。 48 下面 Applet在窗口中实现一个不可编辑的 TextField,并且显示 “ok”。在横线处填入正确的语句。 import java.applet.Applet; import java.awt.t; public class Test extends Applet TextField tf; public void init () setLayout (new GridLayout(1, 0); tf=new TextField(“ok“); 【 】 add(tf); 49 复选
16、框通过【 】来监听 ItemEvent事件。 50 数字签名的验证过程是:首先引入签名密钥的公钥,其次建立【 】,然后配置本地运行环境的安全策略。 国家二级( JAVA)笔试模拟试卷 127答案与解析 1 【正确答案】 B 【试题解析】 所谓完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。具有 n 个结点的完全二叉树,其父结点数为 int(n/2),而叶 子结点数等于总结点数减去父结点数。本题 n=699,故父结点数等于 int(699/2) 349,叶子结点数等于 699-349 350。 2 【正确答案】 A 【试题解析】 由于数据的集成性使得数
17、据可为多个应用所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围。数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值,而数据的不一致性指的是同一个数据在系统的不同拷贝处有 不同的值。 3 【正确答案】 D 【试题解析】 队列是指允许在一端进行插入、而在另一端进行删除的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。它又称为 “先进先出 ”或 “后进后出 ”的线性表,体现了 “先来先服务 ”的原则。 4 【正确答案】 A 【试题解析】 软件测试是为了发
18、现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。 5 【正确答案】 D 【试题解析】 软件设计中通常采用结构化设计方法,模块的独立程度是评价设计好坏的重要度量标准。耦合性与内聚性是模块独立性的两个定性标准。内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量;耦合性是模块间互相连接的紧密程度的度量。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。 6 【正确答案】 C 【试题解析】 前序
19、遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且 遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。 7 【正确答案】 A 【试题解析】 数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工 (转换 )、数据流、存储文件(数据源 )、源和潭。 8 【正确答案】 B 【试题解析】 通常用时间复杂度和空间复杂度来衡量算法效率。算法的时间复杂度是指执行算法所需要的计算工作量;算法所执行的基本运算次数与问题的规模有关。而一个算法的空间复杂度,一般是指执行这个算法所需要的内存空
20、间;一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构。 9 【正确答案】 A 【试题解析】 在任意一棵二叉树中,度为 0的结点 (即叶子结点 )总是比度为 2的结点多一个。本题中度为 2的结点数为 n,故叶子结点数为 n+1 个。 10 【正确答案】 A 【试题解析】 数据库系统具有数据独立性的特点,数据独立性一般分为物理独立性与逻辑独立性两级。物理独立性即数据的物理结构的改变不影响数据库的逻辑结构;逻辑独立性即数据库总体逻辑结构的改变不需要相应修改应用程序。所以,在数据系统中,数据的物理结构并不一 定与逻辑结构一致。 11 【正确答案】 C 【试题解析】 Java编译器将源代码文件
21、转变成字节码。 Java解释器将字节码转换成特定平台的机器码。 12 【正确答案】 C 【试题解析】 复合数据类型包括数组、类和接口。 13 【正确答案】 C 【试题解析】 类变量在类中声明,作用域是整个类,它不能在类的方法中声明。局部变量在类的方法中声明,作用域只能是它所在的方法。 14 【正确答案】 D 【试题解析】 char应该是 16位 Unicode字符。 15 【正确答案】 C 【试题解析】 Java中, e用于科学计数法形式表示实常数,如 123e3或 123E3,其中 e或 E 之前必须有数字, e或 E 后面的指数必须为整数。 d表示 double型的值,如 1.23d 或者
22、 1.23D。对于 float型的值,则在数字后加 f 或 F,如 12.3F或者132.3f,它在机器中占 32位,且表示精度较 double型要低。 16 【正确答案】 D 【试题解析】 赋值运算符 “=”把一个数据赋给一个变量,在赋值运算符两侧的类型不一致时,若左侧变量的数据类型的级别高,则右侧的数据被转化为与左侧相同的高 级数据类型,然后赋给左侧变量,否则需要使用强制类型转换运算符。 int类型级别比 byte类型级别高,必须进行强制类型转换。第 6行应改为y=(byte)x;。 17 【正确答案】 D 【试题解析】 final 是专门定义常量变量的保留字,说明该变量赋值以后永不改变,
23、变量初值是该变量的默认值。 18 【正确答案】 C 【试题解析】 switch 语句的功能都可以用 if-else if 结构实现,不过有时候 if-else if 结构会比较复杂而已,用 switch 使结构清晰。当比较的数据类型为实型时,不能 用 switch,只能用 if-else if。 19 【正确答案】 C 【试题解析】 How are you?字串在第二个 else后,因此既不满足 x 0,也不满足 x -3,因此 x -3。 20 【正确答案】 B 【试题解析】 本题目实际上是利用循环求 1到 n 的和, n为 5,所以结果为 15。 21 【正确答案】 D 【试题解析】 异常
24、处理的原则如下: 把应用程序的异常事件分类,利用异常层次来动态控制。 把子异常处理的代码与正常代码分开,简化程序并增加可读性。 利用 finally 语句 作为异常处理的统一出口。 能用简单测试就不要用异常控制,对异常不能过分细化,也不要压制,不要介意对异常的传递。 自定义的异常类都是 Throwable 及其子集,除了产生或不易预测的异常外,都定义为非运行时的异常。 22 【正确答案】 C 【试题解析】 本题主要考查在同一个类的不同构造方法中调用该类的其他构造方法需要使用 this() 的形式,而且必须是在构造方法的第一行调用。这个和普通方法重载调用的方式不同,普通方法可以直接使用方法名加参
25、数来调用,而且调用位置没有限制,因此选项 A是不行的,选项 B 的语 法就是错误的,选项 D的错误在于在父类型的构造方法被调用前不能引用类的成员。构造方法是一个类对象实例化的开始,因此在构造方法中不能将成员作为参数引用。 23 【正确答案】 C 【试题解析】 public static double cos(doublea)是 Math 类中返回以弧度 a为单位的 cos值的,应先用 toRadians ()方法将 45度转换为弧度值。 24 【正确答案】 B 【试题解析】 创建一个数组的格式为: type arrayName ()=new typearraySize,arraySize表示数
26、组元素的个数。 a4表示数组 a有 4个元素,又由于数组的各元素用下标表示,下标起始值为 0,最大下标为元素个数 -1。因此,正确答案为 B。 25 【正确答案】 D 【试题解析】 lastIndexOf 方法返回一个整数值,指出 String 对象内子字符串的最后一次出现的开始位置下标。如果没有找到子字符串,则返回 -1。本题中子串“+”在字符串 “a+b+c”中出现了两次,最后一次出现的起始位置为 3。 26 【正确答案】 B 【试题解析】 File类是 java.io包中的非流 类,它以系统无关的方式描述文件对象的属性。 27 【正确答案】 A 【试题解析】 目录是 Java中一种特殊的
27、文件。提供的操作目录方法有: mkdir ()用来创建一个目录, mkdirs ()创建路径不存在的目录, list ()用来提取该目录内部其他文件和目录的列表, listRoots ()列出可用的文件系统根目录。 28 【正确答案】 D 【试题解析】 所有字节输出流都继承于 OutputStream类,字节输出流首先也要实现 DataOutput接口,字节数据流 DataOutputStream是一个已经实现了该接口的类。 29 【正确答案】 C 【试题解析】 方法 activeCount()的功能是获取当前线程所属线程组中的活动线程数;方法 enumerate()的功能是拷贝当前线程所属线
28、程组中的活动线程信息;方法getName()获取线程的名称,而方法 getThreadGroup()可以获取当前线程所属线程组的名称;方法 toString()的功能是以字符串形式获取线程的名称、优先级和线程组等信息。 30 【正确答案】 A 【试题解析】 控制线程启停类的方法有: start (),线程体开始运行; stop (),强行中止线程运行; suspend (),挂起线程,挂起后的线程将不能自动恢复,只能在其他线程中调用 resume()方法恢复线程的状态; resume (),恢复线程执行。所以选择 A。选项 D, run ()方法定义了线程体和线程的具体行为。 31 【正确答案
29、】 D 【试题解析】 将 Java程序中的对象保存在外存中,称为对象永久化。对象永久化的关键是将它的状态以一种串形格式表示出来,以便以后读该对象时能够把它重构出来。因此对 Java对象读、写的过程被称为对象串行化。 32 【正确答案】 A 【试题解析】 所有 Swing构件都实现了 Accessible接口,提供对可存取性的支持,使得辅助功能 (如屏幕阅读器 )能够方便地从 Swing构件中得到信息。 33 【正确答案】 C 【试题解析】 java.awt.Event包中定义的事件适配器包含以下几个:构件适配器、容器适配器、焦点适配器、键盘适配器、鼠标适配器、鼠标运动适配器、窗口适配器。 34
30、 【正确答案】 B 【试题解析】 Applet的运行过程经历了以下 4个步骤: 浏览器加载指定 URL中的 HTML 文件 浏览器解析 HTML 文件; 浏览器加载 HTML 文件中指定的Applet类; 浏览器中的 Java运行环境运行该 Applet。 35 【正确答案】 A 【试题解析】 A是错误的,因为 Applet中如果含有 main()方法的话,它可以是一个 Java Application,若没有的话,它仅是一个 Java小应用程序,需要在支持Java的浏览器中运行; B 选项是正确的,因为 Applet一般是要在 Web 浏览器中执行的; C选项是正确的, Applicatio
31、n 是一个独立的应用程序,可以在任何环境下使用 Java的解释器 (Java Virtual Machine)直接执行,且它是从其中的 main ()方法开始运行的; D选项是正确的,解释见 A选项的解释。 36 【正确答案】 32 【试题解析】 根据二叉树的性质:二叉树第 i(i1)层上至多有 2i-1个结点。得到第 6层的结点数最多是 26-1 32。 37 【正确答案】 空间 【试题解析】 算法是对解题方案的准确而完整的描述,其复杂度主要包括时间复杂度和空间复杂度。时间复杂度是指执行算法所需的计算工作量,空间复杂度一般是指执行算法所需的内存空间。 38 【正确答案】 驱动模块 【试题解析
32、】 在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块 (桩模块 )。其中,驱动模块相当于被测试模块的主程序,它接收测试数据,并传给被测试模块,输出实际测试结果。承接模块通常用于代替被测试模块调用的其他模块,其作用仅做少量的数据操作,是一个模拟子程序,不必将子模块的所有功能带入。 39 【正确答案】 数据库系统或数据库系统阶段或数据库或数据库阶段或数据库管理技术阶段。 【试题解析】 在数据管理技术的发展过程中,经历了人工管理阶 段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统阶段。 40 【正确答案】 逻辑 【试题解析】 数据的逻辑结构,是指反映数
33、据元素之间逻辑关系的数据结构,它在计算机存储空间中的存入形式称为数据的存储结构 (也称数据的物理结构 )。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。而循环队列就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。所以循环队列不需要存放元素之间的前后件关系,故它属于逻辑结构。 41 【正确答案】 类库 【试题解析】 Java由 Oak 发展而来,其简单性首先表现在自身系统的简练上,它的基本解释程序和类库仅占 40KB,附加的基本标准类库和多线程支持也仅占175 KB,力求用最小的系统完成尽可能多的功能。 42 【正
34、确答案】 double 【试题解析】 Java中的实数分为 float型和 double型, float 型实数常量后面跟 f或 F标明其类型,如 113f 和 11.3F都表示单精度实数; double 型实数常量后面跟d 或 D标明其类型,如 18.8d 和 18.8D都表示双精度实数 ;如果一个数后面没有任何字母,计算机默认其为 double型。 43 【正确答案】 表达式 【试题解析】 switch 语句的执行过程是:先计算 switch 后的表达式,然后以计算所得的值对比各 case语句后的值,以决定执行哪一个 case内的程序语句,若没有符合的条件,则执行 default后的程序语
35、句。 44 【正确答案】 throws 【试题解析】 捕获异常要求在程序的方法中预先声明,在调用方法时用 try-catch-finally 语句捕获并处理,用 throws子句声明异常和定义自己的异常 类,用throw 语句抛出异常。 45 【正确答案】 同步访问 【试题解析】 J2SE1.4 提供了一些新的 I/O功能,被封装在 java.nio 包中。其特点是:使用内存映射技术、文件锁定、字符及编码、非阻塞 I/O 等。文件锁定:当多个线程对于同一个文件进行访问时,文件锁定实现对多个线程的访问同步,避免了可能的文件安全隐患。 46 【正确答案】 Extennalizable 【试题解析】
36、 在对象的串行化中,根据其串行化的彻底性可以分为部分定制串行化和完全定制串行化两种。前者定制输出串行化类本身定 义的数据,而后者定制输出串行化类中所有的数据,包括串行化本身和其父类定义的数据。部分串行化的实现依赖于串行化类中定义的两个方法: writeObject()方法和 readObject()方法。完全定制串行化的实现依赖于 Extennalizable接口,该接口可以对对象串行化的过程进行完全、显式的控制,除了对象所属类标识,它将定制输出串行化类所有的数据。 47 【正确答案】 HTML 【试题解析】 JavaApplet的字节码文件必须嵌入 HTML 文件中并由负责解释HTML 文件
37、的 WWW浏览器充当解释器 来解释运行。 48 【正确答案】 setEditable(false) 【试题解析】 通过调用 TextField 构件的 setEditable(booleanb)方法,可以设置文本区的可编辑属性,参数 b 为 false时,文本为不可编辑。 49 【正确答案】 ItemListener 【试题解析】 复选框的不同选项对应的事件是 hemEvent,通过实现hemListener接口来监听该事件,并可以通过 getStateChange()获取选项的当前状态。 50 【正确答案】 安全策略 【试题解析】 首先将签名密钥的公钥引入本地策略库;,然后建立策略文件,再对签名的代码授予相应的权限,最后配置运行环境,执行安全策略。