1、国家二级( JAVA)笔试模拟试卷 188及答案与解析 1 下列关于栈的叙述中正确的是 ( )。 ( A)在栈中只能插入数据 ( B)在栈中只能删除数据 ( C)栈是先进先出的线性表 ( D)栈是先进后出的线性表 2 数据独立性是数据库技术的重要特点之一,所谓数据独立性是指 ( )。 ( A)数据与程序独立存放 ( B)不同的数据被存放在不同的文件中 ( C)不同的数据只能被对应的应用程序所使用 ( D)以上三种说法都不对 3 线性表 L=(a1,a2,a3, ai , an) ,下列说法正确的是 ( )。 ( A)每个元素都有一个直接前件和直接后件 ( B)线性表中至少要有 个元素 ( C)
2、表中诸元素的排列顺序必须是由小到大或由大到小 ( D)除第一个元素和最后一个元素外,其余每个元素都有且只有 个直接前继和直接后继 4 运行 Java程序需要的工具软件所在的目录是 ( A) JDK的 bin目录 ( B) JDK的 demo目录 ( C) JDK的 lib目录 ( D) JDKR的 jre目录 5 为了使模块尽可能独立,要求 ( )。 ( A)模块的内聚程序要尽量高,且各模块间的耦合程度要尽量强 ( B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 ( C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 ( D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
3、 6 下列叙述中正确的是 ()。 ( A)数据的逻辑结构与存储结构必定一一对应 ( B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构 ( C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构 ( D)以上三种说法都不对 7 下列描述中正确的是 ( )。 ( A)软件工程只是解决软件项目的管理问题 ( B)软件工程主要解决软件产品的生产率问题 ( C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 ( D)软件工程只是解决软件开发中的技术问题 8 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是 ( )。 (
4、 A)概要设计 ( B)详细设计 ( C)可行性分析 ( D)需求分析 9 提高模块的 _ ,使得当修改或维护模块时,可减少把一个模块的错误扩散到其他模块中去的机会。 ( ) ( A)耦合性 ( B)独立性 ( C)内聚性 ( D)共享性 10 按照 “后进先出 ”原则组织数据的数据结构是 ( A)队列 ( B)栈 ( C)双向链表 ( D)二叉树 11 下列语句执行之后, m、 n、 k的值分别为 _。 public class ex44 public static void main(String args) byte m=5; int n=3; boolean k; k=-m!=+n;
5、( A) 4, 4, true ( B) 5, 3, true ( C) 5, 3, false ( D) 4, 4, false 12 下列 Applet在坐标 (30, 50)处以黄色字体显示 “你好 !”。请选择正确的语句填入横线处。 import java.awt.*; import java.applet.*; public class ex27 extends Applet public void paint Graphics g) g.drawString(“你好 “, 30, 50); ( A) setColor(Color.yellow); ( B) g.setColor(C
6、olor. Yellow), ( C) g.setFontColor(Color. yellow); ( D) g.setColor(Color. yellow); 13 Java语言和 C+语言相比, ( )项是 Java有的,而 C+没有 ? ( A)面向对象 ( B)动态链接 ( C)有类库 ( D)跨平台 14 一个 int类型变量和一个 byte类型的常量做加法,结果是 ( )类型。 ( A) int ( B) byte ( C) char ( D)无法计算 15 下列哪个数代表八进制整数 ? ( A) 0XA5 ( B) 0144 ( C) 1840 ( D) -1 16 设 a=
7、8,则表达式 a 1的值是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 17 下列叙述中,正确的是 _。 ( A) Reader是一个读取字符文件的接口 ( B) Reader是一个读取数据文件的抽象类 ( C) Reader是一个读取字符文件的抽象类 ( D) Reader是一个读取字节文件的一般类 18 若定义 int a=2,b=2,下列表达式中值不为 4的是 ( A) a*(+b) ( B) a*(b+) ( C) a+b ( D) a*b 19 下列选项中不属于 Java保留字的是 ( )。 ( A) null ( B) false ( C) sizeof (
8、D) true 20 下列 ( )选项是合法的标识符。 ( A) 123 ( B) _name ( C) class ( D) 1 first 21 自定义的异常可从下列 ( )类继承。 ( A) Example ( B) Exception及其子集 ( C) Class类 ( D) Object类 22 Java语言中,下列标识符错误的是 ( )。 ( A) Name ( B) ?question ( C) $number ( D) _tree 23 下列关于 Java程序结构的描述中,不正确的一项是 ( )。 ( A)一个 Java源文件中可以包括一个 package语句 ( B)一个 J
9、ava源文件中可以包括多个类定义,但是只能有一个 public类 ( C)一个 Java源文件中可以有多个 public类 ( D)源文件名与程序类名必须一致 24 下列赋值语句中错误的是 ( )。 ( A) float f=1f; ( B) double d=5.3E12; ( C) char c=r; ( D) byte bb=433; 25 若要查询关于数据库的信息则可以调用下列哪一个方法 ? ( ) ( A) Connection类的 getMetaData()方法 ( B) DriverManager类的 getConnection()方法 ( C) Connection类的 cre
10、ateStatement()方法 ( D) Statement类的 executeQuery()方法 26 下列命令中, ( )命令是显示证书缓存区和密钥表项的命令。 ( A) klist ( B) ktab ( C) policytool ( D) kinit 27 下面各项声明中合法的是 ( )。 : long1=4990; : int i=4L; :floatf=1.1; : double d=34; ( A) 、 ( B) 、 、 ( C) 、 ( D) 、 28 下列关于实型变量书写正确的是 ( A) E3 ( B) 2e0 3 ( C) 1200 ( D) 1 2E0 3 29 下
11、列选项成员变量声明正确的是 ( A) public protected final int i; ( B) abstract class F1. ( C) private double height; ( D) double weight 30 Java以 JVM为基础,最下层是移植接口,由适配器和 ( )组成。 ( A)网卡 ( B) Java OS ( C) Java基本类 ( D) Java应用程序和 Applet小程序 31 下列程序输出结果为 ( )。 public class test public static void main (String args) int a=0; o
12、uter: for(int i=0; i 2; i + +) for(int j=0; j 2; j+ +) if(j i) continue outer; a+ +; System.out.println(a); ( A) 0 ( B) 2 ( C) 3 ( D) 4 32 下列的常量中,合法的 是 ( A) 12 ( B) -20 ( C) 1000 ( D) 4 5 6 33 下列的哪个赋值语句是不正确的 ? ( A) float f = 11.1; ( B) double d = 5.3E12; ( C) float d=3.14f; ( D) double f = 11.1E10f;
13、 34 下列代表十六进制整数的是 ( A) 0123 ( B) 1900 ( C) fa00 ( D) 0xa2 35 Frame默认的布局管理器是 ( A) FlowLayout ( B) BorderLayout ( C) GridLayout ( D) CardLayout 36 Applet要响应键盘的操作,应该在 init()方法中加入 (设键盘事件监听者就是Applet自身 )的语句是 _。 37 数据库管理系统常见的数据模型有层次模型、网状模型和【 】三种。 38 在两种基本测试方法中, _测试的原则之一是保证所测模块中的每一个独立路径至少执行一次。 39 软件可维护性度量的七个
14、质量特性是可理解性、可测试性、可修改性、可靠性、【 】、可使用性和效率。 40 在一个有 n个元素的顺序表的第 i个元素 (1in)之前插入一个新元素时,需要向后移动【 】个元素。 41 位运算符分为逻辑运算符和【 】运算符。 42 当方法有返回值时,必须在该方法体内使用【 】语句。 43 在 Java中所实现的多维数组,实际上是由一维数组构成的 _。 44 线程在生命周期中要经历 5种状态,分别是新建状态、可运行状态、运行状态、状态和终止状态。 45 与显示相关的 Applet方法有 _(), repaint()和 update()。 46 如果子类中覆盖了父类中的同名方法,则在 子类中调用
15、父类中的同名方法时用关键字【 】;在一个类的内部可以直接调用本类的对象,也可通过关键字 this来调用。 47 下列 Applet计算数组元素的和,并在窗口坐标 (50, 50)处输出该结果。请在横线处填写正确的代码。 import java.awt. Graphics; import java.applet.Applet; public class Testl2 extends Applet int a=2,4,6,8,10; int sum; public void init() sum=0; for(int i-0;i a.length;i+) sum=【 】 ; public void
16、 paint( Graphics g) g.drawString(“数组元素和: “+sum, 50,50); 48 表达式 11010011 3的值为【 】。 (二进制数表示 ) 49 线 程的调度是指在单个 CPU上以某种顺序运行多个【 】。 50 【 】是字符的序列,也是组织字符的基本结构。 国家二级( JAVA)笔试模拟试卷 188答案与解析 1 【正确答案】 D 【试题解析】 栈是限定在一端进行插入与删除的线性表,是按照 “先进后出 ”或“后进先出 ”的原则组织数据的,因此,栈也被称为 “先进后出 ”表或 “后进先出 ”表。 2 【正确答案】 D 【试题解析】 数据独立性是数据与程序
17、间的互不依赖性,即数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存 取方式的改变不会影响应用程序。选项 A、 B、 C三种说法都是错误的。 3 【正确答案】 D 【试题解析】 线性表可以为空表;第一个元素没有直接前驱,最后一个元素没有直接后继;线性表的定义中,元素的排列并没有规定大小顺序。 4 【正确答案】 A 【试题解析】 JDK目录中,选项 A的 bin目录下存放编译器、解释器和许多工具;选项 B的 demo 目录下有各种演示例子;选项 C的 lib 目录下都是库文件;选项 D的 jre目录是 Java程序运行环境的根目录。另外还有 include目录是 win
18、32子目录,都是本地方法文件。 5 【正确答案】 B 6 【正确答案】 D 7 【正确答案】 C 【试题解析】 软件工程学是研究软件开发和维护的普遍原理与技术的一门工程学科。所谓软件工程是指,采用工程的概念、原理、技术和方法指导软件的开发与维护。软件工程学的 主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面。由此可见,选项 A、 B和 D的说法均不正确,选项 C正确。 8 【正确答案】 D 【试题解析】 A和 B 选项,概要设计阶段和详细设计阶段属于软件设计阶段。在此阶段系统设计人员和程序设计人员在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。 C选
19、项,可行性分析阶段是确定待开发系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成开发任务的实施计划。 D选项,需求分析阶段是对待开发软件提出 的需求进行分析并给出详细定义,书写软件规格说明书及初步的用户手册,提交评审。所以,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段应该是需求分析阶段。 9 【正确答案】 B 10 【正确答案】 B 【试题解析】 “后进先出 ”表示最后被插入的元素最先能被删除。选项 A中,队列是指允许在一端进行插入、而在另一端进行删除的线性表,在队列这种数据结构中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删
20、除,队列又称为 “先进先出 ”的线性表,它体现了 “先来先服务 ”的原则;选项 B中,栈顶 元素总是最后被插入的元素,从而也是最先能被删除的元素,栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。队列和栈都属于线性表,它们具有顺序存储的特点,所以才有 “先进先出 ”和 “后进先出 ”的数据组织方式。双向链表使用链式存储方式,二叉树也通常采用链式存储方式,它们的存储数据的空间可以是不连续的,各个数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。所以选项 C和选项 D错误。 11 【正确答案】 D 【知识模块】 Java简单数据类型及运算 12 【正确答案】 D 【知识模块】 编 写
21、小应用程序 (Applet) 13 【正确答案】 D 【试题解析】 跨平台的特性是 Java语言所特有的。在不同的操作系统上,只要装有 JVM就可以解释执行 Java程序,而 C+没有这种特性。 14 【正确答案】 A 【试题解析】 int类型常量和 byte类型常量做加法,首先 byte类型常量自动转换为 int类型,因此最后的结果应该是 int类型的数值。 15 【正确答案】 B 【试题解析】 本题考查 Java语言中的整型常量。题目虽然不难,但属于学习程序设计语言的基础,应有所了解。整型 常量有 3种书写格式。十进制整数,如:156, -230, 345;八进制整数:以 0开头,如: 0
22、12表示十进制的 10;十六进制整数:以 0x或 OX开头,如 0X123表示十进制数 291。由此可见,选项 A表示的是十六进制整数,选项 B是八进制整数形式,以 0开头,为本题正确选项;选项 C和选项 D都是十进制整数。 16 【正确答案】 D 【试题解析】 本题考查考生对位运算符中无符号右移运算符的掌握。无符号右移运算符,也叫逻辑右移,用于将一个数的各二进制位全部无符号右移若干位,与运算符不同的是左补 0,而 则是最高位移入原来高位的值。在本题中, 8的二进制表示是 1000,右移两位后变成了 0100,对应的十进制数是 4。可见,正确答案为选项 D。 17 【正确答案】 C 【试题解析
23、】 Java中的流分为两种,一种是字节流,另一种是字符流,分别由4个抽象类来表示 (每种流包括输入和输出两种,所以一共 4个 ): InputStream、OutputStream、 Reader、 Writer。 18 【正确答案】 D 19 【正确答案】 C 【试题解析】 在 Java语言中有一些标识符是具有专门的意义和 用途的,不允许作为一般标识符使用,它们是保留字。由于 Java中所有数据类型的长度都固定,并与平台无关,因此没有 sizeof 保留字。 20 【正确答案】 B 【试题解析】 本题主要考查 Java中标识符的命名规则。标识符可以由字母、数字、下划线 “_”和美元符 “ ”
24、组成,但数字不能开头,不能用关键字做标识符。 21 【正确答案】 B 22 【正确答案】 B 23 【正确答案】 B 24 【正确答案】 D 【试题解析】 本题考查 Java语言中的赋值运算。赋值运算符 (=)是把一个表 达式的值赋给一个变量,赋值运算符两侧的类型不一致的情况下,如果左侧变量类型的级别高,则右侧的数据被转化为与左侧相同的高级数据类型后赋给左侧变量;否则,需要使用强制类型转换运算符。选项 A是 float常量;选项 B是 double型;选项 C是一个字符型常量,需要注意,这里的 “”是转移字符, “r”表示回车,并不是字母 r;选项 D中 433超过了 byte类型的范围,所以
25、是错误的。 25 【正确答案】 A 【试题解析】 选项 B的方法返回的是 Connection 类的实例,选项 C的方法返回的是 Statement类的 实例,选项 D的方法返回的是 ResultSet类的实例,只有选项A返回的是 Database MetaData类的实例,该类包含了数据库本身的信息。 26 【正确答案】 A 【试题解析】 本题考查 J2SDK的安全命令。选项 A正确, klist命令列表显示证书缓存区和密钥表中的项;选项 B错误, ktab 命令帮助用户管理密钥表的工具;选项 C错误, policytool 命令管理策略文件的图形化工具;选项 D正确, kinit命令用于获
26、得 Kerberos v5 rickets 的工具。 27 【正确答案】 C 【试题解析】 此题的考点是数字的表示法和基本数据类型间的自动转换。 Java语言中,没有小数点的数字被认为是 int型;带有小数点的数字被认为是 double型;其他的使用在数字后面加一个字母表示数据类型,加 1或者 L是 long型,加d 或者 D是 double 型,加 f或者 F是 float型。可以将低精度的数字赋值给高精度的变量,反之则需要进行强制类型转换。例如将 int、 short、 byte类型的数赋值给long型时,不需要显式的类型转换;反之,将 long型数赋值给 byte、 short、 int
27、型变量时需要强制转换 (int a=(int)123L)。 Int I=4L是将一个 Long 型的数据赋给一个整型的变量,这不符合赋值的要求; Double d=34.4是正确的赋值,因为 Double d=34.4d。因此应该选 C。 28 【正确答案】 C 【试题解析】 本题考查实型变量科学计算格式的书写。在科学计算格式中, e或E 是指数符,要求在 e/E 之前必须有数字,选项 A错误。同时还要求在 e/E 之后必须是整数,选项 B 和选项 D错误。虽然题目非常简单,但是不容易正确回答。正确答案为选项 C。 29 【正确答案】 C 【试题解 析】 本题考查对成员变量的声明。成贝变量的声
28、明格式位:修饰符 type变量名;其中 type可以是 java语言中的任意数据类型,而修饰符可以是 public、protected, private, static, final, transient, volatile等。选项 A错误,成员变量不能同时声明成 public和 protected。选项 B是类的声明格式,并不是成员变量的声明。成员变量声明应以 “; ”结尾,选项 D错误。选项 C声明了一个私有的double型成员变量,为正确答案。 30 【正确答案】 B 31 【正 确答案】 C 32 【正确答案】 B 【试题解析】 按照正常的书写格式选项 B) 正确。选项 A) 12后面
29、不应点带点号,但不同的变量类型可带不同的字母。选项 C) 1, 000计算机在数字中不识别逗号 “, ”。选项 D) 4 5 6在数字中间不要加空格,计算机会把 4 5 6当成字符申 “4 5 6”来处理。 33 【正确答案】 A 【试题解析】 浮点型数的赋值,带有小数点的数字缺省是 double型的,如果在浮点数后面加 f 或者 F则是 float,后面加 d或者 D则是 double,科学计数法形式的浮点数也 是 double 型的,而 double的精度比 float高,将一个高精度的 double赋值给一个低精度的 float时需要进行强制类型转换,反之则不需要。 34 【正确答案】
30、D 【试题解析】 本题考查 Java语言中的整型常量。题目不难,属于学习程序设计语言的基础,应该有所了解。整型常量有 3种书写格式:十进制整数,如 123, -30, 365;八进制整数:以 0开头,如 011表示十进制的 9;十六进制整数:以 0x或 OX开头,如 0X123表示十进制数 291。由此可见,选项 D表示的是十六进制整数,选项 C不是整数形 式,选项 B 是十进制整数,选项 A是八进制整数,只有选项 D为本题正确选项。 35 【正确答案】 B 【试题解析】 本题考查 Java中的布局管理器。 FlowLayout是 Pane和 Applet默认的布局管理器,构件在容器中从上到下
31、、从左到右进行放置; BorderLayout是Window、 Frame和 Dialog 的默认布局管理器,选项 B 正确,在 BorderLayout布局管理器中,构件分成 5个区域,每个区域只能放置一个构件: GridLayout使容器中各个构件呈网状布局,平均占据容器的空间: GardLayout把容器分成许多层,每层只能放置一个构件。 36 【正确答案】 this.addKeyListener(this); 【知识模块】 编写小应用程序 (Applet) 37 【正确答案】 关系模型 【试题解析】 数据库管理系统是位于用户与操作系统之间的一层系统管理软件,它总是基于某种数据模型建立的
32、。数据模型常见的有层次模型、网状模型和关系模型几种。 38 【正确答案】 白盒 【试题解析】 白盒测试的基本原则:保证所测模块中每一个独立路径至少执行一次;保证所测模块所有判断的每一 分支至少执行一次;保证所测模块每一循环都在边界条件和一般条件下至少各执行一次;验证所有内部数据结构的有效性。按照白盒测试的基本原则, “白盒 ”法是穷举路径测试。 39 【正确答案】 可移植性 40 【正确答案】 n-i+1 【试题解析】 在一般情况下,要在第 i个元素之前插入一个新元素时,从最后一个元素开始,直到第 i个元素,之间共 n i+1 个元素,依次向后移动一个位置。 41 【正确答案】 移位 【试题解
33、析】 位运算符分为逻辑运算符和移位运算符。逻辑运算符包括四种:按位取反运算符、按位 与运算符 &、按位或运算符 |、按位异或运算符 ;移位运算符包括三种:算术右移运算符、算术左移运算符和逻辑右移运算符。 42 【正确答案】 return 【试题解析】 有返回值的方法,必须在方法体内通过 return 语句返回值,否则编译出错。 43 【正确答案】 数组的数组 【试题解析】 本题考查多维数组的概念。 Java中没有多维数组这种数据结构,只有一维数组,在 Java中实现的所谓的多维数组,实际上是由一维数组 “焊接 ”而成的 “数组的数组 ”。也就是说,某个一维数组的元素是另一个一 维数组,则称之为
34、二维数组,依次类推,一维数组的多次嵌套定义,构成了多维数组。 44 【正确答案】 阻塞 【试题解析】 本题考查线程的生命周期。线程一旦创建,就开始了它的生命周期。线程的声明周期主要分为:新建状态 (new),线程创建后处于该状态;可运行状态 (Runnable),新建的线程调用 start()方法,将使线程的状态从 New 转换为Runnable;运行状态 (Running),运行状态使线程占有 CPU并实际运行的状态;阻塞状态 (Blocked),导致该状态的原因很多,注意区别;终止状态 (Dead),线程执行结束的状态,没有任何方法可改变它的状态。 45 【正确答案】 pamt 【试题解析
35、】 本题考查 Applet的关键方法。与显示有关的方法有 paint()方法、update()方法和 repaint()方法。 paint()方法具体执行 Applet的绘制: update()方法用于更新 Applet的显示; repaint()方法用于 Applet的重新显示,它调用 update()方法实现对 Applet的更新, Applet程序可以在需要显示更新时调用该方法,通知系统刷新显示。 46 【正确答 案】 super 47 【正确答案】 sum+ai 【试题解析】 需要填入横线的是求和的语句,遍历数组中的每一个元素,将新的元素加到 sum变量中。 48 【正确答案】 00011010 【试题解析】 逻辑右移的基本原则是低位舍弃,高位补 0, 11010011的最低 3位舍弃,得到 11010,在这个二进制串的高位补上 3个 0,得到 00011010。 49 【正确答案】 线程 【试题解析】 对于单个 CPU来说 1个时刻只能运行 1个线程,只有多个 CPU才能在真正意义上实现并发执行,但是在 单个 CPU上,可以通过一定的控制策略运行多个线程,从而看上去像是多个线程的并发执行,这种控制就是线程的调度。 50 【正确答案】 【 】字符串 【试题解析】 字符串是字符的序列,也是组织字符的基本结构。