1、国家二级( JAVA)笔试模拟试卷 177及答案与解析 1 在结构化方法中,用数据流程图 (DFD)作为描述工具的软件开发阶段是 ( ); ( 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)存储空间必须连续,且前件元
3、素一定存储在后件元素的前面 ( D)存储空间必须连续,且各元素的存储顺序是任意的 7 数据库系统的核心是 ( )。 ( A)数据模型 ( B)数据库管理系统 ( C)软件工具 ( D)数据库 8 线性表的链式存储结构是一种 ( )的存储结构。 ( A)随机存储 ( B)顺序存储 ( C)索引存储 ( D)散列存储 9 以下各项中属于面向对象程序设计语言不同于其他语言的主要特点的是 ( )。 ( A)继承性 ( B)消息传递 ( C)多态性 ( D)静态联编 10 下列 SQL语句中,用于修改表结构的是 ( ) ( A) ALTER ( B) CREATE ( C) UPDATE ( D) IN
4、SERT 11 下列选项中, _是 Java所有类的父类,且 Java语言中所有类都是直接或间接继承它得到的。 ( A) Object ( B) Vector ( C) Class ( D) Random 12 执行下列程序段之后,输出的结果是 ( )。 public class Test public static void main(String args) byte a = 2; short b = 3; long c = 4; c=a%b*4%b; System. out. println(C); ( A) 2 ( B) 1 ( C) -1 ( D) -2 13 下列关于 Random
5、AccessFile类的叙述,不正确的是 ( )。 ( A) RandomAccessFile类可以随机访问文件 ( B) RandomAccessFile类实现 DataInput和 DataOutput接口 ( C) RandomAccessFile类不能写文件 ( D) RandomAccessFile类兼有输入输出功能 14 下面程序段的输出结果是 ( )。 public class Test public static void main (String) args) int a, b; for(a=1, b=1; a 100; a+) if (a 10 ) break; if (b
6、%2 1) b+ 2; continue; System. out. pdntln(A); ( A) 7 ( B) 8 ( C) 9 ( D) 10 15 以下关于对象锁的叙述,正确的是 ( )。 ( A)正常使用对象锁时,对共享数据的读访问不一定要在临界区内,但写访问必须在临界区内 ( B)为了防止单个线程因为自己持有的锁而陷入死锁, Java规定对象不可以重复加锁 ( C)正常使用对象锁时,临界区内的共享数据必须是私有的 ( D)在 Java中设有专门检测和预防死锁的机制,可供程序直接使用 16 下面选项中不是 AudioClip接口定义 的方法是 ( )。 ( A) play() ( B
7、) loop() ( C) stop() ( D) init() 17 下列关于线程暂停类方法的叙述,错误的是 ( )。 ( A) sleep()方法使线程暂停,让出 CPU给低优先级的线程运行 ( B) yield()方法使线程暂停,让出 CPU使低优先级的线程运行,如果不存在有机会运行的线程, yield()方法将直接返回,线程继续 ( C) join()方法使当前线程暂停,等待某线程类特定对象运行结束 ( D) suspend()挂起的线程不能自动恢复 18 下面代 码的执行结果是 ( )。 public class test public static void main (Strin
8、g args) float m=5.0f; int n 4; System.out.println(+m)*(n-); ( A) 20.0 ( B) 20 ( C) 24.0 ( D) 24 19 给出下列的代码,则以下哪个选项返回 true? String s=“hello“; String t=“hello“; char c = h, e, 1, 1, o; A)s.equals(t); ( A) t. equals( ( B); ( C) s=t; ( D) t=c; 20 类 Panel默认的布局管理器是 ( A) GridLayout ( B) BorderLayout ( C) F
9、lowLayout ( D) CardLayout 21 Java的核心包中,提供编程应用的基本类的包是 ( )。 ( A) java.lang ( B) java.util ( C) java.applet ( D) java.rmi 22 只有当 swish语句中 ( )时, default子句才会被执行。 ( A)表达式的值与第一个 case子句中的值匹配 ( B)表达式的值与第二个 case子句中的值匹配 ( C)表达式的值与所有 case子句中的值匹配 ( D)表达式的值与所有 case子句中的值都不匹配 23 下列关于 Applet的叙述中,正确的是 ( )。 ( A) Apple
10、t是 Java类,所以可以由 JDK中的解释器 java.exe直接解释运行 ( B) Applet应该定义为 javax.applet.Applet类或 java.swing.Applet 类的子类 ( C) Applet与 Application的主要区别在编译方式上 ( D)通过在 Applet中使用 getParNneter可从 HTML文件中获得参数 24 2下面程序段的输出结果是 ( )。 class Base int i; Base() add(1); void add(int v) i+=v; void print0 System.out.println(i); class E
11、xtension extends Base Extension() add(2); void add(int v) i+=v*2; public class Test public static void main(String args) bogo(new Extension(); static void bogo(Base b) b.add(8); b.print(); ( A) 9 ( B) 18 ( C) 20 ( D) 22 25 下面关于 Applet 的说法中正确的是 ( )。 ( A) Applet 也需要 main 方法 ( B) Applet 可以继承自 java. awt
12、. Applet ( C) Applet 能访问本地文件 ( D) Applet 程序不需要编译 26 下列代码中,将引起编译错误的行是 1)public class Exercise 2) public static void main(String args) 3) float f=0.0; 4) f+=1.0; 5) 6) ( A)第 2行 ( B)第 3行 ( C)第 4行 ( D)第 6行 27 下列关于类的说法不正确的是 ( )。 ( A)类是同种对象的集合和抽象 ( B)类属于 Java语言中的复合数据类型 ( C)类是 Java程序中的基本的结构单位 ( D)类就是对象 28
13、下列程序从标准输入设备 键盘读入一个字符,然后再输出到屏幕。要想完成此功能,画线处应该填入的语句为 ( )。 import java.io.*; public class Test public static void main(String args ) 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
14、(); ( D) ch=(int)System in.read(); 29 下列 _不属于 AWT提供的图形图像工具。 ( A)形状 ( B)按钮 ( C)字体 ( D)颜色 30 下面不属于 Java条件分支语句结构的是 ( ) ( A) if-else if结构 ( B) if-else结构 ( C) if-else if-else结构 ( D) if-end if结构 31 Java中 break语句可以用来 “标签化中断 ”,对其描述正确的是 ( ) ( A)可以使用程序退出多重循环 ( B)标签是一种界面符号 ( C)使程序退出本次循环 ( D)以上说法都不对 32 运行下列程序的结
15、果是 ( ) abstract class MineBase abstract void amethod(); static int i; public class Mine extends MineBase public static void main(String argv) intar=new int5; for(i=0;i ar.length; i+) System.out.println(ari); ( A)打印 5个 0 ( B)编译出错,数组 ar必须初始化 ( C)编译出错, Mine应声明为 abstract ( D)出现 IndexOutOfBoundes的例外 33 文
16、件操作中,用于移动文件指针到指定的位置的是 ( A) seek(long pos) ( B) lengh(). ( C) find() ( D) skipBytes(int n) 34 double类型在计算机内存中占 ( )位 bit。 ( A) 8 ( B) 16 ( C) 32 ( D) 64 35 下列不是 InputStream子类的是 ( A)文件输入流 FileInputStream ( B)对象输入流 ObjectInputStream ( C)字符输入流 CharInputStream ( D)压缩文件输入流 ZipInputStream 36 结构化程序设计方法的主要原则可
17、以概括为自顶向下、逐步求精、【 】和限制使用 goto语句。 37 软件的调试方法主要有:强行排错法、【 】和原因排除法。 38 Java的类库中提供 Throwable类来描述异常,它有 Error和 _两个直接子类。 39 数据型包括简单数据类型和复合数据类型。简单数据类型又包括数值类型、【 】、布尔类型三大类。 40 实现线程交互的 wait()和 notify()方法在 _类中定义。 41 按照流的方向来分, I/0流包括【 】和输出流。 42 显示图像使用的是 Graphics类中的【 】方法。 43 在一个类的内部嵌套定义的类称为【 】。 44 多线程是 Java语言的 _机制,只
18、能够处理同步共享数据和各种不同的事件。 45 所有由 Container派生的类称为 _。 46 短路逻辑运算符包括【 】和。 47 Java语言的各种数据类型之间提供两种转换:【 】和强制转换。 48 算术运算符的优先级按下面次序排列: +和 -的级别最高,然后是【 】和 /以及,而 +和 -的级别最低。 49 在 Java语言中, byte类型的数据能表示的数据范围是【 】。 50 下面是生成一个依赖窗口的对话框,属性为 modal,请把所缺的代码补齐。 import java.awt.*; public class DialogDemo extends Frame DialogDemo(
19、) SetTitle(“Demo“); Panel p=new Panel(); p.add(new label(“one“); p.add(new Checkbox (“two“); add(“North“,p); add(“Center“,new TextArea(“three“,3,10); Dialog d=new Dialog(this,“ a cat“,【 】 ); d.add(“North“,new Label (“Modal dialog“); d.add(“Center“,new TextArea(“hello“); d.pack (); d.show (); public
20、static void main(String args) DialogDemo f=new DialogDemo(); f.pack(); f.show(); 国家二级( JAVA)笔试模拟试卷 177答案与解析 1 【正确答案】 B 【试题解析】 软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流图和数据字典。 2 【正确答案】 A 【试题解 析】 耦合度是对模块间互相连接的紧密程度的度量;内聚度是对一个模块内部各个元素间彼此结合的紧密程度的度量。 3 【正确答案】 A 【试题解析】 算法的时间复杂度实际上就是执行算法程序所需要的计算工作量
21、。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算工具以及程序员的水平无关。 选项 A错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项 B错误。因为算法所编写的程序长度往往与程序设计语言以及程序员的水平有关 ,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同。 选项 C错误,因为根据一个算法所编制出的程序程序中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条数来度量算法的时间复杂度。 所以,本题的正确答案为 D。 4 【正确答案】 C
22、【试题解析】 在 VisualFoxPro项目管理中,文件从项目管理器中移出,只是该文件不存在于此项目,但会保留在磁盘中。移出的文件可再次被原项目添加,也可以被其他项目添加。 5 【正确答案】 C 【 试题解析】 首先应该知道功能性注释是嵌在源程序体中的,用以描述其后的语句或程序段是在做什么工作,或是执行了下面的语句会怎么样。所以它描述的是一段程序,而不是每 条语句,是为程序段做注解。 6 【正确答案】 A 【试题解析】 在链式存储结构中,存储数据的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系;是由指针域来确定的。由此可见,选项 A的描述正
23、确。 7 【正确答案】 B 【试题解析】 数据库管理系统是一种系统软件,负责数据库中的数据组织、 数据操纵、数据维护、控制及保护和数据服务等,因此数据库管理系统是数据库系统的核心。 8 【正确答案】 B 【试题解析】 本题考查数据的存储结构。线性表的链式存储结构中的每一个存储结点不仅含有一个数据元素,还包括指针,每一个指针指向一个与本结点有逻辑关系的结点,此类存储方式属于顺序存储。 9 【正确答案】 A 【试题解析】 继承是一个类 (子类 )直接使用另一个类 (父类 )的所有属性和方法 (权限为私有的属性和方法除外 )。它可以减少相似的类的重复说明,从而体现出一般性与特殊性的原则,这使得面向对
24、象 程序设计语言有了良好的重用性,也是其不同于其他语言的最主要特点。 10 【正确答案】 A 11 【正确答案】 A 【知识模块】 Java语言中面向对象的特性 12 【正确答案】 A 【试题解析】 由于操作数中的 a是 byte类型, b是 short类型,因此 a和 b按照int类型进行计算;同时又由于变量 c是 long类型变量,因此所有的操作数都按照long类型进行运算,结果为 long类型。又由于运算符 *和 %处于同一优先级别,因此按照从左到右的顺序进行运算,首先 a对 b取模,得到 2,然后乘以 4得 8,最后对 b取模,得到 2。 13 【正确答案】 C 【试题解析】 Rand
25、omAccessFile提供了对文件随机访问的功能,它继承了Objects类,实现 DataInput和 DataOutput接口,因此 RandomAccessFile类兼有输入输出功能,可以访问文件任意位置。所以选择 C。 14 【正确答案】 D 【试题解析】 虽然程序中的 for循环是变量 a从 1到 100,但程序中 a=10时,遇到 break 语句,退出循环,所以退出循环后 a=10,选择 D。 15 【正确答案】 C 【试题解析】 在 Java中,使用 synchronized 关键字标识临界区。 Java平台将每个由 synchronized 语句设置的对象设置一个锁,称为对象
26、锁,它是一种独占的排他锁,即同一时刻最多只能有一个线程获取该锁。为了能够正常地使用对象锁,对共享数据的所有访问都必须在临界区内,同时临界区的共享数据必须是私有的,确保只能通过对象的方法才能访问到。 为了防止单个线程因为自己持有的锁而陷入死锁, Java规定对象加锁可以重入,即使某个线程已经具有某对象的锁,仍然可以再次申请获得该锁。 在 Java中没有专门检测和 预防死锁的机制,需要由程序自行控制。 16 【正确答案】 D 【试题解析】 AudioClip 是播放声音数据的接口, play()、 loop()和 stop()都是用于播放 AudioClip 数据的。 17 【正确答案】 B 【试
27、题解析】 sleep()方法的功能是使线程暂停,让出 CPU,使更低优先级的线程运行; yield()方法的功能是使线程暂停,让出 CPU,使同优先级的其他线程运行,如果不存在有机会运行的线程, yield()方法将直接返回,线程继续 ;join()方法的功能是使当前线程暂停 ,等待到某线程类对象运行结束; suspend ()方法的功能是挂起线程,挂起后的线程将不能自动恢复,只能在线程中调用 resume ()方法恢复线程的状态。 18 【正确答案】 C 【试题解析】 本题考查自增 (自减 )运算和类型的自动转换。由于 +m表达式中 +在变量之前,所以先对 m进行自增运算,将 m加上 1.0
28、,再将 m的值作为表达式+m的值,即 (+m)的值是 6.0;而在 n-表达式中, -在变量 n之后,所以先取变量 n 的值作为表达式的值,变量 n再自减,即 (n-)的值是 4,然后作 6.0*4运算,此时整数 4会自动转换为实型数据再参与运算,所以结果是 24.0而不是 24。故选C。 19 【正确答案】 A 【试题解析】 =操作符比较的是操作符两端的操作数是否是同一个对象,而String的 equals()方法比较的是两个 String 对象的内容是否一样。 s. equals(t)方法比较字符串 s与字符串 t中的内容是否一致,两个字符串中的内容一致,所以返回true。 20 【正确答
29、案】 C 【试题解析】 本题考查 Java中的布局管理器。 FlowLayout是 Pane和 Applet默认的布局 管理器,构件在容器中从上到下、从左到右进行放置,所以选项 C为正确答案。 BorderLayout 是 Window、 Frame 和 Dialog的默认布局管理器,在BorderLayout布局管理器中构件分成 5个区域,每个区域只能放置一个构件。GridLayout使容器中各个构件呈网状布局,平均占据容器的空间。 GardLayout把容器分成许多层,每层只能放置一个构件。 21 【正确答案】 A 【试题解析】 Java的核心包一共有 12个,其中: java.lang包
30、中封装了所有编程应用的基本类: java.util 包提供实用程序类和集合类,如系统特性定义和使用、日期函数类、集合等常用工具; java.applet包为 Applet提供执行需要的所有类,主要是访问 Applet内容的通信类。 java.rmi 包提供程序远程方法调用所需的类。因此,本题的正确答案是 A。 22 【正确答案】 D 23 【正确答案】 D 24 【正确答案】 D 25 【正确答案】 B 26 【正确答案】 B 【试题解析】 本题考查 Java中的数据类型。应该掌握 Java中的简单数据类型,以及相关运算。 float f=0.0这个语句,想要定义一个浮点型变量 f,并且初值为
31、0.0,但由于 Java认为如果数字后没有任何字母,计算机默认为 double类型,而从 double是不能转换为 float的,所以该语句错误,如果改为 float f=0.0f,即可正确运行。 27 【正确答案】 D 【试题解析】 对象是类的实例化,两者不能等同。 28 【正确答案】 B 【试题解析】 此题程序通过调用系统的标准输入流 System in的 read()方法,从键盘读入一个字符,由于 read()方法的返回值是 int类型,而变量 ch 是字符类型,不能直接转换,因此需要进行强制类型转换,应该填入的正确语句是 ch=(char)System.in.read()。 29 【正
32、确答案】 B 【试题解析】 图形图像工具是 AWT提供的一个重要功能,具体包括了形状、颜色和字体。按钮属于用户界面构件。 30 【正确答案】 D 【试题解析】 在 Java的分支语句结构中, if 是和 else配对的,而不是和 end 配对,所以选择 D。 31 【正确答案】 A 【试题解析】 在 Java的循环语句中,经常用到 break 语句, break 语 句可以用来“标签化中断 ”, break 语句的作用是使程序立刻跳出包含它的最内层循环。 break的用法有以下几种:它可以直接使用,后面什么都不跟;也可以后跟标号,格式为 break 标号;还可以跟标记代码块,如果有多重循环,可
33、以用跟标记代码块的方法跳出多重循环。所以选项 A是正确的。 32 【正确答案】 D 33 【正确答案】 A 【试题解析】 本题考查文件操作。 seek(long pos)是随机文件记录的查找,满足题意。 lengh()方法是求随机文件字节长度的方法,不符合题意; Java中没有 find()方法; skipBytes(int n)方法是使随机文件访问跳过指定字节,不符合题意。 34 【正确答案】 D 35 【正确答案】 C 【试题解析】 本题考查考生对 Java中 InputStream非字符输入流的掌握。 所有的字节输入流都是从 InputStream继承,包括: ByteArrayInpu
34、tStream,以字节数组作为输入流: FileInputStream,可对一个磁盘文件设计的数据进行处理; PipedInputStream,实现线程之间通信的一个类; FilterInputStream,过滤器输入流: SequenceInputStream,将多个输入流首尾相接; ObjectInputStream,实现 ObjectInput 接口。选项 D中压缩文件输入流 ZipInputStream是InflaterInputStream的子类,而 InflaterInputStream是 FilterInputStream的子类,只有选项 C中字符输出流 CharInputStr
35、eam类是字符流。本题涉及内容较多,要求对整个输入输出流有所了解。 36 【正确答案】 模块化 【试题解析】 结构化程序设 计方法的主要原则可以概括为自顶向下、逐步求精、模块化和限制使用 goto语句。自顶向下是指在程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。逐步求精是指对复杂问题,应设计一些子目标作过度,逐步细化。模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。 37 【正确答案】 回溯法 【试题解析】 调试的关键在于推断程序内部的错误位置及原因。主要的调试方法有:强行排错法、回溯法和原因排除法。 强行排错法是传统的调
36、试方法,其过程可概括为:设置 断点、程序暂停、观察程序状态、继续运行程序。这是目前使用较多、效率较低的调试方法。 回溯法适合于小规模程序的排错。即一旦发现了错误,先分析错误征兆,确定最先发现症状的位置。然后,从发现症状的地方开始,沿程序的控制流程,逆向跟踪源程序代码,直到找到错误根源或确定错误产生的原因。 原因排除法是通过演绎和归纳,以及二分法来实现的。 38 【正确答案】 Exception 39 【正确答案】 字符类型 40 【正确答案】 Object。 【试题解析】 waitO 和 notify()方法是 java.lang.object类的方法,是实现线程通信的两个方法。 41 【正确
37、答案】 输入流 【试题解析】 流可以看作是一个流动的数据缓冲区,数据从数据源流向数据目的地。流是串行的。凡是从外部设备流向主机的数据流,称之为输入流;反之,称为输出流。 42 【正确答案】 drawImage() 【试题解析】 显示图像使用的是 Graphics 类中的 drawImage()方法。 43 【正确答案】 内部类 【试题解析】 内部类是嵌套在一个类的内部使用的,与普通类一样,内部类也具有自己的成员 变量和成员方法。 44 【正确答案】 并发 【试题解析】 本题考查 Java语言的特点。 Java语言的开发运行环境都是互联网,在这种分布式的环境中,并发和共享是很常见的事务,要能并行
38、地处理很多事务,就要求 Java语言提供一种可靠和高效的机制,来满足高并发事务处理的需求。多线程很好地解决了网络上的瓶颈问题及大量的网络访问问题。 45 【正确答案】 容器 【试题解析】 容器指所有由 Container派生的类,可以包含由 Component派生的任何类的对象,如 Window类和 Panel 类都由 容器类 Container直接派生而来;Frame继承自 Window类。其他容器还有面板 Panel、滚动条 ScrollPane和选项面板 OptionPane。 46 【正确答案】 47 【正确答案】 自动转换 48 【正确答案】 * 【试题解析】 本题考查运算符的优先级
39、,需要考生牢记。 49 【正确答案】 -128 127 【试题解析】 由于 byte类型数据占计算机存储的 8位,并且是有符号整型,第 1位用于表示符号,剩下还有 7位用做存储数据,因此正整数最大应该是27_1=127,而负整数最小应该是 -2(上标 )7; -128,这样总共表示的数的个数应该是 2(上标 )8-1=255个。 50 【正确答案】 true 【试题解析】 本题是考查对话框的有关属性和使用方法。 Dialog 是 Window的子类,它表示一个对话窗口。与 Frame不同,它的存在依赖于其他窗口,当它所依赖的窗口被关闭时,对话框也消失。当指定的对话框为 modal,这时当对话框出现时,用户只能对它进行操作,而不能对其他窗口进行操作。 Dialog的构造方法如下 Dialog(Frame parent,Boolean modal); Dialog(Frame parent,Stringtitle,Boolean modal);