1、国家二级( JAVA)笔试模拟试卷 162及答案与解析 1 下列语句中,属于多分支语句的是 ( A) if语句 ( B) switch语句 ( C) do while语句 ( D) for语句 2 阅读下面代码 public class Test2005 public static void main(String args) String s=“Test“; switch(s) case“Java“:System.out.print(“Java“); break; case“Language“:System.out.print(“Language“): break; case“Test“:S
2、ystem.out.print(“Test“); break; 其运行结果是 ( A) Java ( B) Language ( C) Test ( D)编译出错 3 阅读下面代码 public class Test2005 public static void main(String args) System.out.println( (Oxa5)&Oxaa); 其运行结果是 ( A) Oxa5 ( B) 10 ( C) Ox50 ( D) Oxaa 4 阅读下面代码: public class Test2005 public static void main(String args) Sy
3、stem.out.println(3 2)? 4:5); 其运行结果是 ( A) 2 ( B) 3 ( C) 4 ( D) 5 5 阅读下面代码 public class Test public static void main(String avgs) System.out.println(89 1); 其运行结果是 ( A) 44 ( B) 45 ( C) 88 ( D) 90 6 下列选项中不属于结构化程序设计方法的是 ( A)自顶向下 ( B)逐步求精 ( C)模 块化 ( D)可复用 7 两个或两个以上模块之间关联的紧密程度称为 ( A)耦合度 ( B)内聚度 ( C)复杂度 ( D
4、)数据传输特性 8 下列叙述中正确的是 ( A)软件测试应该由程序开发者来完成 ( B)程序经调试后一般不需要再测试 ( C)软件维护只包括对程序代码的维护 ( D)以上三种说法都不对 9 按照 “后进先出 ”原则组织数据的数据结构是 ( A)队列 ( B)栈 ( C)双向链表 ( D)二叉树 10 下列叙述中正确的是 ( A)线性链表是线性表的链式存储结构 ( B)栈与队列 是非线性结构 ( C)双向链表是非线性结构 ( D)只有根结点的二叉树是线性结构 11 在深度为 7的满二叉树中,叶子结点的个数为 ( A) 32 ( B) 31 ( C) 64 ( D) 63 12 “商品 ”与 “顾
5、客 ”两个实体集之间的关系一般是 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 13 在 E-R图中,用来表示实体的图形是 ( A)矩形 ( B)椭圆形 ( C)菱形 ( D)三角形 14 数据库 DB、数据库系统 DBS、数据库管理系统 DBMS之间的关系是 ( A) DB包含 DBS和 DBMS ( B) DBMS包含 DB和 DBS ( C) DBS包含 DB和 DBMS ( D)没有任何关系 15 Java语言中,负责并发管理的机制是 ( A)垃圾回收 ( B)虚拟机 ( C)代码安全 ( D)多线程 16 下列描述中,错误的是 ( A) Java要求编程者管理内存
6、( B) Java的安全性体现在多个层次上 ( C) Applet要求在支持 Java的浏览器上运行 ( D) Java有多线程机制 17 Java为移动设备提供的平台是 ( A) J2ME ( B) J2SE ( C) J2EE ( D) JDK5.0 18 JDK中提供的文档生成器是 ( A) java.exe ( B) javap.exe ( C) javadoc.exe ( D) javaprof.exe 19 在 Java语言中,不允许使用指针体现出的 Java特性是 ( A)可移植 ( B)解释执行 ( C)健壮性 ( D)安全性 20 下列不属于 Swing中构件的是 ( A)
7、JPanel ( B) JTable ( C) Menu ( D) JFrame 21 下列方法中,不属于 WindowListener接口的是 ( A) windowOpened() ( B) windowClosed() ( C) windowAetivated() ( D) mouseDragged() 22 在 Applet中显示文字、图形等信息时,应使用的方法是 ( A) paint() ( B) init() ( C) start() ( D) destroy() 23 线程生命周期中正确的状态是 ( A)新建状态、运行状态和终止状态 ( B)新建状态、运行状态、阻塞状态和终止状态
8、 ( C)新建状态、可运行状态、运行状态、阻塞状态和终止状态 ( D)新建状态 、可运行状态、运行状态、恢复状态和终止状态 24 Thread类中能运行线程体的方法是 ( A) start() ( B) resume() ( C) init() ( D) run() 25 下列关于 Applet的说法中,错误的是 ( A) Applet自身不能运行,必须嵌入到其他应用程序 (如浏览器 )中运行 ( B)可以在安全策略的控制下读写本地磁盘文件 ( C) Java中不支持向 Applet传递参数 ( D) Applet的主类要定义为 java.applet.Applet类的子类 26 下列选项中,
9、不是 APPLET标记的是 ( A) PARAM ( B) BODY ( C) CODEBASE ( D) ALT 27 在 Java中,与数据库连接的技术是 ( A) ODBC ( B) JDBC ( C)数据库厂家驱动程序 ( D)数据库厂家的连接协议 28 下列命题中,错误的是 ( A) Java编程时,要求应尽量多用公共变量 ( B) Java编程时,要求应尽量少用公共变量 ( C) Java编程时,要求应尽量不用公共变量 ( D) Java编程时,要求应尽量使用私有变量 29 若特快订单是一种订单,则特快订单 类和订单类的关系是 ( A)使用关系 ( B)包含关系 ( C)继承关系
10、( D)无关系 30 若数组 a定义为 inta=newint34,则 a是 ( A)一维数组 ( B)二维数组 ( C)三维数组 ( D)四维数组 31 Java语言使用的字符集是 ( A) ASCII ( B) BCD ( C) DCB ( D) Unicode 32 在程序读入字符文件时,能够以该文件作为直接参数的类是 ( A) FileReader ( B) BufferedReader ( C) FileInputStream ( D) ObjectInputStream 33 java.io包的 File类是 ( A)字符流类 ( B)字节流类 ( C)对象流类 ( D)非流类 3
11、4 下列描述中,正确的是 ( A)在 Serializable接口中定义了抽象方法 ( B)在 Serializable接口中定义了常量 ( C)在 Serializable接口中没有定义抽象方法,也没有定义常量 ( D)在 Serializable接口中定义了成员方法 35 将下面程序补充完整。 public class PowerCale public static void main(String args) double x=5.0; System.out.println(x+“to the power 4 is“+power(x,4); System.out.println(“7.5
12、 to the power 5 is“+power(7.5,5); System.out.println(“7.5 to the power 0 is“+power(7.5,0); System.out.println(“10 to the power -2 is“+power(10,-2); static double _ (double x,int n) if(n 1)return x * power(x,n-1); else if(n 0)return 1.0/power(x,-n); else return n=0? 1.0:x: 36 将下面 Applet程序补充完整。 import
13、 java.awt.*: import java.apptet.*; public class Hi _ public void paint(Graghics g) g.drawstring(“Hi!“,2.5,2.5); 37 测试用例包括输入值集和 _值集。 38 深度为 5的满二叉树有 _个叶子结点。 39 设某循环队列的容量为 50,头指针 front=5(指向队头元素的前一位置 ),尾指针rear=9(指向队尾元素 ),则该循环队列中共有 _个元素。 40 在关系数据库中,用来表示实体之间联系的是 _。 41 在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,_负责设
14、计的模式定义与数据的物理存取构建。 42 按照 Java中的命名约定,方法名的起始字母一般都是小写,但是 _方法除外。 43 Swing中的按钮类是 _。 44 Java中的三元运算符是 _。 45 Java输入 /输出流中包括字节流、 _、文件流、对象流以及管道流。 46 在 Java中,对象流以 _方式传送和存储。 47 Swing中的组件往往采用 MVC结构, MVC指的是 Model、 View和 _。 48 Java中,可以通过建立 java.lang._类或其子类的实例创建和控制线程。 49 如果一个线程调用 _()方法,将使该线程进入休眠状态。 国家二级( JAVA)笔试模拟试卷
15、 162答案与解析 1 【正确答案】 B 【试题解析】 分支语句分为条件语句和多分支语句。条件语句根据条件 的真假决定执行哪一种操作,多分支语句根据表达式的值从多个分支中选择一个来执行。 if语句为条件语句, switch 语句为多分支语句。选项 C和选项 D均为循环语句。 2 【正确答案】 D 【试题解析】 switch 语句根据其后表达式的值从多个分支中选择一个来执行,表达式只能返回 int、 byte、 shirt和 char类型。本程序中 s的值为 String类型,所以类型不兼容,编译出错。 3 【正确答案】 B 【试题解析】 在位运算符中单目运算符高于运算符 &。所以本程序先计算(
16、Oxa5)的结果为 Ox5a,然后再与 Oxaa 进行按位与运算,结果为 Oxaa,即十进制的 10。 4 【正确答案】 C 【试题解析】 本程序是输出问号表达式的结果。问号表达式 ex1? ex2:ex3的含义是先判断表达式 ex1的值,如果该值为真,执行语句 ex2,否则执行 ex3。本程序中,表达式 1为 3 2值为真,所以结果是第二个表达式的值即 4。 5 【正确答案】 A 【试题解析】 本程序是输出表达式 89 1的结果,是算术右移运算符,即将数据右移 1位,相当于将左侧操作数除以 2,所以结果为 89/2 为 44。 6 【正确答案】 D 【试题解析】 结构化程序设计方法的主要原则
17、有 4点:自顶向下 (先从最上层总目标开始设计,逐步使问题具体化 );逐步求精 (对于复杂问题,设计一些子目标作为过渡逐步细化 );模块化 (将程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,每个小目标作为一个模块 );限制使用 goto语句。没有可复用原则,所以答案为选项 D。 7 【正确答案】 A 【试题解析】 本题考核模块独立性的评价。评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度,也可以说是两 个或两个以上模块之间关联的紧密程度 (所以,本题的正确答案为选项 8 【正确答案】 D 【试题解析】 本题考核软件测试、软件调试和软件维护的概念
18、。软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。软件测试具有挑剔性,测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷,就是说,测试是程序执行的过程,目的在于发现错误;一个好 的测试在于能发现至今未发现的错误,一个成功的测试是发现了至今未发现的错误。由于测试的这一特征,一般应当避免由开发者测试自己的程序。所以,选项 A的说法错误。调试也称排错,目的是发现错误的位置,并改正错误,经测试发现错误后,可以立即进行调试并改正错误;经过调试后的程序还需进行回归测试,以检查调试的效果,同时也可防止在调试过程中引进新的
19、错误。所以,选项 B的说法错误。软件维护通常有 4类:为纠正使用中出现的错误而进行的改正性维护:为适应环境变化而进行的适应性维护;为改进原有软件而进行的完善性维护;为将来的可维护和可靠 而进行的预防性维护。软件维护不仅包括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。所以,选项 C的说法错误。选项 D为正确答案。 9 【正确答案】 B 【试题解析】 “后进先出 ”表示最后被插入的元素最先能被删除。选项 A中,队列是指允许在一端进行插入、而在另一端进行删除的线性表,在队列这种数据结构中
20、,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除,队列又称为 “先进先出 ”的 线性表,它体现了 “先来先服务 ”的原则。选项 B中,栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素,栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。队列和栈都属于线性表,它们具有顺序存储的特点,所以才有 “先进先出 ”和 “后进先出 ”的数据组织方式。双向链表使用链式存储方式,二叉树也通常采用链式存储方式,它们的存储数据的空间可以是不连续的,各个数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。所以选项 C和选项 D错误。 10 【正确答案】 A 11 【正确答案】
21、 C 【试题解析】 在二叉树的第五层上,最多有 2k-1(k1)个结点。对于满二叉树来说,每一层上的结点数都达到最大值,即在满二又树的第 k层上有 2k-1个结点。因此,在深度为 7的满二叉树中,所有叶子结点在第 7层上,即其结点数为 2k-1=27-1=64。 12 【正确答案】 D 【试题解析】 本题考核实体集之间的联系。实体集之间的联系有 3种:一对一、一对多和多对多。因为一类商品可以由多个顾客购买,而一个顾客可以购买多类商品,所以, “商品 ”与 “顾客 ”两个实体集之间的联系一般是 “多对多 ”,选项 D正确。 13 【正确答 案】 A 【试题解析】 在 E-R图中,用 3种图框分别
22、表示实体、属性和实体之间的联系,其规定如下:用矩形框表示实体,框内标明实体名;用椭圆状框表示实体的属性,框内标明属性名:用菱形框表示实体间的联系,框内标明联系名。所以,选项 A正确。 14 【正确答案】 C 【试题解析】 数据库管理系统 DBMS是数据库系统中实现各种数据管理功能的核心软件。它负责数据库中所有数据的存储、检索、修改以及安全保护等,数据库内的所有活动都是在其控制下进行的。所以, DBMS 包含数据库 DB。操作系统、数据库管理系统与应用 程序在一定的硬件支持下就构成了数据库系统。所以, DBS包含 DBMS,也就包含 DB。选项 C正确。 15 【正确答案】 D 【试题解析】 多
23、线程是 Java程序的并发机制,它能同步共享、处理不同的事件。多线程技术容易实现网上实时交互,为解决网上大数量的客户访问提供技术基础。 16 【正确答案】 A 【试题解析】 为了充分利用资源, Java有一个系统级线程,对内存的使用情况进行跟踪,使程序员从繁忙的内存管理中解放出来,因而 Java不需要编程者管理内存,这也是它吸引人的地方之一。至于 Java的代码 安全检测机制, Java程序的安全性体现在多个层次上,如编译层、解释层、平台层上都有相应的安全检测机制。 17 【正确答案】 A 【试题解析】 J2ME 是一种高度优化的 Java运行环境,主要是针对消费类电子设备的,例如蜂窝电话和可
24、视电话、数字机顶盒、汽车导航系统等。它将 Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。因而 J2ME 是为嵌入式和移动设备提供的 Java平台。 18 【正确答案】 C 【试题解析】 常用的 JDK工具有: Java编译器 javac.exe、 Java 解释器java.exe、 Java文档生成器 javadoc.exe、 Java类分解器 javap.exe、 Java调试器jdb.exe、 Java剖析工具 javaprof.exe、 JavaApplet浏览器 appletviewer.exe。 19 【正确答案】 D 【试题解析】 面向网络、
25、分布式环境的 Java语言,对非法侵入的防范是至关重要的, Java语言必须提供充分的安全保障,它在运行程序时有严格的访问权限检查。对字节码执行前要检查,不允许使用指针,可防止对内存的非法入侵,它是目前安全 性最佳的语言。 20 【正确答案】 C 【试题解析】 一个组件是 AWT组件还是 Swing组件最明显的区别是 Swing组件的名称前一般加上一个字母 “J”。 21 【正确答案】 D 22 【正确答案】 A 【试题解析】 Applet显示相关的方法主要有 3个。 paint()方法,具体执行 Applet的绘制; update()方法,主要用于更新 Applet的显示; repaint(
26、)方法,主要用于Applet的重新显示,它调用 update()方法实现对 Applet的更新。 init()方法是在Applet被下载时调用,一般用来完成所有必需的初始化操作; start()方法是在Applet初始化之后以及 Applet被重新访问时调用,使 Applet成为激活状态;destroy()方法是在关闭浏览器 Applet从系统中撤出时调用,彻底终止 Applet,从内存卸载并释放该 Applet的所有资源。 23 【正确答案】 C 【试题解析】 线程在其生命周期中,不同的生命阶段具有不同的状态。线程的主要状态有新建状态、可运行状态、运行状态、阻塞状态和终止状态。 24 【正确
27、答案】 A 【试题解析】 控制线程启停类的方法有: start(),线程体开始运行; stop(),强行中止线程运行; suspend(),挂起线程,挂起后的线程将不能自动恢复,只能在其他线程中调用 resume()方法恢复线程的状态; resume(),恢复线程执行。所以答案为 A。选项 D中 run()方法定义了线程体和线程的具体行为。 25 【正确答案】 C 【试题解析】 Applet获取参数是通过 HTML 文件中采用 PARAM标记定义参数。 Java公司推出 JDBC作为 Java几个平台与关系数据库的标准连接。 JDBC定义了一组标准 API,用这些 API和 JDBC 驱动管理
28、器通信,使应用程序与数据库连接不依赖特定数据库厂家。 26 【正确答案】 B 【试题解析】 PARAM、 CODEBASE、 ALT 都属于 APPLET标记,只有BODY不是。 27 【正确答案】 B 【试题解析】 Java数据库连接 (JavaDatabaseConnectivity, JDB 28 【正确答案】 B 【试题解析】 由于面向对象技术的封装要求,应尽量少用公共变量,而是通过公共方法类间接访问类的成员变量,从而提高程序的稳定性。 29 【正确答案】 C 【试题解析】 继承是 Java语言的一个特性,允许将一个类定义为一个更通用类的实例。特例类称为子类,通用类称为父类。显然,订单
29、类是通用类,即父类;而特定订单类是订单类的一个特例,是子类。订单类和特供订单类之间是继承关系。 30 【正确答案】 B 【试题解析】 题目中定义了一个三行四列的二维数组。 31 【正确答案】 D 【试题解析】 Java使用的是 Unicode字符集。 Unicode字符集比 ASCII字符集更丰富,它们是 16位的无符号数据。 32 【正 确答案】 A 【试题解析】 FileInputStream是字节输入流。 ObjectInputStream用于对象串行化时从对象流中读取对象。所以选项 C和选项 D都不是本题的答案。选项 A和选项 B 的 FileReader和 BufferedReade
30、r都是字符类输入流。但是 FileReader的参数是所读入的文件,而 BufferedReader的参数是 FileReader流的一个对象。所以答案为 A。 33 【正确答案】 D 【试题解析】 Java的 io包中的类可以处理不同类型的流类,例如:字节流 (数 据流 )、字符流、文件流、对象流等。 File类就是一个重要的非流类,它以一种与系统无关的方式表示一个文件对象的属性。 34 【正确答案】 C 【试题解析】 Serializable是对象序列化开关,不含任何抽象方法或常量,输入输出的对象在传输前,都必须实现该接口。 35 【正确答案】 power 【试题解析】 本程序中, mai
31、n()方法中的输出语句调用了 power()方法,后边是对 power()方法的定义,所以下画线处应填写 power。本程序的 power()采用了递归的方法来计算一个数的阶 乘。 36 【正确答案】 extends Applet 37 【正确答案】 输出 【试题解析】 软件测试用例是为了有效地发现软件缺陷而编写的包含测试目的、测试步骤、期望测试结果的特定集合。正确认识和设计软件测试用例可以提高软件测试的有效性,便于测试质量的度量,增强测试过程的可管理性。软件测试用例包括输入值集和输出值集。测试用例是软件测试的核心。 38 【正确答案】 16 【试题解析】 在满二叉树中,叶子结点数目的计算公式
32、为 2n-1,其中 n 为树的深度。 39 【正确答案】 24 【试题解析】 实现循环队列时,头指针指向第一个元素的前一个空间,尾指针指向最后一个元素。因此,此时队列中 6、 7、 8、 、 29这 24个空问存有元素,即队列中有 29-5=24个元素。 40 【正确答案】 关系 【试题解析】 在关系数据库中,用关系 (二维表结构 )表示实体及其之间联系的模型称为关系数据模型。 41 【正确答案】 数据定义语言 【试题解析】 数据定义语言负责数据的模式定义与数据的物理存取构建;数据操纵语言负责数据的操纵,如查询与增加、删除、修改等;数据控制语言负责数据完整性、安 全性的定义与检查,以及并发控制
33、、故障恢复等。 42 【正确答案】 构造 【试题解析】 构造方法是类中的一种特殊方法,是为对象初始化操作编写的方法,用它来定义对象的初始状态。在 Java语言中的每个类都有其构造方法,它也是由方法名、参数和方法体组成。构造方法名必须与类名相同,它没有返回值,用户不能直接调用它,只能通过 new 自动调用。由于构造方法名必须与类名相同,所以它的第一个字母为大写。 43 【正确答案】 JButton 【试题解析】 Swing中的按钮类为 JButton,是一个常用构件。 比 AWT更丰富的是: Swing的按钮上还可以同时显示文字和图标。 44 【正确答案】 ?: 【试题解析】 问号表达式 ex1
34、?ex2:ex3的含义是先判断表达式 ex1的值,如果该值为真,执行语句 ex2,否则执行 ex3。 45 【正确答案】 字符流 【试题解析】 Java的 I/O 功能主要是通过输入输出类库 java.io 包实现的,java.io包中包括了可以处理字节流、字符流、文件流、对象流以及线程之间通信的管道流等的类。 46 【正确答案】 串行化 【试题解析】 对象串行化是指对 Java对象的读、写的过程。 Java语言提供了对象流 ObjectInputStream和 ObjectOutputStream来实现对象串行化。 47 【正确答案】 Controller 【试题解析】 Swing采用一种
35、MVC的设计规范,即 “模式 -视图 -控制器 ”(Model-View-Controller),其中模式用来保存内容,视图用来显示内容,控制器用来控制用户输入。 48 【正确答案】 Thread 【试题解析】 线程模型在 Java中是由 java.lang.Thread 类进行定义和描述 的。程序中的线程都是 Thread 的实例。 49 【正确答案】 sleep() 【试题解析】 Thread提供了如下的基本线程控制方法: sleep(),线程暂停,让出 CPU,使低优先级的线程运行; yield(),线程暂停,让出 CPU,使同优先级的其他线程运行。如果不存在有机会运行的线程, yield()方法将直接返回,线程继续; join(),当前线程暂停,等待线程类对象运行结束。 sleep()方法使线程暂停运行一段时间。在休眠期内,线程将不运行,让出 CPU,使低优先级的线程运行。休眠时间的长短由 sleep()方法的参数决定。 sleep()结束后,线程将进入可运行状态。