1、国家二级( JAVA)笔试模拟试卷 117及答案与解析 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)静态链接
4、12 如果有两个类 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
5、 16 下列程序段执行后,变量 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.to
8、Radians(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)构造方法名与类名必须相同。 ( B)
9、构造方法往往是给对象赋初值,无返回值,所以构造方法的返回类型是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 (ssequals(ss2); ( A
11、) 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()方法,可以将文件映入内存 2
12、9 下列关于字符流的叙述中,正确的是 ( )。 ( A)字符流类 BufferedReader可以提高字符传送的 效率 ( B)字符输入流首先要实现 DataInput接口 ( C)字节输入流都是 Reader子类 ( D)只有字节输入流具有 read( )方法,字符输入流不具有该方法。 30 下列关于线程的优先级叙述,不正确的是 ( )。 ( A)线程的优先级从其父线程继承而来 ( B) Java的线程调度是基于优先级的抢先式调度 ( C)在 Java中,总是选择高优先级的线程先执行 ( D)线程的优先级与线程组一样,在线程创建时获得,在运行过程中只能读取,不能更改 31 以下关于新建线程的
13、叙述,正确的是 ( )。 ( A)当线程被创建时,可以马上启动 ( B)新建线程可以使用 start( )、 stop( )和 wait( )等多个方法 ( C)进入新建状态的线程,没有被分配资源 ( D)新建状态的线程通过调用方法 join( )可以进入阻塞状态 32 要获取 JList中选中的项目的值,应该使用 ( )方法实现。 ( A) getSeleetedIndex( ) ( B) getSelectedValue( ) ( C) setSleetionMode( ) ( D) getSelectedIndexes( ) 33 使用 ( )方法可以将 JMenuBar对象设置为主菜单
14、。 ( A) setHelpMenu( ) ( B) setJMenuBar( ) ( C) add( ) ( D) setMenuLocation( ) 34 下列关于 Applet的安全限制的叙述中,错误的是 ( )。 ( A)通常情况下,禁止 Applet读、写本地文件系统 ( B)通常情况下,禁止 Applet向 Applet源主机之外的任何主机建立网络连接 ( C)通常情况下,禁止 Applet读取系统信息 ( D)通常情况下,禁止 Applet加载本地库或方法 35 当浏览器重新返回 Applet所在页面时,将调用 Applet类的 ( )方法。 ( A) start( ) ( B
15、) init( ) ( C) stop( ) ( D) destroy( ) 36 数据的逻辑结构有线性结构和【 】两大类。 37 顺序存储方法是把逻辑上相邻的结点存储在物理位置【 】的存储单元中。 38 一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【 】。 39 软件工程研究的内容主要包括:【 】技术和软件工程管 理。 40 关系操作的特点是【 】操作。 41 异常对象从产生和被传递提交给 Java运行系统的过程称为【 】异常。 42 字节输入流均为【 】的子类。 43 线程在生命期中要经历 5种状态,它们分别是新建状态、可运行状态、运行状态、【 】状态和终止状
16、态。 44 方法头中的关键字【 】用来表示方法不返回任何值。 45 在 Java程序中,通过类的定义只能实现【 】重继承,但通过接口的定义可以实现多重继承。 46 1public class Test public static void main(String args) String name =new String5; for(int i=0; i args.length; +i) namei = argsi; System.out.println(name2); 命令行中的输入为: java Test a b 程序的输出是【 】 。 47 【 】是一个特殊 的方法,是为对象初始化操作编
17、写的方法,用它来定义对象的初始状态。 48 下面的程序是声明某类型变量 s,并通过三元条件运算符的结果给变量 s赋值,请将该程序补充完整: public class Test public static void main(String args) 【 】 s=(99%2=1)?“奇数 “:“偶数 “; System.out.println(s); 49 与显示相关的 Applet方法有【 】 ( )、 repaint( )和 update( )。 50 一个类只有实现了【 】接口,它的对象才是可串行化的。 国家二级( JAVA)笔试模拟试卷 117答案与解析 1 【正确答案】 D 【试题解析
18、】 软件设计一般分为总体设计和详细设计两个阶段,总体设计的任务是确定软件的总体结构,子系统和模块的划分,并确定模块间的接口和评价模块划分质量,以及进行数据分析。详细设计的任务是确定每一模块实现的定义,包括数据结构、算法和接口。 2 【正确答案】 C 【试题解析】 线性表、栈和队列所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,它只能在固定的一端进行插入和删除操作,又称后进先出表 (Last In First Out);队列是插入在一端进行,删除在另一端进行的线性表,又称先进先出表 (First In First Out)。 3 【正确答案】 B 【试题解析】 软件开发阶段包括需求
19、分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流图和数据字典。 4 【正确答案】 A 【试题解析】 结构化 程序设计方法的四条原则是: 自顶向下; 逐步求精; 模块化; 限制使用 goto语句。 “自顶向下 ”是指在程序设计时,先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。 “逐步求精 ”是指对复杂问题应设计一些子目标作过渡,逐步细节化。 “模块化 ”是指一个复杂问题由若干稍简单的问题构成;解决这个复杂问题的程序,也应由若干稍简单问题的小程序组成。 5 【正确答案】 B 【试题解析】 数据库管理系统 DBMS是数据库系统的核心。 DBMS是建立在操作系
20、统之上,负责数据库的建立、使用和维护。 DBMS实施对数据库 的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过DBMS。 DBMS还承担着数据库的安全保护工作。 6 【正确答案】 D 【试题解析】 面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出发,发展出对象、类、消息、继承等概念。 7 【正确答案】 B 【试题解析】 根据二叉树的性质:二叉树第 i(i1)层上至多有 2i-1个结点。由此得到第 5层的结点数最多是 16。 8 【正确答案】 C 【试题 解析】 算法的执行效率与数据的存储结构有关;算法在运
21、行过程中需要的存储空间的大小称为算法的空间复杂度。算法的有穷性是指一个算法必须在执行有限步骤以后结束。 9 【正确答案】 C 【试题解析】 数据库不是一个独立的系统,它需要操作系统的支持,选项 A错误;设计数据库的目的是设计出满足实际应用需求的实际关系模型,选项 B错误;数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余,以提高数据的一致性和完整性;提供数据与应用程序的 独立性,从而减少应用程序的开发和维护代价,选项 C正确。数据库系统中,数据的物理结构和逻辑结构可以相互独立,选项 D错误。 10 【正确答案】 A
22、 【试题解析】 数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式,或子模式,或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式,或逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。外模式是模式的一部分。内模式,或存储模式,或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的 物理结构和存取方式的描述。 11 【正确答案】 C 【试题解析】 Java虚拟机的执行过程有 3个特点:多线程、动态链接、异常处理。 12 【正确答案】 B 【试题解析】 定义其他类的类是超类,从某个已有类继承得到的类是子类。本题中, A类
23、基于 B类,因此, A类是子类,而 B类是超类,选项 B为正确答案。 13 【正确答案】 B 【试题解析】 Unicode字符集比 ASCII字符集更丰富,它们是 16位无符号数据。 14 【正确答案】 A 【试题解析】 Java中的转义字 符以反斜杠 ()开头,对反斜杠字符本身则用 表示。 15 【正确答案】 C 【试题解析】 在 Java语言中有一些标识符是具有专门的意义和用途的,不允许作为一般标识符使用,它们是保留字。由于 Java中所有数据类型的长度都固定,并与平台无关,因此没有 sizeof保留字。 16 【正确答案】 B 【试题解析】 -a相当于 a=a-1,然后才使用 a, if
24、语句中, a变为 9,条件为真,执行 c=-a/c,a先变为 8,才进行除运算,所以选 B。 17 【正确答案】 B 【试题解析】 首 先判断条件, -x之后, x=4,x/y=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 【试题解析】 Ja
25、va语言中没有指针变量。 NullPointerException异常抛出的条件是调用使用 null对象引用的方法。 19 【正确答案】 A 【试题解析】 不是任何其他在运行中的程序都可以捕获一个程序抛出的异常,而是由 Java虚拟机中的标准异常处理程序来捕获。 20 【正确答案】 C 【试题解析】 内部类是在一个类的内部嵌套定义的类。与普通类一样,内部类也具有自己的成员变量和方法,也可用 abstract修饰符定义为抽象类。 21 【正确答案】 C 【试题解析】 public static double cos(double a)是 Math类中返回以弧度为单位的a的余弦值的,应先用 toR
26、adians()方法将 42转换为弧度值。 22 【正确答案】 B 【试题解析】 不能直接建立接口的实例,只能通过实现接口的相应的类来实现接口。 23 【正确答案】 B 【试题解析】 构造方法是给对象赋初值,所以没有返回值,但不需要用 void来声明。 24 【正确答案】 A 【试题解析】 此题考查二维数组的定义,其中 array1为一维数组,其余的为二维数组,选项 A中,将一维数组的值赋给二维数组,出现错误。 25 【正确答案】 C 【试题解析】 定义数组时,并不分配内存,所以不要求给定数组元素的个数,而是到使用的时候才决定数组的大小。 26 【正确答案】 C 【试题解析】 =操作符比较的是
27、操作符两端的操作数是否是同一个对象,而equals()方法比较的是两个 String对象的内容是否一样。 ssi和 ss2是两个不同的对象,所以 ssi=ss2值为假;而 ssi和 ss2所指的内容都是 “hello“字符串,所以 ss1. equals(ss2)值为真。 27 【正确答案】 A 【试题 解析】 当子类覆盖父类的方法时,如果父类的方法的修饰符是 public,子类一定要用 public,因为子类的访问权限要高于父类,因此正确答案为 A。 28 【正确答案】 A 【试题解析】 MappedByteBuffer类具有内存映射缓冲功能,能将磁盘文件映射到内存,提高读写速度。 29 【
28、正确答案】 A 【试题解析】 在 Java中,字符都是以 16位 Unicode码的形式表示的。处理Unicode码的所有类都是从 Reader和 Writer两个抽象超类中衍生的。字符输入流均为 Reader的 子类,而字符输出流均为 Writer的子类。 BufferedReader具有缓冲功能,可以提高 I/O的传输效率。 30 【正确答案】 D 【试题解析】 Java的线程调度是基于优先级的抢先式调度,它总是选择高优先级的线程先执行。线程的优先级从它的父线程继承而来,可以通过 getPriority( )方法读取线程优先级,通过 setPriority( )方法改变线程优先级。 31
29、【正确答案】 C 【试题解析】 线程被创建后,并不马上启动,而是进入新建状态。此时线程没有被分配资源,只能使用 start( )和 stop( )两个控制方法。 32 【正确答案】 B 【试题解析】 JList类中的 getSelectedIndex()方法的作用是:返回所选第一个选项的索引,如果没有选择项,则返回 -1; getSelectedValue()方法的作用是:返回所选的第一个值,如果选择为空,则返回 null; getSelectionMode()方法的作用是:返回允许单项选择还是多项选择; getSelectedIndexes()方法的作用是:返回所选的全部索引的数组 (按升序
30、排列 )。所以 B选项为正确答案 。 33 【正确答案】 B 34 【正确答案】 C 35 【正确答案】 A 【试题解析】 init方法是在 Applet被下载时调用,一般用来完成所有必需的初始化操作; start( )函数是在 Applet初始化之后以及 Applet被重新访问时调用,使Applet成为激活状态;当 Applet被覆盖或退出时,调用 stop( )方法可以停止线程。 start( )与 stop( )是一对相对应的方法,一般常在 start( )启动一些动作,而在stop( )中暂停这些动作; destroy( )方法是在 关闭浏览器 Applet从系统中撤出时调用,彻底终止
31、 Applet,从内存卸载并释放该 Applet的所有资源。 36 【正确答案】 非线性结构 【试题解析】 数据的逻辑结构有线性结构和非线性结构两大类。 37 【正确答案】 相邻 【试题解析】 常用的存储表示方法有 4种:顺序存储、链式存储、索引存储、散列存储。其中,顺序存储方法是把逻辑上相邻的结点存储在物理位置也相邻的存储单元中。 38 【正确答案】 可重用性 【试题解析】 本题考查了继承的优点:相似的对象可以共享程序代码和数 据结构,从而大大减少了程序中的冗余,提高了软件的可重用性。 39 【正确答案】 软件开发 【试题解析】 基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:
32、软件开发技术和软件工程管理。软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。软件工程管理包括:软件管理学、软件工程经济学以及软件心理学等内容。 40 【正确答案】 集合 【试题解析】 在关系操作中,所有操作对象与操作结果都是关系。而关系定义为元数相同的元组的集合。因此,关系 操作的特点是集合操作。 41 【正确答案】 抛出 【试题解析】 异常对象从产生和被传递提交给 Java运行系统的过程称为抛出异常。在捕获一个异常之前,必须先有异常抛出,才能生成一个异常对象,这就是通过抛出异常来实现。抛出异常、生成异常对象都是通过 throw语句实现。 42
33、【正确答案】 InputStream 【试题解析】 字节输入流继承自 InputSteam类,并 a使用 DataInputStream实现 DataInput接口。 43 【正确答案】 阻塞 【试题解析】 线程 在其生命周期中,在不同的生命阶段具有不同的状态。线程的主要状态有新建状态、可运行状态、运行状态、阻塞状态和终止状态。 44 【正确答案】 void 【试题解析】 方法的返回值类型是必需的 (构造方法除外 ),如果方法不返回任何值,则它必须声明为 void。 45 【正确答案】 单 【试题解析】 Java不支持多重继承,但类可以实现多个接口;接口可以用来实现多重继承。 46 【正确答案
34、】 null 【试题解析】 name数组被初始化为带 5个 null元素,之后元素。和 1分别被赋予 String值 “a“和 “b“(传递给 main的命令行参数 ),元素 2, 3, 4仍然未赋值,因此,它们具有 null值。 47 【正确答案】 构造方法 【试题解析】 在 Java语言中的每个类都有构造函数,用来做对象的初始化工作。它也是由方法名、参数和方法体组成的。 48 【正确答案】 String 【试题解析】 首先,看一下 s=(99%2=1)?“奇数 “: “偶数 “;这个赋值语句,(99%2=1)的返回值是 true,那么给 s赋第 2个表达式的值,在这里是字符串 “奇数 “,
35、所以要在定义 s的时候, 前面加 String来说明 s的数据类型是字符串。 49 【正确答案】 paint 【试题解析】 paint()方法具体执行 Applet的绘制; repaint()方法主要用于 Applet的重新显示,它调用 update()方法实现对 Applet的更新; update()方法用于更新Applet的显示,该方法将首先清除背景,再调用 paint()方法完成 Applet的具体绘制。 50 【正确答案】 Serializable 【试题解析】 一个类只有实现了 Serializable接口,它的对象才是 可串行的。实际上, Serializable是一个空接口,它的目的只是简单地标识一个类的对象可以被串行化。