1、国家二级( JAVA)笔试模拟试卷 135及答案与解析 1 栈和队列的共同特点是 ( A)都是先进先出 ( B)都是先进后出 ( C)只允许在端点处插入和删除元素 ( D)没有共同点 2 已知二叉树后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是 ( A) acbed ( B) decab ( C) deabc ( D) cedba 3 链表不具有的特点是 ( A)不必事先估计存储空间 ( B)可随机访问任意一个元素 ( C)插入删除不需要移动元素 ( D)所需空间与线性表长度成正比 4 结构化程序设计的 3种结构是 ( A)顺序结构、选择结构、转移结构 ( B)分支
2、结构、等价结构、循环结构 ( C)多分支结构、赋值结构、等价结构 ( D)顺序结构、选择结构、循环结构 5 为了提高测试的效率,应该 ( A)随机选取测试数据 ( B)取一切可能的输入数据作为测试数据 ( C)在完成编码以后制定软件的测试计划 ( D)集中对付那些错误群集的程序 6 算法的时间复杂度是指 ( A)执行算法程序所需要的时间 ( B)算法程序的长度 ( C)算法执行过程中所需要的基本运算次数 ( D)算 法程序中的指令条数 7 软件生命周期中所花费用最多的阶段是 ( A)详细设计 ( B)软件编码 ( C)软件测试 ( D)软件维护 8 数据库管理系统 DBMS中用来定义模式、内模
3、式和外模式的语言为 ( A) C ( B) Basic ( C) DDL ( D) DML 9 下列有关数据库的描述,正确的是 ( A)数据库是一个 DBF文件 ( B)数据库是一个关系 ( C)数据库是一个结构化的数据集合 ( D)数据库是一组文件 10 下列有关数据库的描述,正确的是 ( A)数据处理是将信息转化为数据的过 程 ( B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变 ( C)关系中的每一列称为元组,一个元组就是一个字段 ( D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字 11 下列说法正确的是 ( )。
4、 ( A) java.lang.Integer是接口 ( B) java.lang.Runnable是类 ( C) Double对象在 java.lang包中 ( D) Double对象在 java.lang.Object包中 12 Java语言 中,负责并发管理的机制是 ( )。 ( A)垃圾回收 ( B)虚拟机 ( C)代码安全 ( D)多线程 13 下列说法中,错误的是 ( )。 ( A) Java的数据类型必须通过常量来实例化后才可使用 ( B) Java中的常量和变量一样也有各种类型 ( C) Java中的变量由变量名、变量类型、变量属性、变量初始值组成 ( D) Java中的变量分
5、为两大类型:基本类型和复合类型 14 一个 int类型变量和一个 byte类型的常量做加法,结果是 ( )类型。 ( A) int ( B) byte ( C) char ( D)无法计算 15 下列关于 Java语言简单数据类型的说法中,错误的是 ( )。 ( A) float类型占内存少,运算快 ( B) float类型占内存少,但是运算速度比不上 double类型 ( C) double类型精度高于 float类型 ( D) double类型在计算机的内存中占 64位 16 下列运算符中,与 +具有相同优先级的是 ( )。 ( A) * ( B) / ( C) % ( D) - 17 下
6、列关于 equals()方法和 =运算符的说法,不正确的是 ( )。 ( A) equals()方法 可以用来比较复合数据类型的数值是否相等 ( B) =运算符可以用来比较简单数据类型的数据值是否相同 ( C) =运算符和 equals()方法的功能一样,可以相互替换 ( D) =运算符和 equals()方法的功能不一样,不可以相互替换 18 可以在 for循环初始化部分声明一个变量,其作用域是 ( )。 ( A)整个 for循环 ( B) for循环后的所有部分 ( C) for循环所在的代码块 ( D)全部代码 19 下面不属于条件语句关键字的是 ( )。 ( A) else ( B)
7、switch ( C) while ( D) if 20 下面说法中正确的是 ( )。 ( A) Java程序不需编译也可直接执行 ( B) Java程序经过编译后的字节代码仍然是 ASCII文件 ( C) Java程序经过编译后的字节代码是二进制文件,可以在操作系统上直接执行 ( D) Java程序经过编译后的字节代码是二进制文件,可以在 Java虚拟机上执行 21 下面代码的执行结果是 ( )。 public class test public static void main (String args) float m=5.0f; int n 4; System.out.println(
8、+m)*(n-); ( A) 20.0 ( B) 20 ( C) 24.0 ( D) 24 22 下列关于构造方法的特点,不正确的说法是 ( )。 ( A)构造方法名与类名必须相同 ( B)构造方法是给对象赋初值,无返回值,所以返回类型为 void ( C)构造方法不能被程序调用 ( D)构造方法可以重载 23 如果局部 变量与实例变量同名,那么如何在局部变量的作用域内引用实例变量 ?( ) ( A)无法引用,必须更名使两者名字不同 ( B)在实例变量前加关键字 this,使用 this访问该实例变量 ( C)在实例变量前加关键字 super ( D)不影响,系统可以自己区分 24 下面关于数
9、组定义语句不正确的是 ( )。 ( A) int a1, a2; ( B) int a0=1, 2, 3, 4, 5; ( C) double d=new double8; ( D) float f =new 2.Of, 3.5f, 5.6f, 7.8f; 25 下列关于字符串的叙述错误的是 ( )。 ( A)创建 String类的字符串对象后,字符串所代表的内容根据情况可改变 ( B)字符串可以使用 java.lang.String和 java.lang.StringBuffer来定义 ( C) StringBuffer用来处理长度可变的字符串 ( D)在 Java语言中,字符串是作为对象来
10、处理的 26 下列说法中错误的是 ( )。 ( A)可串行化的类必须实现 Serializable接口 ( B)可串行化的类中的静态变量可以不被串行化 ( C) private数据访问权限能够限制数据不被串行化 ( D)对象串行化使用 Java语言提供的默认机制 27 在读字符文件 emplyee.dat时,使用该文件作为参数的类是 ( )。 ( A) BufferReader ( B) DataInputStream ( C) DataOutputStream ( D) FileInputStream 28 下列不属于 FileInputStream输入流的 read()成员函数的是 ( )
11、。 ( A) int read (byte b, int offset, int len) ( B) int read (int line) ( C) int read () ( D) int read (byte b) 29 获取一个不包含路径的文件名的方法为 ( )。 ( A) String getAbsolutePath(); ( B) String getParent(); ( C) String getName(); ( D) String getPath(); 30 下列说法中,错误的是 ( )。 ( A)线程就是程序 ( B)线程是一个程序的单个执行流 ( C)多线程 是指一个程
12、序的多个执行流 ( D)多线程用于实现开发 31 调用线程的下列方法中,不能使线程暂停的方法是 ( )。 ( A) sleep() ( B) yield() ( C) stop() ( D) join() 32 下列 ( )选项操作是 Applet可以做的。 ( A)访问客户端系统的一部分信息 ( B)访问客户端的文件系统 ( C)在客户端调用本地动态链接库 ( D)在客户端访问电子邮件地址 33 Frame默认的布局管理器是 ( )。 ( A) FlowLayout ( B) BorderLayout ( C) GridLayout ( D) CardLayout 34 下面关于 Apple
13、t的说法正确的是 ( )。 ( A) Applet也需要 main方法 ( B) Applet继承自 java.awt.Applet或 javax.swing.JApplet ( C) Applet能访问本地文件 ( D) Applet程序不需要编译 35 如果要创建一个带图形用户界面的小程序,应覆盖方法 ( ),创建界面组件并将其加入到小程序中。 ( A) paint(Graphics) ( B) start() ( C) stop() ( D) init() 36 数据库系统的三级模式分别为【 】模式、内部级模式与外部级模式。 37 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可
14、以分为三种:前序遍历、【 】遍历和后序遍历。 38 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、【 】和限制使用 goto语句。 39 软件的调试方法主要有:强行排错法、【 】和原因排除法。 40 在面向对象的程序设计中,用来请求对象执行某一操作或回答某些信息的要求称为【 】。 41 如果想在程序中利 用 JLabel类,则该程序可以使用 import 【 】 JLabel;语句引入 JLabel类。 42 在 Java程序中,复杂算法可以通过循环语句和【 】的相互嵌套来实现。 43 阅读下列代码段 int x=3; while(x9) x+=2; x+; while语句成功执行
15、的次数是【 】。 44 阅读下列代码 public class Test public static void main (String args) System.out.println(5/2); 其执行结果是【 】。 45 将一个对象写到一个流中,应该调用 ObjectOutputStream类的【 】。 46 Java中方法的参数传递是【 】调用,方法不能改变参数值,但可以改变变量值,两个对象之间的参数字段不能相互交换。 47 Java中的继承机制之所以能够降低程序的复杂性,提高编程效率,主要是因为它使代码可【 】。 48 JTextField的事件监听器接口是【 】。 49 当实现 R
16、unnable接口时,要实现的方法是【 】。 50 MouseDragged()方法是 MouseMotionListener接口中的抽象方法,该方法的参数是【 】类。 国家二级( JAVA)笔试模拟试卷 135答案与解析 1 【正确答案】 C 【试题解析】 栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出 ”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种 “先进先出 ”的线性表。 2 【正确答案】 D 【试题解析】 依据后序遍历序列可确定根结点为 c;再 依据中序遍历序列可知
17、其左子树由 deba构成,右子树为空;又由左子树的后序遍历序列可知其根结点为e,由中序遍历序列可知其左子树为 d,右子树由 ba构成,如下图所示。求得该二叉树的前序遍历序列为选项 D)。 3 【正确答案】 B 【试题解析】 链表采用的是链式存储结构,它克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。但是链式存储结构也有不足之处: 每个结点中的指针域需额外占用存储空间; 链式存储结构是一种非随机存储结构。 4 【正确答案】 D 【试题解析】 顺序结构、选择结构和循环结构 (或重复结构 )是结构化程序设计的3种基本结构。 5
18、【正确答案】 D 【试题解析】 测试的目的是发现软件中的错误。经验表明,程序中存在错误的概率与该程序中已发现的错误数成正比。这一现象说明,为了提高测试效率,测试人员应该集中对付那些错误群集的程序。 6 【正确答案】 C 【试题解析】 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个 算法所需要的内存空间。 7 【正确答案】 D 【试题解析】 软件生命周期分为软件定义、软件开发及软件运行维护 3个阶段。本题中,详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最
19、长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。 8 【正确答案】 C 【试题解析】 选项 A), B)显然不合题意。数据定义语言 (Data Definition Language,简称 DDL)负责数据的模式定义与数据的物理存取构建;数据操纵语言 (Data Manipulation Language,简称 DML)负责数据的操纵,包括查询及增、删、改等操作。 9 【正确答案】 C 【试题解析】 数据库 (Database,简称 DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中
20、的数据具有 “集成 ”、 “共享 ”之特点。 10 【正确答案】 D 【试题解析】 数据处理是指将数据转换成信息的过程,故选项 A)叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项 B)叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项 C)叙述错误。 11 【正确答案】 C 【试题解析】 Java.lang 包封装所有编程应用的基本类,如 Object、 Integer、Double、 Runnable 等。 12 【正确答案】 D 【试题 解析】 多线程是 Java程序的并发机制,它能同步共享、处理不同的
21、事件。多线程技术容易实现网上实时交互,为解决网上大数量的客户访问提供技术基础。 13 【正确答案】 A 【试题解析】 Java的数据类型必须实例化后才能使用,但是通过变量也可实例化,而不是必须要常量才能实例化。 14 【正确答案】 A 【试题解析】 int类型常量和 byte类型常量做加法,首先 byte类型常量自动转换为 int类型,因此最后的结果应该是 int类型的数值。 15 【正确答案】 B 【试题解析】 由于 Java语言中的 float类型占内存较少,只占存储的 32位,比double类型的 64位少,因此,运算速度比 double类型快。 16 【正确答案】 D 【试题解析】 运
22、算符 +有两种情况,一种是一元加,这时它的优先级高于 *、 /和 %;另一种是二元加,这时它的优先级低于 *、 /和 %,这里 *、 /和 %具有相同的优先级。但是对于运算符 而言,无论是一元还是二元,它的优先级都和 +运算符相同。 17 【正确答案】 C 【试题解析】 =运算符一般适合简单数据类型之间的比较,而 equals()方法一般用于比较复 合类型的数据,两者不可以相互替换。 18 【正确答案】 A 【试题解析】 在 for循环初始化部分声明的变量的作用域是整个 for循环,退出for循环后,变量消失。 19 【正确答案】 C 【试题解析】 条件语句主要由 if-else结构和 swi
23、tch 多分支语句, while属于循环语句的关键字。 20 【正确答案】 D 【试题解析】 Java语言的执行模式是半编译和半解释型,未经编译的 Java程序不能直接执行。 Java程序编过编译后的字节代码是二进制文件,但不能直接在操作系统上执行 ,它可看作虚拟机的机器码,由 Java虚拟机解释执行。 21 【正确答案】 C 【试题解析】 本题考查自增 (自减 )运算和类型的自动转换。由于 +m表达式中 +在变量之前,所以先对 m进行自增运算,将 m加上 1.0,再将 m的值作为表达式+m的值,即 (+m)的值是 6.0;而在 n-表达式中, -在变量 n之后,所以先取变量 n 的值作为表达
24、式的值,变量 n再自减,即 (n-)的值是 4,然后作 6.0*4运算,此时整数 4会自动转换为实型数据再参与运算,所以结果是 24.0而不是 24。故选C。 22 【正确答案 】 B 【试题解析】 选项 A,构造方法名与类名必须相同,这是正确说法;构造方法不能被程序调用,只能通过 new自动调用,选项 C正确;构造方法可以重载实现不同的初始化方法,调用时按参数决定调用哪个方法,选项 D也正确;选项 B的前半部分正确:构造方法是给对象赋初值,无返回值,但后半部分不正确:构造方法虽然没有返回值,但不用 void来声明。 23 【正确答案】 B 【试题解析】 关键字 this 表示当前对象。 24
25、 【正确答案】 D 【试题解析】 在 Java中定义并创建一个数组对象的语句格式为 : arrayName=newtypearraySize; 而选项 D中,把定义创建数组对象和静态初始化数组对象混为一谈,所以是错误的。 25 【正确答案】 A 【试题解析】 String类是 Java中的常量类,一旦用 String创建了一个字符串对象,该字符串所代表的文本就不能改变了。 26 【正确答案】 C 【试题解析】 一般的数据访问权限,如 public、 protected、 package或 private等,对数据的串行化没有影响,只有 static和 transient关键字修饰的 数据才可以
26、不被串行化。 27 【正确答案】 D 【试题解析】 字节输入流继承自 InputSteam类,并且使用 DataInputStream实现 DataInput接口。编程时的步骤如下:字节数据的来源 (二进制文件 )作为FileInputStream的构造方法的参数,实例化一个 FileInputStream 对象;FileInputStream对象作为 DataInputStream的构造方法的参数;然后就可以使用InputStream类中的方法,进行字节输入流的操作。 28 【正确答案】 B 【试题解析】 打开 FileInputStream输入流,就可以从里面读取信息。 read()成员函
27、数有以下几种: int read();int read (byte b)和 int read (byte b, int offset,int len)。 29 【正确答案】 C 【试题解析】 创建了一个文件对象后,可以使用以下成员函数来获得文件相关信息。其中对文件名提供的方法有: String getname();获取一个不包含路径的文件名, String getPath();获取文件路径名字符串, String getAbsolutePath(),获取文件绝对路径, String getParent();获取文件上一级的路径名。 30 【正确答案】 A 【试题解析】 将一个程序转换成为多个独
28、立运行的子任务,每个子任务就是一个线程。线程是程序的一个执行流,它是一个以 CPU为主体的行为。在 Java中,线程的模型就是一个 CPU、程序代码和数据的封装体。 31 【正确答案】 C 【试题解析】 sleep()方法的功能是使线程暂停,让出 CPU,使更低优先级的线程运行; yield()方法的功能是使线 程暂停,让出 CPU,使同优先级的其他线程运行; join()方法的功能是使当前线程暂停,等待到某线程类对象运行结束; stop()方法的进程是强行中止线程运行。 32 【正确答案】 A 【试题解析】 Applet在客户端运行时,受到安全限制,除了一部分系统信息之外的敏感信息都不可以访
29、问,比如电子邮件地址、文件系统和动态链接库都不能直接访问。 33 【正确答案】 B 【试题解析】 FlowLayout是 Pane和 Applet 的默认布局管理器,构件在容器中从上到下、从左到右进行放置; BorderLayout是 Window、 Frame 和 Dialog的默认布局管理器,在 BorderLayout布局管理器中,构件分成 5个区域,每个区域只能放置一个构件; GridLayout使容器中各个构件呈网状布局,平均占据容器的空间; CardLayout 把容器分成许多层,每层只能放置一个构件。 34 【正确答案】 B 【试题解析】 JavaApplet的字节码文件必须嵌入
30、 HTML 的文件中并由负责解释HTML 文件的 WWW浏览器充当解释器来解释运行。因此 Applet不需要 main 方法,但必须继承 java.awt.Applet类或 javax.swing.JApplet,因为这两个类实现了Applet程序与浏览器的通信。 35 【正确答案】 D 【试题解析】 Applet运行时,首先由浏览器调用 init()方法,通知该 Applet已被加载到浏览中,使 Applet执行一些基本初始化。该方法经常被重写,以实现设置布局管理器、数据初始化、放置一些构件等功能。 36 【正确答案】 概念 或 概念级 【试题解析】 数据库系统在其内部具有三级模式及二级映射
31、,三级模式分别是概念级模式、内部级模式和外部级模 式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户 (应用 )的公共数据视图。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及 hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上 (如磁盘及磁盘操作 )。外模式也称子模式或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出。 37 【正确答案】 中序 【试题解析】 在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种 :前序遍历、中序遍历和后序遍历。前序
32、遍历是指首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树;中序遍历指首先遍历左子树,然后访问根结点,最后遍历右子树;后序遍历指首先遍历右子树,然后访问根结点,最后遍历左子树。 38 【正确答案】 模块化 【试题解析】 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化和限制使用 goto语句。自顶向下是指在程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。逐步求 精是指对复杂问题,应设计一些子目标作过度,逐步细化。模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小
33、目标称为一个模块。 39 【正确答案】 回溯法 【试题解析】 调试的关键在于推断程序内部的错误位置及原因。主要的调试方法有:强行排错法、回溯法和原因排除法。 强行排错法是传统的调试方法,其过程可概括为:设置断点、程序暂停、观察程序状态、继续运行程序。这是目前使用较多、效率较低的调试方法。 回溯法适合于小规模程序的排错。即一旦发现了错误,先分析错误征兆,确定最先发现症状的 位置。然后,从发现症状的地方开始,沿程序的控制流程,逆向跟踪源程序代码,直到找到错误根源或确定错误产生的原因。 原因排除法是通过演绎和归纳,以及二分法来实现的。 40 【正确答案】 消息 【试题解析】 在面向对象的程序设计中,
34、用来请求对象执行某操作或回答某些信息的要求称为消息。消息传递是对象间通信的手段,一个对象通过向另一对象发送消息来请求其服务,一个消息通常包括接收对象名、调用的操作名和适当的参数 (如有必要 )。消息只告诉接收对象需要完成什么操作,并不指示接收者怎样完成操作。消息完全由接收者解释 ,接收者独立决定采用什么方法来完成所需的操作。 41 【正确答案】 javax.swing 【试题解析】 JLabel属于 javax.swing 包。 42 【正确答案】 分支语句 【试题解析】 循环语句和分支语句的组合嵌套,体现了结构化程序设计的基本思想,它们相互嵌套形成了功能强大的流程控制机制,再配合跳转语句,就
35、可以用来实现许多复杂的算法。 43 【正确答案】 3 【试题解析】 本题中 while语句的循环体是 x+=2;。初始时, x=3满足 x 9的条件,执行循环体,循环体中每次 x的值增加 2,所以 x的值依次变化为 5、 7、9,当 x的值为 9时, x 9不成立,退出循环。即 x=3, 5, 7三种情况时执行了while循环,所以执行次数为 3。 44 【正确答案】 2 【试题解析】 整数除以整数其结果要舍去小数点后面的数,不进行四舍五入。 45 【正确答案】 writeObject() 【试题解析】 writeObject()方法的功能是把对象写到输出流中,当对象不可串行化时,抛出 Not
36、SeriahzableException 异常。 46 【正确答案】 传值 【试题解 析】 Java中方法的参数传递是传值调用,而不是地址调用。方法不能改变参数值,但可以改变变量值,两个对象之间的参数字段不能互相交换。 47 【正确答案】 复用或重用 【试题解析】 继承性是面向对象方法的一个重要基本特性,它使代码可以重用,可降低程序复杂性。 Java语言中,所有的类都是通过直接或间接地继承java.lang.Object而得到的。 48 【正确答案】 ActionListener 【试题解析】 JTextField 的事件监听器接口和 TextField 的相同,都是ActionListener。 49 【正确答案】 run() 【试题解析】 Runnable接口的定义为: public interface Runnable void run(); 所以当实现 Runnable接口时,需要实现 run()方法。 50 【正确答案】 MouseEvent 【试题解析】 MouseDragged ()方法的原形为: mouseDragged(MouseEvent e),其参数为 MouseEvent类的实例。