1、国家二级( JAVA)笔试模拟试卷 71及答案与解析 1 以下各特点中属于算法的基本特征的是 ( )。 ( A)不可行性 ( B)确定性 ( C)拥有部分的情报 ( D)无穷性 2 考虑一年四季的顺序关系时下列数据元素前者不是后者前件的是 ( )。 ( A)春、夏 ( B)夏、秋 ( C)秋、冬 ( D)冬、秋 3 下列关于线性表叙述中不正确的是 ( )。 ( A)可以有几个节点没有前件 ( B)只有一个终端节点,无后件 ( C)除根节点和终端节点外,其他节点都有且只有一个前件,也有且只 有一个后件 ( D)线性表可以没有数据元素 4 下面对对象概念描述错误的是 ( )。 ( A)任何对象都必
2、须有继承性 ( B)对象是属性和方法的封装体 ( C)对象间的通信靠消息传递 ( D)操作是对象的动态属性 5 下列不属于软件工程过程的基本活动的是 ( )。 ( A)软件规格说明 ( B)软件开发 ( C)软件确认 ( D)软件需求分析 6 软件测试方法中属于静态测试方法的是 ( )。 ( A)黑盒测试 ( B)逻辑覆盖 ( C)错误推测 ( D)人工检测 7 数据库系统的 核心是 ( )。 ( A)数据库 ( B)数据库管理系统 ( C)数据模型 ( D)软件工具 8 设有 n元关系 R及 m元关系 S,则关系 R与 S经笛卡儿积后所得新关系是 个( )元关系。 ( A) m ( B) n
3、 ( C) m+n ( D) m*n 9 数据库设计包括两个方面的设计内容,它们是 ( )。 ( A)概念设计和逻辑设计 ( B)模式设计和内模式设计 ( C)内模式设计和物理设计 ( D)结构特性设计和行为特性设计 10 在顺序表 (3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值 11,所需的关键码比较次数为 ( )。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 11 JDK中,用 ( )命令对其源文件进行编译,生成字节码文件。 ( A) java.exe ( B) javac.gxc ( C) javadoc.exe ( D) javap.
4、exe 12 以下叙述中不属于 Java语言特点的是 ( )。 ( A)面向对象 ( B)可移植性 ( C)多线程 ( D)宏定义 13 在 Java语言中,封装是借助于 ( )实现的。 ( A)对象 ( B)类 ( C)数组 ( D)成员 14 Java语言有自动收集垃圾的功能,会周期性地回收一些长期不用的对象占用的内存。下列选项中为对象清除路径的是 ( )。 依靠 Java的垃圾回收机制回收内存 调用 System.gc(),请求垃圾回收 Java系统开始运行时,自动调用 java Object finalize()释放内存 在程序中调用重写的 finalize()方法释放系统资源,其格式
5、为: protected void finalize() throws throwable super, finalize (); ( A) , ( B) , . , ( C) . , ( D) , . 15 下列各选项中属于合法标识符的是 ( )。 ( A) myid/2 ( B) #NAME? ( C) -5 ( D) _vacl 16 下面哪一个正确表示了 int类型的取值范围 ? ( ) ( A) -216 216-1 ( B) -231 231-1 ( C) -232 232-1 ( D) -264265 17 在编写 Java程序的时候,如果不为类的成员变量定义初始值, Java会
6、给它们设置默认值,下列说法中不正确的是 ( )。 ( A) Byte的默认值是 0 ( B) int的默认值是 0 ( C) long的默认值是 0.0L ( D) float的默认值是 0.0f 18 Java语言中所有的简单数据类型都被包含在 ( )中。 ( A) java.sql ( B) java.awt ( C) java.lang ( D) java.math 19 设 a=8,则表达式 a 2的值是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 20 以下各选项中能正确声明一个表示 50个值为 null的字符串数组的是 ( )。 ( A) stringa; (
7、 B) stringa; ( C) chara50; ( D) stringa=new String50; 21 下列程序的执行结果为 ( )。 public class c3 public static void main (String args) int i=13,j=10; if (i- j) i+; else j-; System. out.println (i+“t“+j); ( A) 13 10 ( B) 12 11 ( C) 11 11 ( D) 12 12 22 如下程序的输出结果是 ( )。 public class Test void printValue(int m)
8、do System.out.println(“The value is“+m); while(-m 10 ) public static void main(String args) int i=10; Test t= new Test(); t.printValue(i); ( A) The value is 8 ( B) The value is 9 ( C) The value is 10 ( D) The value is 11 23 for(int x=0, y=0; !x public class Test public static void main(String args )
9、 char ch; try _; System.out.println(ch); catch(IOException e) e.printStackTrace(); ( A) ch= System.in.read(); ( B) ch=(char)Systcm in.read(); ( C) ch=(char)System.in.readln(); ( D) ch=(int)System in.read(); 29 下列 Java组件中,不属于容器的是 ( )。 ( A) Panel ( B) Window ( C) Frame ( D) Label 30 JScrollPane面板的滚动条通
10、过移动哪个对象来实现 ? ( ) ( A) Jviewport ( B) JSplitPane ( C) JTabbedPane ( D) JPanel 31 要表示表格的数据,需要继承类 ( )。 ( A) AbstractTableModel ( B) TableModel ( C) JTable ( D) TableModelable 32 下面程序的正确输 出是 ( )。 public class Hello public static void main(String args) int count, xPos = 25; for ( count = 1; count = 10; c
11、ount+ ) if ( count = 5 ) break; System.out.println(count ); xPos += 10; ( A) 1 2 3 4 ( B) 1 3 4 ( C)编译错误 ( D)以上都不是 33 在 Applet生命周期中,下面方法中是在装载 Applet时被调用的是 ( )。 ( A) stop() ( B) init() ( C) start() ( D) destroy() 34 JDBC是面向 ( )的。 ( A)过程 ( B)对象 ( C)应用 ( D)用户 35 J2SDK的下载中,下列哪步可进入 J2SE下载页面 ? ( ) ( A)进入
12、http:/ ( B)单击左侧 Download链接 ( C)单击页面中的 Java 2 Platform, Standard Edition链接 ( D)单击页面中的 J2SE1.4.2链接 36 在进行 Java程序开发时,可以使用【 】来辅助编程。 37 对象的两大要素是数据和【 】。 38 在 Java语言中, byte类型的数据能表示的数据范围是【 】。 39 当方法有返回值时 ,必须在该方法体内使用【 】语句。 40 一个 try代码段后面必须跟着若干个 catch代码段或者一个【 】代码段。 41 欲使当前线程休眠一段时间,然后恢复运行,须调用【 】方法。 42 通过继承 Thr
13、ead创建线程,在主控程序中同时运行两个线程 Thread1和Thread2。请在下面横线处填入代码完成此程序。 public class ThreadTest public static void main(String args) new TestThread(“Threadl“).start(); 【 】 class TestThread extends Thread() public TestThread(String str) super (str); public void run() for(int i = 0; i 5; i+) System.out.println(i + +
14、 getName() + “在运行 “); try Sleep(1000); catch(InerruptedException e) System.out.println(getName() + “已结束 “); 43 为了实现线程之间的通信, java 1ang Object提供了两个方法,即 wait()和【 】。 44 Java的 Swing包中定义了两种构件:顶层容器和【 】。 45 appletviewer仅仅是一个小应用程序观察器,只支持 object、 embed或【 】标记。 国家二级( JAVA)笔试模拟试卷 71答案与解析 1 【正确答案】 B 【试题解析】 作为 个算法
15、一般应具有几个基本特征:可行性、确定性、有穷性、拥有足够的情报,显然答案为 B。 2 【正确答案】 D 【 试题解析】 在具有相同特征的数据元素集合中,各个数据元素之间存在某种关系,这种关系反映了该集合中数据元素所固有的一种结构。这种关系用前件和后件来描述。考虑一年四季的顺序关序时,春是夏的前件,夏是秋的前件,秋是冬的前件。 3 【正确答案】 A 【试题解析】 线性表要求只有一个根节点,它无前件,所以 A是错误的。线性表要求只有一个终端节点,它无后件, B是正确的。线性表要求其他节点都有且只有一个前件,也有且只有一个后件, C是正确的。一个线性表中可以没有数据元素,称为空线性表, D是正确的。
16、 4 【正确答 案】 A 【试题解析】 对象是面向对象方法中最基本的概念,对象可以用来表示客观世界中的任何实体,因此需要很清楚的理解对象的概念。因为客观世界的实体通常都具有静态和动态的属性,所以对象也具有静态和动态的属性。操作是对象的动态属性,属性是对象的静态属性。对象是属性和方法的封装体。面向对象是通过对象与对象间彼此的相互合作来推动的,对象间的相互合作需要传递消息。对象可以有继承性,但并不是任何对象都必须有继承性。 5 【正确答案】 D 【试题解析】 软件工程过程是把输入转化为输出的一组彼此相关的资源和 活动。软件工程的过程是将软件工程的方法和工具综合起来,以达到合理、及时地进行计算机软件
17、开发的目的。它的基本活动包括软件规格说明、软件开发、软件确认、软件演进。 6 【正确答案】 D 【试题解析】 软件测试若是从是否需要执行被测试软件的角度划分,可以分为静态测试和动态测试。若按照功能划分,可以分为黑盒测试和白盒测试。静态测试可以是人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。逻辑覆盖属于白盒测试的主要方法。错误推测属于黑盒测试的主要诊断方法之一。 7 【正确答案】 A 【试题解析】 数据库系统由这样几部分组成:数据库 (数据 )、数据库管理系统 (软件 )、数据库管理员 (人 )、硬件平台、软件平台。这 5个部分构成了一个数据库系统,而数据库是整个系统的核心。
18、8 【正确答案】 C 【试题解析】 本题考核对笛卡儿积运算的掌握。笛卡儿积是两个关系的合并操作,因此 n元关系 R与 m元关系 S经笛卡儿积后所得新关系是 m+n元关系 9 【正确答案】 A 【试题解析】 模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计, 从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性 -设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式 (静态特性 ):行为特性的设计,改变实体及其特性,决定数据库系统的功能 (动态特性 )。 10 【正确答案】 C 【试题解析
19、】 二分法查找,首先用要查找的关键字 k与中间位置的结点关键字相比较,这个中间结点把线性表分成了两个子表。若比较结果相等,则查找完成,若不等,再根据 k与中间结点关键字的大小比较确定下一步查找哪个子表,这样递归下去,直到找到满足条件的 结点,或者,该线性表中没有这样的结点。本题中第 1次和 15比较:第 2次和 7比较;第 3次和 10比较:第 4次和 12比较;比较后结束,没找到。 11 【正确答案】 B 【试题解析】 本题考查 JDK:实用工具的使用。选项 A错误, java exe是 Java语言解释器,直接从类文件执行 Java应用程序字节代码。可接受 class文件并肩动 Java虚
20、拟机执行之;选项 B正确, javac.exe是 Java语言编译器,将 Java源代码转换成字节码:选项 C错误, javadoc.exe是根据 Java源代码及说明语句生成HTML文档;选项 D错误, javap.exe是反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。 12 【正确答案】 D 【试题解析】 本题考查 Java语言的基本特点。选项 A正确, Java最大的特点之一是跨平台、面向对象;选项 B正确,解释同 A;选项 C正确,多线程是 Java的一个主要特性,它使可执行程序具有同时保持几个线程执行的能力;选项 D错误, Java不支持宏定义。 13 【正确答
21、案】 B 【试题解析】 Java是一个完全面向对象的语言,利用类把对象的属性和方法封装在一起 ,只对外界提供有限的接口。 14 【正确答案】 B 【试题解析】 本题考查 Java语言自动回收垃圾的功能,垃圾回收用于对象的清除,题中给出的 4种垃圾回收方法,都是可行的。 15 【正确答案】 D 【试题解析】 Java语言的标识符是以字母、下划线和符号为首字符的字符串,首字符后面可以跟字母、下划线、和数字,且标识符是区分大小写的,标识符的字符数没有限制。 A选项中含有非法符号 ”/”,故是错误的: B选项是以符号 ”+”开始的字符串也不符合规则;同理, C选项也是错误的。 16 【正确 答案】 B
22、 【试题解析】 该题考查对基本数据类型的长度范围的掌握。在 Java语言中,每一种基本类型的长度范围是固定的,它不随着机器字长的改变而改变。对于整型(int),它的长度是 4个字节,而且它可正可负,所以其取值范围应该是 -232 232-1。现在 SUN公司针对 64位机器特别定义了整型的长度为 64位,即 8个字节,但这只是在 64位机器上的。若没有特别说明,整型的长度都是 4个字节。 17 【正确答案】 C 【试题解析】 long类型的默认值为 0L,而不是 0.0L。 18 【正确答案】 C 【试题解析】 Java语言中,所有的简单数据类型都被包含在包 java.lang中。 19 【正
23、确答案】 B 【试题解析】 本题具体考查对位运算符中无符号右移运算符的掌握。无符号右移运算符 “ ”用于将一个数的各二进制位全部无符号右移若干位,与运算符 “ ”不同的是左补 0。在本题中, 8的二进制表示是 1000,右移两位后变成了0010,对应的十进制数是 2。 20 【正确答案】 D 【试题解析】 本题考查对字符串数组变量声明的掌握。在 Java语言中, type array Name和 type array Name的效果一样,都表示声明一个数组。所以选项A和选项 B的效果是一样的,对于本题来说都是不正确的,因为它们没有指明数组所包含的元素的个数;选项 C是一个二维的字符数组, Ja
24、va语言跟 C语言不一样,在 C语言中,一个二维的字符数组就可以表示一个一维的字符串数组。而在Java中,字符 char是基 本数据类型,字符串 string则是以对象的形式来表示的。所以, char a并不等价于 string a。而且 C选项并没有指明数组的长度:选项 D正确地声明了一个 K度为 50的空字符串 数组。 21 【正确答案】 A 【试题解析】 程序是由 if-else语句构成的流程,分析判断条件,变量 i和 j做比较,得到条件表达式的值为 true,然后执行 i-1,现在变量 i的值为 12,而 j的值为 10;由于条件表达式为 true,则执行 i+,因此 i的值为 13,
25、并跳过 else子句块,循环控制语句执行完毕,这时变量 i和 i的值分别为 13和 10。 22 【正确答案】 C 【试题解析】 此题考查的是 do-while循环和 “-”操作符的知识。 do while最少执行一次,在执行完 do中的内容后,判 断 while中的条件是否为 true。如果为true,就再执行 do中的内容,然后再进行判断。以此类推,直到 while的判断为false时退出循环,执行循环后面的内容。而 “-“操作符的规则是,变量右边的 “-“将先进行运算,然后才使变量的值减一。而在变量左边的 “-“,则先将变量的值减一再运算。本程序中 I的值为 10,当程序运行到 do-w
26、hile循环时,程序先执行一次循环后然后再做判断,因此选 C。 23 【正确答案】 C 【试题解析】 此题是典型的考题。题中 x=O,则 !x永远为真,对于条件表达式 !x&y =5只考虑 y =5,由于每次循环 y都增加 1,而且 y从 0开始到 5。所以可知总共循环了 6次。 24 【正确答案】 D 【试题解析】 异常是在程序编译或者运行时所发生的可预料或者不可预料的异常事件,它会引起程序的中断,影响程序的正常运行。 25 【正确答案】 B 【试题解析】 线程为一个程序中的单个执行流:进程是程序的一次动态执行过程,它对应了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生
27、、发展到消亡的过程。一个 Java Application运行后,在系统中应该 就是一个进程了 (动态 )。 26 【正确答案】 B 【试题解析】 共享数据的所有访问一定要作为临界区,用 synchronized标识,这样保证了所有的对共享数据的操作都通过对象锁的机制进行控制。 27 【正确答案】 C 【试题解析】 将 Java程序中的对象保存在外存中,称为对象永久化,对象永久化的关键是将它的状态以一种串行格式表示出来。 28 【正确答案】 B 【试题解析】 此题程序通过调用系统的标准输入流 System in的 read()方法,从键盘读入一个字符,由于 read()方法的返回值是 int类
28、型,而变量 ch是字符类型,不能直接转换,因此需要进行强制类型转换,应该填入的正确语句是 ch=(char)System.in.read()。 29 【正确答案】 D 【试题解析】 本题考查 Java组件中容器的基本知识。选项 A错误, Panel类派生自容器类 Container,属于容器的一种;选项 B错误, Window类也派生自容器类 Container,也属于容器的一种;选项 C错误, Frame类派生自 Window类,也是一种容器;选项 D正确, Lable组件是标签组件,不属于容 器。 30 【正确答案】 A 【试题解析】 视口 (JViewPort)类的对象是一种特殊的对象,
29、主要用于查看构件,滚动条就是跟踪移动视口,并且同时在容器中显示其查看的内容的。 31 【正确答案】 A 【试题解析】 表格是 Swing新增加的构件,主要功能是把数据以二维表格的形式显示出来。使用表格,依据 M-V-C的思想,最好生成一个 MyTableModel类型的对象来表示数据,这个类是从 AbstractTableModel类继承来的。 32 【正确答案】 A 【试题解析】 该程序 经过编译、运行后,在屏幕上显示: 1 2 3 4。 public class Hello中 Hello为类名, public static void main(String args)有关参数的解释如下。
30、public表示该方法可以被任意代码所调用,包括 Java解释器。 static安告诉编译器, main()方法是一个类方法,可以通过类名直接调用,调用时不需要该类的实例对象。 void嵌示 main()方法没有返回值。这是非常重要的。因为Java类型检查非常严格,包括检查这些方法返回值的类型是否与声明的一致 。String args声明一个字符串类型的数组。它是命令行传递给 main()方法的参数,参数在命令行中出现在类名称后面。包含 main()方法的类 (Hello 为包含 main()方法的类名 )名称必须与其文件名相同,也就是说,其文件名必须为 Hello.java。经过编译,在当前
31、文件夹下将出现一个 Hello.class文件,这就是编译后的字节码文件。在程序段最后有两个大括号,分别说明结束 main()方法和 Hello类。在本程序中由于有 count 5这个条件判断,因此当 count 5时,程序结束,输出为 1 2 3 4。 33 【正确答案】 B 【试题解析】 在 Java Applet的生命周期中,共有 4种状态和 4个方法: init()、start()、 stop()和 destroy()。在 Applet装载时,由浏览器或 appletviewer调用 init()方法,通知该 Applet已被加载到浏览器中,使 Applet执行一些基本初始化。 34
32、【正确答案】 B 【试题解析】 JDBC中定义了一组标准的应用程序接口 (API),这些 API是一种面向对象的封装和重新设计的接口,使得用户能够编写不依 赖于数据库厂商的数据库应用程序。 35 【正确答案】 C 【试题解析】 J2SDK的下载按下列步骤进行操作: 进入 http:/: 单击左侧 Download链接,进入下载页面: 单击页面中的 Java 2 Platform,Standard Edition链接,进入 J2SE下载页面; 单击页面中 J2SE 1.4.2链接,进入 J2SE 1.4.2下载页面; 找到 Download J2SE v 1.4.2 02栏目,在其下找到Wind
33、ows offline Installation类别,其右有两个 F载选项,一个是 JRE,一个是“SDK”,单击 SDK选项下面的 download,进入 J2SDK-1 4 2 02-windows-i586.exe文件的下载页面; 选择 accept,接受 SUN的协议; 单击页面中的Downloadj2sdk-1 4 2 02- windows -i586-p.exe下载链接,自动进行浏览器下载,也可使用下载工具进行下载。 36 【正确答案】 JavaAPI文档 【试题解析】 API文档是 Java程序开发的好帮手,在编程时,随时可以查阅此文档,通 过它提供的对所有类信息的超链接,能够
34、得到有关类和类的一般目的描述、成员变量列表、构造方法列表、方法详细列表及描述等信息。 37 【正确答案】 方法 【试题解析】 “对象 ”就是一组成员变量和相关方法的集合,对象通过成员变量来维持其状态,通过方法实现其行为。成员变量是一种有名称的数据实体,而方法则是和对象相关的函数或过程。一个对象的变量构成这个对象的核心,方法包围着变量。 38 【正确答案】 -128 127 【试题解析】 由于 byte类型数据占计算机存储的 8位,并且是有符号整型,第 1位用于 表示符号,剩下还有 7位用做存储数据,因此正整数最大应该是27_1=127,而负整数最小应该是 -2(上标 )7; -128,这样总共
35、表示的数的个数应该是 2(上标 )8-1=255个。 39 【正确答案】 return 【试题解析】 有返回值的方法,必须在方法体内通过 return语句返回该返回值,否则编译出错。 40 【正确答案】 finally 【试题解析】 根据 try-catch-fmally结构, try后面是若干个 catch,再后面是一个 finally代码段,可以没有 catch或者没有 finally,但是这两者必须有一个。 41 【正确答案】 sleep() 【试题解析】 在线程调度的方法中, sleep()方法可使当前线程睡眠若干毫秒,即停止执行若干毫秒,此时线程由于逆行状态进入不可运行状态,睡眠时间
36、过后再进入可运行状态。 42 【正确答案】 new TestThread(“Thread2”) start(); 【试题解析】 程序中,类 ThreadTest的 main方法中生成了两个 TestThread类的线程对象 Thread1和 Thread2,并在创建后马上调用 start方法启动这两个线程。类 TestThread是类 Thread的子类,它首先定义了一个构造方法,调用父类的构造方法为线程对象命名。由于类 Thread创建的线程不做任何事情 (它的 run()方法是空的 ),所以对于继承子类 Thread的子类来说,必须重写 run()方法。本例中,类 TestThread中的
37、第二个方法就是 run()方法,它重写了类 Thread中的 run()方法。 run()方法中是一个 3次的循环,每次循环中,显示循环的次数和当前正在运行的线程的名字,然后休眠 1000毫秒。运行程序的结果是两个线程的名字交替显 示,每一个线程运行到输出语句时,将在屏幕上显示自己的名字,执行到 sleep语句时将休眠 1000毫秒。线程休眠时,并不占用 CPU,其他线程可以继续运行。一旦延时完毕,线程将被唤醒,继续执行下面的语句。这样,就实现了交替显示。在循环结束后,显示 “已结束 ”及线程表。 43 【正确答案】 notify() 【试题解析】 wait()和 notify()方法提供了线程之间同步和通信的机制。 44 【正确答案】 轻量级构件 【试题解析】 Java的 Swing包中包含很多接口和类,这里面又分为顶层容器和轻量级构件。 45 【正确答案】 applet 【试题解析】 appletviewer仅仅是一个小应用程序观察器,只支持 object、embed或 applet标记。