1、国家二级( JAVA)笔试模拟试卷 171及答案与解析 1 数据库技术的根本目标是要解决数据的 ( )。 ( A)存储问题 ( B)共享问题 ( C)安全问题 ( D)保护问题 2 提供 showDocument()方法,使 Applet能够请求浏览器访问特定 URL的类是 ( A) Applet ( B) AppletContext ( C) JApplet ( D) URL 3 Java中的抽象类 Reader和 Writer所处理的流是 ( A)图像流 ( B)对象流 ( C)字 节流 ( D)字符流 4 编制一个好的程序首先要确保它的正确性和可靠性,还应强调良好的编程风格。在选择标识符
2、的名字时应考虑 ( )。 ( A)名字长度越短越好,以减少源程序的输入量 ( B)多个变量共用一个名字,以减少变量名的数目 ( C)选择含义明确的名字,以正确提示所代表的实体 ( D)尽量用关键字作名字,以使名字标准化 5 下列对于线性链表的描述中正确的是 ( )。 ( A)存储空间不一定连续,且各元素的存储顺序是任意的 ( B)存储空间不一定连续,且前件元素一 定存储在后件元素的前面 ( C)存储空间必须连续,且前件元素一定存储在后件元素的前面 ( D)存储空间必须连续,且各元素的存储顺序是任意的 6 下列对于严格控制 goto语句的使用理解错误的是 ( )。 ( A)用一种非结构化的程序设
3、计语言实现一个结构化的构造 ( B)若不使用 goto语句会使功能模糊 ( C)在某种可以改善而不是损害程序可读性的情况下,可以使用该语句 ( D) goto语句可以完全不用 7 对长度为 n的线性表进行顺序查找,在最坏情况下所需要的比较次数为 ( )。 ( A) log2n ( B) n/2 ( C) n ( D) n+1 8 下面内容不属于使用软件开发工具好处的是 ( )。 ( A)减少编程工作量 ( B)保证软件开发的质量和进度 ( C)节约软件开发人员的时间和精力 ( D)使软件开发人员将时间和精力花费在程序的编制和调试上 9 当输入一个字节流时,要 ( )。 ( A)实现 DataI
4、nput接口 ( B)实现 ObjectInput接口 ( C) Serializable接口 ( D)继承 Reader抽象类 10 已知数据表 A中每个元素距其最终位置不远,为 节省时间,应采用的算法是 ( A)堆排序 ( B)直接插入排序 ( C)快速排序 ( D)直接选择排序 11 数据的存储结构包括顺序、 _、索引和散列四种基本类型。 ( A)向量 ( B)数组 ( C)集合 ( D)链式 12 以下关于对象锁的叙述,正确的是 ( )。 ( A)正常使用对象锁时,对共享数据的读访问不一定要在临界区内,但写访问必须在临界区内 ( B)为了防止单个线程因为自己持有的锁而陷入死锁, Jav
5、a规定对象不可以重复加锁 ( C)正常使用对象锁时,临界区内的共享数据必须是私有 的 ( D)在 Java中设有专门检测和预防死锁的机制,可供程序直接使用 13 如果要使用 Swing特性,小应用程序应继承类 ( )。 ( A) java.applet.Applet ( B) javax.swing.JApplet ( C) java.awt.* ( D)上述选项中任何一个都可 14 执行下面程序后输出的正确结果是 public class Test public static void main(String args) System.out.print(100%3); System.out
6、.print(“, “); System.out.print(100%3.0); ( A) 1, 1 ( B) 1, 1.0 ( C) 1.0,1 ( D) 1.0,1.0 15 下列关于 JDK目录结构的说法,错误的是 ( A) bin目录下有许多工具 ( B) demo 目录下有各种演示例子 ( C) include目录下都是库文件 ( D) jre目录是 Java程序运行环境的根目录 16 在 Java中,用 package语句说 明一个包时,该包的层次结构必须是 ( )。 ( A)与文件的结构相同 ( B)与文件目录的层次相同 ( C)与文件类型相同 ( D)与文件大小相同 17 2在
7、 oneMethod()方法运行正常的情况下,程序段将输出 ( )。 public void test () try oneMethod();System.out.println(“condition 1“); catch(ArratIndexOutOfBoundException e)System.out.printtln(“condition 2“); catch(Exception e) System.out.println(“condition 3“);finallySystem.out.prinfln(“finally“); ( A) condition 1 ( B) conditi
8、on2 ( C) condition 3 ( D) condition 1 finally 18 3下列代码中,将引起一个编译错误的行是 ( )。 1)public class Test 2)int m,n; 3)public Test() 4)public Test(int a)m=a; 5)public static void main(String args) 6)Test t1,t2; 7)int j,k; 8)j=0; k=0; 9) t1=new Test(); 10)t2=new Test(j,k); 11) 12) ( A)第 3行 ( B)第 5行 ( C)第 6行 ( D)
9、第 10行 19 以下各项说法中错误的是 ( )。 ( A)可串行化的类必须实现 Serializable接口 ( B)可串行化的类中的静态变量可以不被串行化 ( C) private数据访问权限能够限制数据不被串行化 ( D)对象串行化使用 Java语言提供的默认机制 20 Java图形开发包支持了 Java语言的哪项特性 ( )。 ( A)安全性 ( B)跨平台性 ( C)健壮性 ( D)多态性 21 字符串常量 ”hello”的字符个数是 ( )。 ( A) 3 ( B) 4 ( C) 5 ( D) 6 22 Java语言有自动收集垃圾的功能,会周期性地回收一些长期不用的对象占用的内存。
10、下列选项中为对象清除路径的是 ( )。 依靠 Java的垃圾回收机制回收内存 调用 System.gc(),请求垃圾回收 Java系统开始运行时,自动调用 java Object finalize()释放内存 在程序中调用重写的 finalize()方法释放系统资源,其格式为: protected void finalize() throws throwable super, finalize (); ( A) , ( B) , . , ( C) . , ( D) , . 23 resume()方法负责恢复被 _方法挂起的线程。 ( A) sleep() ( B) stop() ( C) wa
11、it() ( D) suspend() 24 下列有关线程的叙述 _是正确的。 ( A)一旦一个线程被创建,它就立即开始运行 ( B)调用 start()方法可以使一个线程成为 可运行的,但是它不一定立即开始运行 ( C)主线程不具有默认优先级 ( D) Java中线程的优先级从低到高以整数 0 9表示 25 下列说法中错误的是 ( )。 ( A)每个 UDP报文都包含了完整的源地址和目的地址 ( B) UDP协议中,发送方和接收方之间不用建立可靠的连接 ( C) UDP协议传输是可靠的,而且操作很简单 ( D) UDP的最大报文长度是 64KB 26 下面不属于 Java语言的基本数据类型的
12、是 ( )。 ( A)浮点类型 ( B)整数类型 ( C)布尔类型 ( D)字符串类型 27 下列方法中不能适用于所有 Swing组件的是 ( )。 ( A) addKeyListener() ( B) addMouseListener() ( C) addMouseMotionListerner() ( D) addAajustmentListenr() 28 对象状态的持久化是通过 ( )实现的。 ( A)文件 ( B)管道 ( C)串行化 ( D)过滤器 29 指出下列程序运行的结果 ( ) public class Example String str=new String(“good
13、“); charch=a,b,c; public static void main(String args) Example ex=new Example(); ex.change(ex.otr, ex.ch); System.out.print(ex.str+“and“); System.out.print(ex.ch); public void change(String str, char ch) str=“test ok“; ch0g; ( A) good and abc ( B) good and gbc ( C) test ok and abc ( D) test ok and g
14、bc 30 运行下列程序的结果是 ( ) 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)出现 IndexOutOfB
15、oundes的例外 31 下列程序的输出结果是 class Test public static void main(Siring args) int n=7; n =3; n=n n =2; System.out.printtn(n); - ( A) 0 ( B) 1 ( C) 14 ( D) 64 32 关于 Applet执行的操作,下面说法正确的是 ( A)在运行时调用其他程序 ( B)可以进行文件读写操作 ( C)不能装载动态连接库和调用任何本地方法 ( D)试图打开一个 socket进行网络通信,但是所连接的主机并不是提供 Applet的主机 33 在 Java中,常量 null,f
16、alse,true都是 ( )。 ( A)小写 ( B)大写 ( C)不区分大小写 ( D)根据编程环境确定 34 关于 Java语言的健壮性特点,下列说法不正确 的是 ( A) Java语言是一种强类型语言,即在编译和运行时进行大量的类型检查,防止不匹配的数据类型的发生 ( B) Java语言允许使用指针,这一点与 c+相似 ( C) Java语言设计有自动收集垃圾功能,防止了内存分配的错误 ( D) Java语言使程序员从繁忙的内存管理中解脱出来 35 当启动 Applet程序时,首先调用的方法是 ( A) stop() ( B) init() ( C) start() ( D) dest
17、roy() 36 软件的调试方法主要有:强行排错法、 _和原因排除法。 37 _是数据库应用的核心。 38 数据结构分为逻辑结构和存储结构,循环队列属于【 】结构。 39 数据库设计分为以下 6个设计阶段:需求分析阶段、【 】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。 40 在 E-R图中,图形包括矩形框、菱形框、椭圆框。其中表示实体联系的是_框。 41 【 】可以把一组线程作为一个对象进行统一的处理和维护。 42 创建一个名为 MyPackage的包的语句是【 】。 43 数字签名的验证过程是:首先引入签名密钥的公钥, 其次建立【 】,然后配置本地运行环境的安全策略。 44 当
18、浏览器能够解释 APPLET标记但不能运行 Applet时,将显示【 】标记中的内容。 45 键盘键入字符串并在计算机屏幕上显示,这时的数据源是 _。 46 请将程序补充完整。 import java.awt.*; public class FirstFrame extends Frame public static void main(String args) FirstFrame fr = new FirstFrame(“First container!“); fr.setSize(240,240); fr.setB ackground(Color, yellow); 【 】 public
19、 FirstFrame(String str) super(str); 47 在 Java中有一种叫作【 】特殊方法,我们在程序中用它来对类的对象成员进行初始化。 48 若要在 D盘根目录下生成一个名为 mydir的文件夹,请在下面横线处填入代码完成此程序。 import java.io.*; public class FileTest public static void main(String args) 【 】 File fileObject1 = new File(“Filel.txt“); File fileObject2 = new File(“d:mydir“, “File2.t
20、xt“); System.out.println(fileObject2); try dirObject.mkdir(); catch(SecurityException e) try fileObject1.createNewFile(); fileObject2.createNewFilei); catch(IOException e) 49 有些情况下如多线程对共享数据操作时,这种线程运行顺序的不确定性将会产生执行结果的不确定性,使共享数据的一致性被破坏,因此,在某些应用程序中必须对线程进行 _. 50 Java中,可以通过建立 java. lang.【 】类或其子类的实例创建和控制线程
21、。 国家二级( JAVA)笔试模拟试卷 171答案与解析 1 【正确答案】 B 【试题解析】 在数据库系统中,需要对数据进行集中、统一的管理,以达到被多个应用程序共享的目标。 2 【正确答案】 B 【试题解析】 AppletContext类是一个接口类, Applet通过 AppletContext接口与环境进行通信。可以利用这个类从 Applet,环境获取信息,而这个环境一般是指浏览器。 Applet使用 AppletContext类的 showDocument()方法通知浏览器在指定窗口中显示另一个 URL的内容。 3 【正确答案】 D 【试题解 析】 Java的 I/O 功能主要是通过输
22、入输出类库 java.io 包实现的,java.io包中包括了可以处理字节流、字符流、文件流和对象流等的类。 Java.io包中的抽象类有:字节流的抽象类 InputStream和 OutputStream;过滤流的抽象类FilterOutputStream和 FiherInputStream;字符流的抽象类 Reader 和 Writer;压缩抽象类 InflaterInputStream和 DeflaterOutputStream。 4 【正确答案】 C 5 【正确答案】 A 6 【正确答案】 D 【试题解析】 goto语句会造成程序的混乱,但在某些地方 goto语句还是需要的,若不使用
23、goto语句会使功能模糊。 7 【正确答案】 C 【试题解析】 在长度为 n 的线性表中进行顺序查找,最坏情况下需要比较 n 次。选项 C正确。 8 【正确答案】 D 【试题解析】 软件开发工具的好处在于减少编程工作量,保证了软件开发的质量和进度,节约软件开发人员花在程序编制和调试上的时间和精力,可以花更多的时间考虑软件的需求和设计。 9 【正确答案】 A 10 【正确答 案】 B 【试题解析】 当数据表 A中每个元素距其最终位置不远,说明数据表 A按关键字值基本有序,在待排序序列基本有序的情况下,采用插入排序所用时间最少,故答案为选项 B。 11 【正确答案】 D 【知识模块】 数据结构与算
24、法 12 【正确答案】 C 【试题解析】 在 Java中,使用 synchronized 关键字标识临界区。 Java平台将每个由 synchronized 语句设置的对象设置一个锁,称为对象锁,它是一种独占的排他锁,即同一时刻最多只能有一个线程获取该锁。为了能够正常地使用对象锁 ,对共享数据的所有访问都必须在临界区内,同时临界区的共享数据必须是私有的,确保只能通过对象的方法才能访问到。 为了防止单个线程因为自己持有的锁而陷入死锁, Java规定对象加锁可以重入,即使某个线程已经具有某对象的锁,仍然可以再次申请获得该锁。 在 Java中没有专门检测和预防死锁的机制,需要由程序自行控制。 13
25、【正确答案】 B 【试题解析】 小应用程序可以从 java.applet.Applet或 javax.swing.JApplet继承,其中从 javax.swing.JApplet继承的小应 用程序具有 Swing 特性。 14 【正确答案】 B 【试题解析】 本题考查 Java语言 %运算符的使用。 %运算符是模数除,也就是求余,表达式为: op1%op2Java中的二元运算符适用于所有数值型数据类型,但需要注意,如果两个操作数全是 int型,结果也是 int型, 100%3=1;如果两个操作数全是 float型,或其中一个是 float型,而另外一个是整型时,表达式结果是float型, 1
26、00%3.0=1.0,所以选项 B 为正确答案务必注意操作数类型不同时运算结果的类型。 15 【正确答案】 C 【试题解析】 本题考查 JDK目录结构。 bin目录下有编译器、解释器和各种工具,如服务器工具、 IDL、 package工具和 jdb 等。 jre目录是 Java程序运行环境的根目录,它下面有 bin 子目录,包括平台所用工具和库的可执行文件和 DLL文件: lib 子目录包括 java运行环境的代码库。 lib 目录下都是库文件。 demo目录下有各种演示例子。 include目录下是 Win32 子目录,都是本地方法文件,选项 C错误。 16 【正确答案】 B 【试题解析】
27、本题考查 Java包的概念。 Java采用包来管理类名 空间,为编程提供一种命名机制,也是一种可见性限制机制。定义一个包要用 package关键字,用 package语句说明一个包时,该包的层次结构必须与文件目录的层次相同。否则,在编译时可能出现查找不到的问题,所以选项 B正确。 17 【正确答案】 D 18 【正确答案】 D 19 【正确答案】 C 【试题解析】 一般的数据访问权限,如 public、 protected、 package或 private等,对数据的串行化没有影响。只有 static和 transient关键字修饰的数据才可以不被串行化。 20 【正确答案】 B 【试题解析
28、】 Java语言的跨平台性要求 Java的图形用户界面程序也要支持跨平台性,而 Java语言其他的特性在图形开发包中体现的不是很明显。 21 【正确答案】 D 【试题解析】 本题考查的是字符串常量这个知识点。字符串常量实际上是一个数组,组成数据的字符除显式给出的外,还包括字符结尾处标识字符串结束的符号, 0。所以字符串的字符个数等于字符个数加 1, Java语言编译器会自动在字符串的末尾加上 0,作为字符串结束标识。故本题答案是 D。 22 【正确答案 】 B 【试题解析】 本题考查 Java语言自动回收垃圾的功能,垃圾回收用于对象的清除,题中给出的 4种垃圾回收方法,都是可行的。 23 【正
29、确答案】 D 【试题解析】 在线程中调用 suspend()方法使线程挂起,暂停执行,如果恢复此线程必须调用 resume()方法使其进入可运行态。 24 【正确答案】 B 【试题解析】 一个新创建的线程并不是自动开始运行的,必须调用它的 start()方法使之将线程放入可运行态。不同优先级的线程间是抢先式的,而同级线程间是轮转式的。主线程具有默认 优先级。 Java中线程的优先级从低到高以整数 1 10表示,分 10级。 25 【正确答案】 C 【试题解析】 UDP协议的传输是不可靠的,因为 UDP协议是无连接的协议。 26 【正确答案】 D 【试题解析】 本题主要考查 Java语言的基本数
30、据类型这个知识点。 Java语言的基本数据类型有 8种:布尔型 (boolean)、整数型 (int)、长整型 (long)、短整型(short)、字节型 (byte)、单精度浮点型 (floA) 、双精度浮点型 (double)和字符型(char)。而字符串类型属于 复合数据类型。故本题答案是 D。 27 【正确答案】 D 【试题解析】 本题考查关于 Swing组件注册监听器方法的基本知识。选项 A错误, addKeyLis tener()可为所有组件添加 KeyListener监听器;选项 B 错误,addMouseListener()可为所有组件添加 MouseListener监听器;选
31、项 C错误,addMouseMotionListener()可为所有组件添加 MouseMotionListener 监听器;选项D正确, addAdjustmentListener()可为 JScrollBar组件添加 AdjustmentListener接口,但是并不适用于所有 Swing组件。 28 【正确答案】 C 【试题解析】 将 Java程序中的对象保存在外存中,称为对象永久化,对象永久化的关键是将它的状态以一种串行格式表示出来。 29 【正确答案】 B 30 【正确答案】 D 31 【正确答案】 C 【试题解析】 本题考查 Java中的运算符。首先要清楚程序里面涉及的运算符的含义
32、。 “ ”是按位左移运算符, “ 47 【正确答案】 构造函数 48 【正确答案】 FiledirObject=new File(“d: mydir”); 【试题解析】 本程序将在当前文件夹中生成一个名为 Filel txt的文件,在 D盘里生成一个名为 mydir的文件夹,并在该文件夹生成一个名为 File2 txt的文件,最后输出文件 File2 txt的完整路径。程序中生成了三个文件对象 dirObject、fileObject1和 fileObject2,在对 dirObject进行初始化时,因为参数为绝对路径,所以调用 mkdir()方法,这样就在参数指定的路径中生成一个名为 myd
33、ir的文件夹;对 fileObjectl进行实例化时,参数为相对路径,所以后面调用的是 createNewFile()方法,程序运行后就会在当前路径下生成参数中指定的文件;fileObject2实例化后,调用 creatNewFile()方法,程序在参数第一个字符串变量指定 的文件夹中创建一个文件,该文件的名称和相对路径由参数的第二个字符串变量指定。 49 【正确答案】 并发控制 50 【正确答案】 【 】 Tbread 【试题解析】 线程是程序中的执行单元。 Java虚拟机允许应用程序并发地运行多个执行线程。可以通过建立 java. lang. Thread 类或其子类的实例来创建和控制线程。