1、国家二级( JAVA)笔试模拟试卷 64及答案与解析 1 数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及 ( ) ( A)数据的存储结构 ( B)计算方法 ( C)数据映象 ( D)逻辑存储 2 一些重要的程序语言 (如 C语言和 Pascal语言 )允许过程的递归调用。而实现递归调用中的存储分配通常用 ( ) ( A)栈 ( B)堆 ( C)数组 ( D)链表 3 链表不具有的特点是 ( ) ( A)不必事先 估计存储空间 ( B)可随机访问任一元素 ( C)插入删除不需要移动元素 ( D)所需空间与线性表长度成正比 4 对建立良好的程序设计风格,下面描
2、述正确的是 ( ) ( A)程序应简单、清晰、可读性好 ( B)符号名的命名只要符合语法 ( C)充分考虑程序的执行效率 ( D)程序的注释可有可无 5 程序设计语言的基本成分是数据成分、运算成分、控制成分和 ( ) ( A)对象成分 ( B)变量成分 ( C)语句成分 ( D)传输成分 6 在软件测试设计中,软件测试的主要 目的是 ( ) ( A)实验性运行软件 ( B)证明软件正确 ( C)找出软件中全部错误 ( D)发现软件错误而执行程序 7 下列选项中,不属于模块间耦合的是 ( )。 ( A)数据耦合 ( B)同构耦合 ( C)异构耦合 ( D)公用耦合 8 如果对一个关系实施了一种关
3、系运算后得到了一个新的关系,而且新的关系中属性个数少于原来关系中属性个数,这说明所实施的运算关系是 ( ) ( A)选择 ( B)投影 ( C)连接 ( D)并 9 下列叙述中,正确的 是 ( ) ( A)用 E R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系 ( B)有 E R图只能表示实体集之间一对一的联系 ( C)用 E R图只能表示实体集之间一对多的联系 ( D)用 E R图表示的概念数据模型只能转换为关系数据模型 10 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是 ( ) ( A)数据库系统 ( B)文件系统
4、( C)人工管理 ( D)数据项管理 11 Java语言中使用的字 符是 _字符集。 ( ) ( A) 8位 ASCII编码 ( B) 16位 ASCII编码 ( C) 16位 Unicode编码 ( D) 32位 Unicode编码 12 下列的变量定义中,错误的是 ( ) ( A) int_a=123; ( B) int i=Integer.MAX_VALUE; ( C) long j=12345678900L; ( D) static i=100; 13 下列关于类、包和源文件的描述中,不正确的一项是 ( ) ( A)一个包可以包含多个类 ( B)一个源文件中,只能有一个公共类 ( C)
5、属于同一个包的类在默认情况下可以相互访问 ( D)系统不会为源文件创建默认的包 14 下列注释使用原则的叙述,正确的是 ( ) ( A)如果属性的可见性定义是私有 (private)的,应该在注释中适当说明理由 ( B)类的开发和维护历史无需注释 ( C)成员方法参数应该说明 ( D)成员方法中的局部变量无需注释 15 在 Swing中, JButton的直接父类是 ( ) ( A) java.awt.Button ( B) java.awt.Container ( C) javax.swing.Button ( D) javax.swing.AbstractButton 16 下列代码执行结
6、果为 ( )public class Test public static void main(String args) float p=0f; int q=3; System.out.println(+p)*(q-); ( A) 16 ( B) 24 ( C) 16 ( D) 24 17 关于 Java语言的健壮性特点,下列说法不正确的是 ( ) ( A) Java语言是一种强类型语言,即在编译和运行时进行大量的类型检查,防止不匹配的数据类型的发生 ( B) Java语言允许使用指针,这一点与 C+相似 ( C) Java语言设计有自动收集垃圾功能,防止了内存分配的错误 ( D) Java语
7、言使程序员从繁忙的内存管理中解脱出来 18 阅读下列代码段,选出该代码段的正确的文件名 ( )class A void methodl() System.out.println(“methodl in class A“); public class B void method2() System.out.println(“method2 in class B“); public static void main(String args) System.out.println(“main()in class B“); ( A) A.java ( B) A.class ( C) B.class (
8、 D) B.java 19 下面哪个保留字可以定义常值变量,说明这个变量赋值后永不改变 ? ( ) ( A) protected ( B) static ( C) final ( D) super 20 如果创建的一个子类覆盖一个 public方法,则对该方法可以使用哪些修饰符 ( ) ( A) public ( B) public和 protected ( C) privite ( D)任意修饰符都可以,由系统随机选取 21 关于对象的 删除,下列说法正确的是 ( ) ( A)必须由程序员完成对象的清除 ( B) Java把没有引用的对象作为垃圾收集起来并释放 ( C)只有当程序中调用 Sy
9、stem.gc()方法时才能进行垃圾收集 ( D) Java中的对象都很小,一般不进行删除操作 22 Thread类的方法中, toString()方法的作用是 ( ) ( A)只返回线程的名称 ( B)返回当前线程所属的线程组的名称 ( C)返回当前线程对象 ( D)返回线程的字符串信息 23 已知 :Manager extends Employee观察: public Manager(String n, double s, int year, int month, int day) super(n, s, year, month, day); bonus=0; 其中 super是 ( )
10、( A) Object类 ( B) Manager类 ( C) Employee类 ( D) Class类 24 下列 _方法和 resume()方法相互搭配,使线程停止执行,然后调用 resume()方法恢复线程。 ( ) ( A) interrupt() ( B) stop() ( C) suspend() ( D) yield() 25 下列字节输入流中,哪一个不能够被实例化 ? ( ) ( A) FileInputStream ( B) FilterInputStream ( C) ByteArrayInputStream ( D) ObjectInputStream 26 下列 _包
11、封装抽象窗口工具包,提供管理用户图形界面功能。 ( ) ( A) java.security.* ( B) java.io.* ( C) java.util.* ( D) java.awt.* 27 当检索一个压缩文件时,首先要建立压缩文件输入流对象,该对象 ( ) ( A)以选中的压缩文件为参数 ( B)以 FileInputStream对象为参数 ( C)以 InputStreamReader对象为参数 ( D)以 BufferedReader对象为参数 28 实现下列哪个接口可以对 MenuItem进行监听和处理 ? ( ) ( A) ActionListener ( B) FocusL
12、istener ( C) MouseMotionListener ( D) WindowListener 29 关于以下程序代码的说明正确的是 ( )(1)class HasStatic(2)private static int x=100; (3)public static void main(String args)(4)HasStatic hs1=new HasStatic();(5)hs1.x+; (6)HasStatic hs2=new HasStatic(); (7)hs2.x+; (8)hs1=new HasStatic(); (9)hs1.x+; (10)System.out.
13、println(“x=“+x); (11)(12) ( A) (5)行不能通过编译,因为引用了私有静态变量 ( B) (10)行不能通过编译,因为 x是私有静态变量 ( C)程序通过编译,输出结果为: x=103 ( D)程序通过编译,输出结果为: x=100 30 在 Applet程序占用的屏幕上显示文字、图形等信息,应使用的方法是 ( ) ( A) paint() ( B) init() ( C) start() ( D) destroy() 31 Applet的运行过程要经历 4个步骤,其中 _不是运行步骤。 ( ) ( A)浏览器加载指定 URL中的 HTML文件 ( B)浏览器显示
14、HTML文件 ( C)浏览器加载 HTML文件中指定的 Applet类 ( D)浏览器中的 Java运行环境运行该 Applet 32 FileOutputStream类属于 Java的哪一个包 ? ( ) ( A) java.util ( B) java.io ( C) java.nio ( D) java.awt 33 在编写异常处理的 Java程序中,每个 catch语句块都应该与 _语句块对应,使得该语句块用来启动 Java的异常处理机制。 ( ) ( A) if else ( B) switch ( C) try ( D) throw 34 在编写 JavaApplication程序
15、时,若需要使用到标准输入输出语句,则必须在程序的开头写上 _语句。 ( ) ( A) import java.awt.*; ( B) import java.applet.Applet: ( C) import java.io.*; ( D) import java.awt.Graphics; 35 下列关于小应用程序说法错误的是 ( ) ( A)用户所编写的小应用程序的类必须为 public ( B)用户所编写的小应用程序必须为 java.applet.Applet的子类 ( C)用户所编写的小应用程序的类名称可以与它所在的文件名不相同 ( D)用户所编写的小应用程序可以不在浏览器上运行 3
16、6 假设线性表的长度为 n,则在最坏情况下,冒泡排序需要的比较次 数为【 】。 37 类是一个支持集成的抽象数据类型,而对象是类的【 】。 38 对软件是否能达到用户所期望的要求的测试称为【 】。 39 单元测试又称模块测试,一般采用【 】测试。 40 当数据的物理结构 (存储结构、存取方式等 )改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【 】。 41 Java的体系结构中,最下层是移植接口,最上一层是 Java应用程序和【 】。 42 Java语言的各数据类型之间提供两种数据类型转换:自动数据类型转换和【 】 。 43 接口是一种只含有抽象方法或【 】的一种特殊
17、抽象类。 44 Java语言的【 】包是编译器自动导入的,因此,编程时使用该包中的类,可省去 import导入。 45 可以通过【 】语句来捕获所有的异常。 46 如果子类中覆盖了父类中的同名方法,则在子类中调用父类中的同名方法时用关键字【 】;在一个类的内部可以直接调用本类的对象,也可通过关键字 this来调用。 47 所有用户界面类的父类是 java.awt包中的【 】。 48 InputStreamReader类是以字节 输入流作为数据源的【 】。 49 Java Applet应用程序的编写和执行共分 4步进行:编写源代码、编写 HTML文件调用该小程序、【 】、解释执行。 50 类 T
18、est定义如下: class Test public static void main(string args) String s1=“abc“; String s2=new String(s1); if(s1=s2) System.out.println(“s1=s2“; if(s1.equals(s2) System.out.println(“s1.equals(s2)“); 那么程序的执行结果为:【 】 国家二级( JAVA)笔试模拟试卷 64答案与解析 1 【正确答案】 A 【试题解析】 数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科,它包括 3个方面的内容,即数据的逻辑
19、结构、存储结构和数据的运算。 2 【正确答案】 A 【试题解析】 一些较流行的程 序语言允许过程的递归调用。递归调用就是过程调用本身。递归实现的是:当过程每一次执行后,都能返回到最近一次调用它的过程。这样各调用点之间形成一种后进先出关系,而栈结构正适合来存储这些调用点。 3 【正确答案】 B 【试题解析】 链表采用的是链式存储结构,它克服了顺序存储结构的缺点:它的接点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。但是链式存储结构也有不组之处: 每个结点中的指针域需额外占有存储空间; 链式存储结构是一种非随机存储结构。 4 【正确答案】 A 【试题解析】
20、程序设计应该简单易懂,语句构造应该简单直接,不应该为提高效率而把语句复杂化。 5 【正确答案】 D 【试题解析】 程序设计语言是用于书写计算机程序的语言,其基本成分有以下 4种,数据成分:用来描述程序中的数据。运算成分:描述程序中所需的运算。控制成分:用来构造程序的逻辑控制结构。传输成分:定义数据传输成分,如输入输出语言。 6 【正确答案】 D 【试题解析】 使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清 预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。 7 【正确答案】 C
21、【试题解析】 模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成 5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。没有选项 C,这种耦合方式。 8 【正确答案】 B 【试题解析】 从关系中找出满足给定条件的那些元组称为选择,是从行的角度进行的运算,即水平方向抽取元组。从关系模式中 挑选若干属性组成新的关系称为投影,是从列的角度进行的运算,相当于对关系进行垂直分解。所以说实施投影运算后新关系中属性的个数少于原来关系中属性个数。 9 【正确答案】 A 【试题解析】 本题主要考查了用 E-R图表示实体之间联系的方法。两个实体之间的联
22、系实际上是实体集间的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多 (或多对一 )的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。 10 【正确答案】 A 【试题解析】 人工管理阶段是在 20世纪 50年代中期以前出现的,数据不独立,完全依赖于程序;文件系统是数据库系统发展的初级阶段,数据独立性差;数据库系统具有高度的物理独立性和一定的逻辑独立性。 11 【正确答案】 C 【试题解析】 与 C、 C+不同, Java使用 Unicode代码, Unicode代码使用 16位表示一个
23、字符。 12 【正确答案】 D 【试题解析】 选项 A、 B、 C中定义的都正确,选项 D中 static是定义方法的,而不能定义变量。 13 【正确答案 】 D 【试题解析】 一个包中可以包含多个类, A正确;一个源文件中可以有多个类,但只能有一个公共类, B正确;在同一个包中的类在默认的情况下是可以相互访问的, C正确;一般情况下用 package语句将源文件存入指定的包中,如果没有该语句,则源文件存入当前目录下,所以 D的说法不正确。 14 【正确答案】 C 【试题解析】 如果属性的可见性定义是私有的,可以不说明理由,选项 A的说法不正确;类的开发和维护历史要注释,因为这样更容易维护,可
24、读性也高,所以选项 B说法不正确;成员方法参数应该说明,选项 C是正确的;成员方法中的局部变量也要注释,所以选项 D说法也不正确。 15 【正确答案】 D 【试题解析】 Jbutton是单击时触发事件行为的常用组件,它可以带标签或图像,并可以设置鼠标停留提示信息及键盘操作的快捷键。它的直接父类是javax.swing.AbstractButton。 16 【正确答案】 D 【试题解析】 该题考查的是简单的运算。 i+是 i先运算,后 i+1;而 +i则是先i+1,后运算。 操作符和 +操作符用法相同;不同类型数进行运算时的转换,在运算时遵循这样一个转换规 则 byteshortintlongf
25、loat double 和charint 。本题中,参与运算的数是 8.0*3,结果是 24.0,所以选 D。 17 【正确答案】 B 【试题解析】 Java和 C+之间最大的差别在于:在 Java中取消了指针算法,Java采用的指针模型可以消除重写内存和数据崩溃的可能性。所以选项 B的说法不正确。 18 【正确答案】 D 【试题解析】 该题考查文件的命名问题。源代码的文件名必须同工友类的名字相同,且必须以 java作为扩展名,注意文件名的大小写要一致 。本题中,首先应该找 main,它是在 class B中,所以文件名应为 B.java。选项 D正确。 19 【正确答案】 C 【试题解析】
26、使用 final修饰符,用 final修饰后变量的值不可再更改。 20 【正确答案】 A 【试题解析】 若子类中定义的方法其名称、返回值类型及参数表恰恰与父类中某个方法的名称、返回值类型及参数表完全相同,则称子类中的方法覆盖了父类中的方法。本题中,要覆盖一个 public方法,所以该方法要用 public修饰符。 21 【正确答案】 B 【试题解析】 在 Java中定义对象时往往通过 new运算符为其分配内存空间,于是当不再希望使用这个对象时需要释放掉它所占用的内存。在 Java中,释放内存的工作是由系统自动隐含的进行,编程人员无须关心。所以选项 B说法是正确的。 22 【正确答案】 D 【试
27、题解析】 Thread类的 toString()方法返回线程的字符串信息,包括线程的名字、优先级和线程组。 23 【正确答案】 C 【试题解析】 本题中有 extends这说明是继承,子类 Manager继承父类Employee,使用变量 super能够实现对 父类成员的访问,所以本题中 super指的是父类 Employee。 24 【正确答案】 C 【试题解析】 在 Thread的 API文档中的说明是 resume()方法恢复被挂起(suspended ()的线程。所以说 suspend()方法和 resume ()方法相互搭配,使线程停止执行,然后调用 resume()方法恢复线程。
28、25 【正确答案】 B 【试题解析】 本题考查 Java中的字节输入流。不能被实例化的类是抽象类,题目所给的 4个选项中,由于只有过滤器输入流是抽象类,因此选项 B不能被实 例化。 FileInputStream可对一个磁盘文件涉及的数据操作; FilterInputStream过滤器输入流本身也是一个抽象类,它的各个子类定义了过滤的类型方法;ObjectInputStream类实现了 ObjectInput接口,对象在传输前,要首先实现Serializable接口。 26 【正确答案】 D 【试题解析】 java.awt包提供了用于创建用户界面和绘制图形、图像的所有的类和接口。 27 【正确
29、答案】 B 【试题解析】 本题考查压缩文件流的概念。当输入一个 Zip文件 时要将 Zip文件作为 FileInputStream构造方法的参数,所以选项 B正确。而 FileInputStream对象又作为 ZipInputStream构造方法的参数出现。这里的 ZipInputStream对象在将压缩文件内的输入项作为字符文本读出时即作为 InputStreamReader的构造方法参数出现。最后, InputStreamReader对象作为 BufferedReader的构造方法的参数,并且使用 readLine()方法将压缩文件输入项作为文本读出。 28 【正确答案】 A 【试题解析
30、】 MenuItem是菜单树中的 “叶子节点 ”。 MenuItem通常被添加到一个 Menu中。对于 Menultem对象可以添加 ActionListener接口对它进行监听和处理。 29 【正确答案】 C 【试题解析】 该程序能够通过编译,程序中声明了 2个对象 hs1和 hs2,而 hs1初始化两次,虽然 x被定义为私有的变量,但在本类中是可以调用的。所以输出结果为 x=103。 30 【正确答案】 A 【试题解析】 该题中 init()、 start()和 destroy()都是 Applet执行过程中用到的 方法, paint()方法有一个 Graphics类参数, Graphic
31、s是画图的关键,它支持两种绘图:一种是基本的绘图,如:画线、矩形、圆等;另一种是画图像,主要用于动画制作。所以选择 A。 31 【正确答案】 B 【试题解析】 Applet的运行过程经历了如下 4个步骤: 浏览器加载指定 URL中的 HTML文件; 浏览器解析 HTML文件; 浏览器加载 HTML文件中指定的 Applet类; 浏览器中的 Java运行环境运行该 Applet。所以选项 B是错误的。 32 【正确答案】 B 【试题解析】 FileOutputStream属于 java. io包, FileOutputStream是字节流类,使用流类时必须导入 java.io包。 33 【正确答
32、案】 D 【试题解析】 一个 try块和它的 catch子句形成了一个单元。 catch子句的范围受限于与之对应的 try块所定义的语句。一个 catch子句不能捕获另一个 try声明所引发的异常 (除非是嵌套的 try语句情况 )。 34 【正确答案】 C 【试题解析】 在编程时,若要使用到标准的输入输出语句,必须引入 io包,即在开头写上 import java.io.*;语句。 35 【正确答案】 C 【试题解析】 用户编写的小应用程序的类必须为 public,否则可能不会被装载,选项 A正确; applet仅仅是一个扩展了 java.applet.Applet类的 Java类,选项 B
33、正确;小应用程序不但可以在浏览器上运行,它还可以在命令行中用命令运行,选项 D正确;小应用程序的类名一定要与它所在的文件名相同,选项 C说法错误。 36 【正确答案】 n(n-1)/2 【试题解析】 冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步 将线性表变成有序。假设线性表的长度为 n,则在最坏的情况下,冒泡排序需要经过 n/2遍的从前往后的扫描和 n/2遍的从后往前的扫描,需要的比较次数为 n(n-1)/2。 37 【正确答案】 实例 【试题解析】 将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,对象则是其对应类
34、的一个实例。 38 【正确答案】 有效性测试 【试题解析】 在软件测试中,对软件是否能达到用户所期望的要求的测试是有效性测试。 39 【正确答案】 白盒法 【试题 解析】 软件测试过程一般按 4个步骤进行,即单元测试,集成测试,验收测试和系统测试。单元测试的技术可以采用静态分析和动态测试。对动态测试多采用白盒动态测试为主,辅之以黑盒测试。 40 【正确答案】 物理独立性 【试题解析】 数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。数据独立性一般分为物理独立性与逻辑独立性两级。 41 【正
35、确答案】 Applet小程序 【试题解析】 Java的体系 结构中,一般最下层是移植接口,最上一层是 Java程序,包括应用程序和 Applet小程序。 42 【正确答案】 强制数据类型转换 【试题解析】 Java中有两种数据类型转换,一种是自动数据类型转换,另一种是强制性类型转换。 43 【正确答案】 常量 【试题解析】 Java中的接口是一系列方法或常量的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为 (功能 )。 44 【正确答案】 java.lang 【试题解析】 本题考查 Java中包的概念。
36、 Java中用 import语句来导入包,但需要注意的是, Java语言中的 java.lang包是由编译器直接自动导入的,因此,编程时使用该包中的类,可省去 import导入。使用其他包中的类,必须用 import导入。 45 【正确答案】 catch(Exception e) 【试题解析】 用一个 catch语句捕获所有的异常。最常见的情形就是使用catch(Exception e)语句。但实际上,在绝大多数情况下,这种做法不值得提倡。 46 【正确答案 】 super 【试题解析】 在 Java中,子类在隐藏了父类的成员变量或覆盖了父类的方法后,常常还需要用到父类的成员变量或方法。比如,
37、为了简化代码的编写,子类中的覆盖方法就会经常调用父类中被覆盖的方法。此时,使用变量 super能够实现对父类成员的访问。在一个类的内部可以直接调用本类的对象,也可以通过关键字 this来调用。 47 【正确答案】 Component 【试题解析】 Component类是所有用户界面类的父类。 48 【正确答案】 字符输入流 【试题解析】 InputStreamReader类是从字节流到字符流的桥梁:它读入字节,并根据指定的编码方式,将之转换为字符流。 49 【正确答案】 编译过程 【试题解析】 Java Applet应用程序的编写和执行共分为:编写源代码、编写HTML文件调用该小程序、编译过程
38、、解释执行这四步。编译过程就是把 Java源程序编译成类文件。 50 【正确答案】 s1.equals(s2) 【试题解析】 本题考查的是: “=”和 equals的区别。 =操作符专门用来比较变量的值是否相等。比较好理解的一点是: int a=10; int b=10;则 a=b将是 true。但不好理解的地方是: String a=new String(“foo“); String b=new String(“foo“);则a=b将返回 false。对象变量其实是一个引用,它们的值是指向对象所在的内存地址,而不是对象本身。 a和 b都使用了 new操作符,意味着将在内存中产生两个内容为 “foo“的字符串,既然是 “两个 ”,它们自然位于不同的内存地址。 a和 b的值其实是两个不同的内存地址的值,所以使用 “=”操作符,结果会是 false。诚然, a和 b所指的对象,它们的内容 都是 “foo“,应该是 “相等 ”,但是 =操作符并不涉及到对象内容的比较。对象内容的比较,正是 equals方法做的事。