1、国家二级( JAVA)笔试模拟试卷 146及答案与解析 1 在软件开发中,下面任务中不属于设计阶段的是 ( )。 ( A)数据结构设计 ( B)给出系统模块结构 ( C)定义模块算法 ( D)定义需求并建立系统模块 2 以下数据结构中不属于线性数据结构的是 ( )。 ( A)队列 ( B)线性表 ( C)二叉树 ( D)栈 3 在结构化方法中,用数据流程图 (DFD)作为描述工具的软件开发阶段是 ( ); ( A)可行性分析 ( B)需求分析 ( C)详细设计 ( D)程序编码 4 下面描述中,符 合结构化程序设计风格的是 ( )。 ( A)使用顺序、选择和重复 (循环 )三种基本控制结构表示
2、程序的控制逻辑 ( B)模块只有一个入口,可以有多个出口 ( C)注重提高程序的执行效率 ( D)不使用 goto语句 5 数据库系统的核心是 ( )。 ( A)数据模型 ( B)数据库管理系统 ( C)软件工具 ( D)数据库 6 下面概念中,不属于面向对象方法的是 ( )。 ( A)对象 ( B)继承 ( C)类 ( D)过程调用 7 在一棵二叉树上第 5层的结点数最多是 ( )。 ( A) 8 ( B) 16 ( C) 32 ( D) 15 8 下面叙述中正确的是 ( )。 ( A)算法的执行效率与数据的存储结构无关 ( B)算法的空间复杂度是指算法程序中指令 (或语句 )的条数 ( C
3、)算法的有穷性是指算法必须能在执行有限个步骤之后终止 ( D)以上三种描述都不对 9 下列叙述中正确的是 ( )。 ( A)数据库是一个独立的系统,不需要操作系统的支持 ( B)数据库设计是指设计数据库管理系统 ( C)数据库技术的根本目标是要解决数据共享的问题 ( D)数据库系统中,数据的物理结构必须与逻辑结构一致 10 下列模式中,能够给出数据库物理存储结构与物理存取方法的是 ( )。 ( A)内模式 ( B)外模式 ( C)概念模式 ( D)逻辑模式 11 下列选项中,属于 JVM执行过程中的特点的一项是 ( )。 ( A)编译执行 ( B)多进程 ( C)异常处理 ( D)静态链接 1
4、2 如果有两个类 A和 B, A类基于 B类,则下列描述中正确的是 ( )。 ( A)这 2个类都是子类或者超类 ( B) A是 B超类的子类 ( C) B是 A超类的子类 ( D)这 2个类都是对方的子类 13 Java的字符类型采用的是 Unicode编码方案,每个 Unicode码占用 ( )个比特位。 ( A) 8 ( B) 16 ( C) 32 ( D) 64 14 反斜杠字符的正确表示是 ( )。 ( A) ( B) * ( C) ( D) 15 下列选项中不属于 Java保留字的是 ( )。 ( A) null ( B) false ( C) sizeof ( D) true 1
5、6 下列程序段执行后,变量 c的值为 ( )。 public class Test public static void main(String args) float a=10, b=9, c=8; if (-a=B)c= -a/c; System. out. println (C); ( A) 1.125 ( B) 1.0 ( C) 1.25 ( D) 0.0 17 下列循环执行的次数是 ( )。 int y=3, x=5; while(-x! =x/y) ( A) 3次 ( B) 4次 ( C) 5次 ( D) 0次 18 下列关于 Java语言中常用的异常类的说法中,错误的是 ( )。
6、 ( A)在不合法的数学运算发生时,会出现 ArithmeticException异常。 ( B)如果将字符串转换成数字,需要准备处理 NumberFormatException异常。 ( C)如果使用非法的索引值来访问数组, ArrayIndexOutOfBoundException异常会抛出 ( D)如果指针变量为空, NullPointerException异常会被抛出。 19 下列说法中,错误的是 ( )。 ( A)一个 程序抛出异常,任何其他在运行中的程序都可以捕获。 ( B)算术溢出需要进行异常处理。 ( C)在方法中检测到错误但不知道如何处理错误时,方法就声明一个异常。 ( D)
7、任何没有被程序捕获的异常将最终被默认处理程序处理。 20 下列关于内部类的说法不正确的是 ( )。 ( A)内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用 ( B)内部类可以使用它所在类的静态成员变量和实例成员变量 ( C)内部类不可以用 abstract修饰符定义为抽象类 ( D)内部类可作为其他类的成员,而且可访问它所在类的 成员 21 下列哪个选项是正确计算角度 42的余弦值 ?( ) ( A) double d = Math. cos(42); ( B) double d = Math. cosine(42); ( C) double d = Math. cos(Math
8、. toRadians(42); ( D) double d = Math. cos(Math. toDegrees(42); 22 欲构造 ArrayList类的一个实例,此类实现了 List接口,下列 ( )方法是正确的。 ( A) ArrayList myList = new Object( ); ( B) List myList = new ArrayList( ); ( C) ArrayList myList = new List( ); ( D) List myList = new List( ); 23 下面有关构造方法的说法中错误的是 ( )。 ( A)构造方法名与类名必须相同
9、。 ( B)构造方法往往是给对象赋初值,无返回值,所以构造方法的返回类型是void。 ( C)构造方法不能被程序调用 ( D)定义一个类时,若没有定义该类的构造方法,则 Java语言会提供默认的构造方法。 24 给出下面程序的代码: byte array1, array2 ; byte array3 ; byter array4; 下列数组操作语句中不正确的是 ( )。 ( A) array2=array1 ( B) array2=array3; ( C) array2=array4 ( D) array3=array4 25 关于数组,下列说法中不正确的是 ( )。 ( A)数组是最简单的复
10、合数据类型,是一系列数据的集合 。 ( B)数组的元素可以是值 (基本数据类型 )、对象或其他数组。 ( C)定义数组时,必须分配内存。 ( D)一个数组中的所有值都必须是相同的类型。 26 下列程序段的输出是 ( )。 public class Test public static void main (String args ) String ss1 = new String(“hello“); String ss2 = new String(“hello“); System. out. println(ssl = ss2); System. out. println (ss1. equa
11、ls(ss2); ( A) true, false ( B) true, true ( C) false, true ( D) false, false 27 如果创建的子类覆盖了父类的一个 public方法,则对该方法可以使用 ( )修饰符。 ( A) public ( B) public和 protected ( C) private ( D)任意修饰符都可以,由系统随机选取 28 关于 MappedByteBuffer类,下列叙述正确的是 ( )。 ( A)可以提高读写速度 ( B)提供了把磁盘文件映入内存的通道 ( C)把内存缓冲区的内容映射到了磁盘文件上 ( D)具有 map()方法
12、,可以将文件映入内存 29 下列关于字符流的叙述中,正确的是 ( )。 ( A)字符流类 BufferedReader可以提高字符传送的效率 ( B)字符输入流首先要实现 DataInput接口 ( C)字节输入流都是 Reader子类 ( D)只有字节输入流具有 read( )方法,字符输入流不具有该方法。 30 下列关于线程的优先级叙述,不正确的是 ( )。 ( A)线程的优先级从其父线程继承而来 ( B) Java的线程调度是基于优先级的抢先式调度 ( C)在 Java中,总是选择高优先级的线程先执行 ( D)线程的优先级与线程组一样,在线程创建时获得,在运行过程中只能读取,不能更改 3
13、1 以下关于新建线程的叙述,正确的是 ( )。 ( A)当线程被创建时,可以马上启动 ( B)新建线程可以使用 start( )、 stop( )和 wait( )等多个方法 ( C)进入新建状态的线程,没有被分配资源 ( D)新建状态的线程通过调用方法 join( )可以进入阻塞状态 32 要获取 JList中选中的项目的值,应该使用 ( )方法实现。 ( A) getSeleetedIndex( ) ( B) getSelectedValue( ) ( C) setSleetionMode( ) ( D) getSelectedIndexes( ) 33 使用 ( )方法可以将 JMenu
14、Bar对象设置为主菜单。 ( A) setHelpMenu( ) ( B) setJMenuBar( ) ( C) add( ) ( D) setMenuLocation( ) 34 下列关于 Applet的安全限制的叙述中,错误的是 ( )。 ( A)通常情况下,禁止 Applet读、写本地文件系统 ( B)通常情况下,禁止 Applet向 Applet源主机之外的任何主机建立网络连接 ( C)通常情况下,禁止 Applet读取系统信息 ( D)通常情况下,禁止 Applet加载本地库或方法 35 当浏览器重新返回 Applet所在页面时,将调用 Applet类的 ( )方法。 ( A) s
15、tart( ) ( B) init( ) ( C) stop( ) ( D) destroy( ) 36 在长度为 n的线性表中查找厂个表中不存在的元素,需要的比较次数为_。 37 在面向对象的程序设计中,用来请求对象执行某一处理或回答某些信息的要求称为 _。 38 源程序文档化要求程序应加注释。注释一般分为序言性注释和 _。 39 数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于 _。 40 在关系运算中, _运算是在给定关系的某些 域上进行的运算。 41 按运算符操作数的数目划分,运算符 ?:的类型是 _元运算符。 42 属于 main()方法的返回类型是 _。 43 如果在
16、Java程序中,需要使用 java.util包中的所有类,则应该在程序开始处加上语句。 44 Throwable类有两个子类,分别是 Error和 _。 45 下列程序段的输出结果为 _。 public class Test void printValue(int m) do System out println(“The value is “+m); while(-m 10 ); public static void main(String arg) int i=10; Test t= new Test(); t printValue(i); 46 设 x=1, y=2, z=3, u=fa
17、lse, u=y zx!=Z;结果为 _。 47 下面是一个类的定义,试将程序补充完整。 class A String s; _int a=66; A(String sl) s=sl; static int geta() return a; 48 下面是一个 JavaApplet程序,请将程序补充完整使它的功能为计算数组各元素的平均值。 import java applet Applet; import java awt *; public class Exam extends Applet public void paint(Graphics g) int a =1, 3, 5, 7, 9,
18、 10; int total=0; float ave; for(int i=0; i A.length; i+) total+=ai; ave=total/ g.drawstring(“ave=“+ave, 30, 60); 49 给较低优先级线程一个执行的机会调用 _。 50 线程的基本状态有新建、就绪、 _、运行和消亡。 国家二级( JAVA)笔试模拟试卷 146答案与解析 1 【正确答案】 D 【试题解析】 软件设计一般分为总体设计和详细设计两个阶段,总体设计的任务是确定软件的总体结构,子系统和模块的划分,并确定模块间的接口和评 价模块划分质量,以及进行数据分析。详细设计的任务是确定每
19、一模块实现的定义,包括数据结构、算法和接口。 2 【正确答案】 C 【试题解析】 线性表、栈和队列所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,它只能在固定的一端进行插入和删除操作,又称后进先出表 (Last In First Out);队列是插入在一端进行,删除在另一端进行的线性表,又称先进先出表 (First In First Out)。 3 【正确答案】 B 【试题解析】 软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流图和数据字典。 4 【正确答案】 A 【试题解析】 结构化程序设计方法的四条原则是: 自顶向下; 逐步
20、求精; 模块化; 限制使用 goto语句。 “自顶向下 ”是指在程序设计时,先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。 “逐步求精 ”是指对复杂问题应设计一些子目标作过渡,逐步细节化。 “模块化 ”是指一个复杂问题由若干稍简单的问题构成;解决这个复杂问题的程序,也应由若干稍简单问题 的小程序组成。 5 【正确答案】 B 【试题解析】 数据库管理系统 DBMS是数据库系统的核心。 DBMS 是建立在操作系统之上,负责数据库的建立、使用和维护。 DBMS 实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过DBMS。 DBMS 还承担着数据库的安全
21、保护工作。 6 【正确答案】 D 【试题解析】 面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出发,发展出对象、类、消息、继承等概念。 7 【正确答案】 B 【试题解析】 根据二叉树的性质:二叉树第 i(i1)层上至多有 2i-1个结点。由此得到第 5层的结点数最多是 16。 8 【正确答案】 C 【试题解析】 算法的执行效率与数据的存储结构有关;算法在运行过程中需要的存储空间的大小称为算法的空间复杂度。算法的有穷性是指一个算法必须在执行有限步骤以后结束。 9 【正确答案】 C 【试题解析】 数据库不是一个独立的系统,它需要操作系统
22、的支持,选项 A错误;设计数据库的目的是设计出满足实际应用需求的实际关系模型,选项 B错误;数据 库技术的主要目的是有效地管理和存取大量的数据资源,包括:提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余,以提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价,选项 C正确。数据库系统中,数据的物理结构和逻辑结构可以相互独立,选项 D错误。 10 【正确答案】 A 【试题解析】 数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式,或子模式,或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式,或逻辑模式,是数据
23、库中 对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。外模式是模式的一部分。内模式,或存储模式,或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方式的描述。 11 【正确答案】 C 【试题解析】 Java虚拟机的执行过程有 3个特点:多线程、动态链接、异常处理。 12 【正确答案】 B 【试题解析】 定义其他类的类是超类,从某个已有类继承得到的类是子类。本题中, A类基于 B类,因此, A类是子类,而 B类是超类,选项 B为正确答案。 13 【正确答案 】 B 【试题解析】 Unicode字符集比 ASCII 字符集更丰富,它们是 16位无符号
24、数据。 14 【正确答案】 A 【试题解析】 Java中的转义字符以反斜杠 ()开头,对反斜杠字符本身则用 表示。 15 【正确答案】 C 【试题解析】 在 Java语言中有一些标识符是具有专门的意义和用途的,不允许作为一般标识符使用,它们是保留字。由于 Java中所有数据类型的长度都固定,并与平台无关,因此没有 sizeof 保留字。 16 【正确答案】 B 【试题解析】 -a相当于 a=a-1,然后才使用 a, if语句中, a变为 9,条件为真,执行 c=-a/c,a先变为 8,才进行除运算,所以选 B。 17 【正确答案】 B 【试题解析】 首先判断条件, -x之后, x=4,x/y=
25、1,条件表达式为真,执行第一次循环;继续判断条件, -x之后, x=3,x/y=1,条件表达式为真,执行第二次循环;继续判断条件, -x之后, x=2, x/y=0,条件表达式为真,执行第三次循环;继续判断条件, -x之后, x=1,x/y=0,条件表达式为真,执行第四次循环;继续判断条件, -x之后, x=0,x/y=0,条件表达式为假,退出循环。因此一共执行了 4次循环。 18 【正确答案】 D 【试题解析】 Java语言中没有指针变量。 NullPointerException 异常抛出的条件是调用使用 null 对象引用的方法。 19 【正确答案】 A 【试题解析】 不是任何其他在运行
26、中的程序都可以捕获一个程序抛出的异常,而是由 Java虚拟机中的标准异常处理程序来捕获。 20 【正确答案】 C 【试题解析】 内部类是在一个类的内部嵌套定义的类。与普通类一样,内部类也具有自己的成员变量和方法,也 可用 abstract 修饰符定义为抽象类。 21 【正确答案】 C 【试题解析】 public static double cos(doublea)是 Math 类中返回以弧度为单位的a的余弦值的,应先用 toRadians()方法将 42转换为弧度值。 22 【正确答案】 B 【试题解析】 不能直接建立接口的实例,只能通过实现接口的相应的类来实现接口。 23 【正确答案】 B
27、【试题解析】 构造方法是给对象赋初值,所以没有返回值,但不需要用 void来声明。 24 【正确答案】 A 【试题解析】 此题考查二维数组的定义,其中 array1为一维数组,其余的为二维数组,选项 A中,将一维数组的值赋给二维数组,出现错误。 25 【正确答案】 C 【试题解析】 定义数组时,并不分配内存,所以不要求给定数组元素的个数,而是到使用的时候才决定数组的大小。 26 【正确答案】 C 【试题解析】 =操作符比较的是操作符两端的操作数是否是同一个对象,而equals()方法比较的是两个 String对象的内容是否一样。 ssi和 ss2是两个不同的对象,所以 ssi=ss2 值为假;
28、而 ssi和 ss2 所指的内容都是 “hello“字符串,所以 ss1. equals(ss2)值为真。 27 【正确答案】 A 【试题解析】 当子类覆盖父类的方法时,如果父类的方法的修饰符是 public,子类一定要用 public,因为子类的访问权限要高于父类,因此正确答案为 A。 28 【正确答案】 A 【试题解析】 MappedByteBuffer 类具有内存映射缓冲功能,能将磁盘文件映射到内存,提高读写速度。 29 【正确答案】 A 【试题解析】 在 Java中,字符都是以 16位 Unicode码的形式表示的。处理Unicode码的所有类都是从 Reader和 Writer 两个
29、抽象超类中衍生的。字符输入流均为 Reader的子类,而字符输出流均为 Writer的子类。 BufferedReader具有缓冲功能,可以提高 I/O的传输效率。 30 【正确答案】 D 【试题解析】 Java的线程调度是基于优先级的抢先式调度,它总是选择高优先级的线程先执行。线程的优先级从它的父线程继承而来,可以通过 getPriority( )方法读取线程优先级,通过 setPriority( )方法改变线程优先级 。 31 【正确答案】 C 【试题解析】 线程被创建后,并不马上启动,而是进入新建状态。此时线程没有被分配资源,只能使用 start( )和 stop( )两个控制方法。 3
30、2 【正确答案】 B 【试题解析】 JList类中的 getSelectedIndex()方法的作用是:返回所选第一个选项的索引,如果没有选择项,则返回 -1; getSelectedValue()方法的作用是:返回所选的第一个值,如果选择为空,则返回 null; getSelectionMode()方法的作用是:返回允许单项选择 还是多项选择; getSelectedIndexes()方法的作用是:返回所选的全部索引的数组 (按升序排列 )。所以 B选项为正确答案。 33 【正确答案】 B 34 【正确答案】 C 35 【正确答案】 A 【试题解析】 init方法是在 Applet被下载时调
31、用,一般用来完成所有必需的初始化操作; start( )函数是在 Applet初始化之后以及 Applet被重新访问时调用,使Applet成为激活状态;当 Applet被覆盖或退出时,调用 stop( )方法可以停止线程。 start( )与 stop( )是一对相对应的方法,一般常在 start( )启动一些动作,而在stop( )中暂停这些动作; destroy( )方法是在关闭浏览器 Applet从系统中撤出时调用,彻底终止 Applet,从内存卸载并释放该 Applet的所有资源。 36 【正确答案】 n 【试题解析】 在长度为 n 的线性表中查找一个表中不存在的元素,需要的比较次数为
32、 n。 37 【正确答案】 消息 【试题解析】 消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。 38 【正确答案】 功能性注释 【试题解析】 注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,它给出程序的整体说明:功能性注释的位置一般嵌在源程序体之中,主要描述其后的语句或程序做什么。 39 【正确答案】 格式化模型 【试题解析】 层次模型与网状模型属于格式化模型。 40 【正确答案】 投影 【试题解析】 在关系运算中,投影运算是在给定关系的某些域上进行的运算。 41 【正确答案】 三 【试题解析】 本题考查
33、 Java中的运算符。程序涉及的数 据处理,都是通过运算符和表达式来操作,是程序设计的基础,因此考生务必掌握。按照运算符的操作数的数目划分,可以分为一元运算符: +, -, +, -;二元运算符: +, -,;三元运算符: ?:。三元运算符 “?: ”是一个简要的 if-else语句。 42 【正确答案】 void 【试题解析】 本题考查 main()方法的概念。 main 方法的返回类型是 void, Java解释程序不希望从 main 方法那里得到返回值。 Java,解释程序会生成一个退出状态,该退出状态用于解释程序的调用环境,以表明是否成功地执行了该程序 和正常终止了该程序。这是个基本概
34、念题目,考生了解即可。 43 【正确答案】 import java util *; 【试题解析】 本题考查 Java中包的概念。 Java中用 import语句来导入包,但需注意的是, Java语言中的 java lang包是由编译器直接自动导入的,因此,编程时使用该包中的类,可省去 import导入。使用其他包中的类,必须用 import导入。 44 【正确答案】 Exception 【试题解析】 本题考查 Throwable类的概念。 Throwable类有 Error和 Exception 两个子类, Error类包括动态连接失败、硬件设备和虚拟机出错等,通常的 Java应用程序不会捕获
35、和抛出这类异常,而是捕获和抛出 Exception 这类异常,它包括运行时出现的异常,并对这类异常做出处理。 45 【正确答案】 The value is 10 【试题解析】 本题考查 do-while循环的用法。 do-while最少执行一次,在执行完do中的内容后,判断 while中的条件是否为 true。如果为 true,就再执行 do中的内容,然后再进行判断。以此类推,直到 while的判断 为 false时退出循环,执行循环后面的内容。题目中 m的值为 10,当程序运行到 do-while循环时,程序先执行一次循环然后再作判断,因此输出为 The value is 10。 46 【正
36、确答案】 true 【试题解析】 本题考查 Java中的复杂表达式。首先要清楚该表达式中各个运算符的含义, “ ”是比较运算符, “”是按位异或运算符, “!=”是不相等测试关系运算符。在题目所给的表达式中:比较运算符 “ ”优先级大于不相等测试关系运算符 “!=”优先级大于按位异或运算符 “”,所以表达式最后结果为 true。 47 【正确答案】 static 【试题解析】 本题考查 Java中的修饰符。 static方法只能处理 static成员,非static方法不能处理 static成员。所以题目中的 geta()方法声明是 static的,所以其中的变量必须也声明为 static属性
37、。 48 【正确答案】 a.length 【试题解析】 题考查 Java的循环结构。 for循环的一般格式为: for(初始化部分;终止条件判断部分;迭代部分 ) /循环体; 说明如下: for循环开始时,首先执行初始化操作,然后 判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。为了计算数组各元素和的平均值,第 1步是先将各元素累加起来,用 for语句很容易实现,得到的和放在 total里,第 2步是将这个和除以总共元素的个数,重新判断终止条件。 49 【正确答案】 sleep() 【试题解析】 本题考查线程的调度。 sleep()调用会给较低优先级线程一个运行的机会,而 yield()方法只会给相同优先级线程一个执行的机会,如果没有相同优先级的可运行进程, yield()什么 都不做。 50 【正确答案】 阻塞 【试题解析】 本题考查线程的基本概念。线程有 “新建 ”、 “就绪 ”、 “阻塞 ”、 “运行 ”和 “消亡 ”5个基本状态。线程对象被创建时进入 “新建 ”状态;程序执行语句启动这个线程后,它进入线程队列等待 CPU时间片,称为 “就绪 ”状态;等 CPU时间和其他资源齐备时进入 “运行 ”状态;线程运行完毕或者被强制终止则进入 “消亡 ”状态。上述线程各状态之间的转换就构成了线程的基本生命周期。