1、国家二级( JAVA)笔试模拟试卷 157及答案与解析 1 数据的存储结构是指 ( )。 ( A)存储在外存中的数据 ( B)数据所占的存储空间量 ( C)数据在计算机中的顺序存储方式 ( D)数据的逻辑结构在计算机中的表示 2 对于长度为 n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的足 ( )。 ( A)冒泡排序 n/2 ( B)冒泡排序为 n ( C)快速排序为 n ( D)快速排序为 n(n-1)/2 3 栈和队列的共同点 是 ( )。 ( A)都是先进先出 ( B)都是先进后出 ( C)只允许在端点处插入和删除元素 ( D)没有共同特点 4 有下列二叉树,对此二叉树中
2、序遍历的结果为 ( )。 ( A) ABCEDF ( B) ABCDEF ( C) ECBDFA ( D) ECFDBA 5 对建立良好的程序设计风格,下列描述中正确的是 ( )。 ( A)程序应该简单、清晰、可读性好 ( B)符号名的命名只需要符合语法 ( C)充分考虑程序的执行效率 ( D)程序的注释可有可无 6 下列叙述中正确的是 ( )。 ( A)在面向对象的程序设计中,各个对象之间具有密切的关系 ( B)在面向对象的程序设计中,各个对象都是公用的 ( C)在面向对象的程序设计中,各个对象之问相对独立,相互依赖性小 ( D)上述 3种说法都不对 7 为了提高软件模块的独立性,模块之间最
3、好是 ( )。 ( A)控制耦合 ( B)公共耦合 ( C)内容耦合 ( D)数据耦合 8 数据独立性是数据库技术的重要特点之一。所谓数据 独立性是指 ( )。 ( A)数据与程序独立存放 ( B)不同的数据被存放在不同的文件中 ( C)不同的数据只能被对应的应用程序所使用 ( D)以上三种说法都不对 9 下列描述中正确的是 ( )。 ( A)软件工程只是解决软件项目的管理问题 ( B)软件工程主要解决软件产品的生产率问题 ( C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 ( D)软件工程只是解决软件开发过程中的技术问题 10 对关系 S和 R进行集合运算,结果中既包含 S中
4、的所有元组也包含 R中的所有元组,这样的集合运算称为 ( )。 ( A)并运算 ( B)交运算 ( C)差运算 ( D)积运算 11 使用如下哪一个保留字可以使只有在定义这个类的包中的其他类才能访问此类 ?_ ( A) abstract ( B) private ( C) protected ( D)不使用保留字 12 下列代表十六进制整数的是 _。 ( A) 0XA6 ( B) 1234L ( C) -840 ( D) 0144 13 Java中用于提供 Java语言、 Java虚拟机的核心类和接口的包的是 _。 ( A) java.io包 ( B) java.applet包 ( C) ja
5、va.lang包 ( D) 包 14 在下列命令中,是 Java编译命令的是 _。 ( A) javac ( B) java ( C) javadoc ( D) appletviewer 15 下面语句会产生编译错误的是 _。 ( A) float F=1024.OF; ( B) double D=1024.0; ( C) byte B=1024; ( D) char C=1024; 16 执行下列程序之后,变量 n的值为 _。 public class Test public static void main(String args) int y=2; int z=3; int n=4; n
6、=n+-y*z/n; System.out.println(n); ( A) 3 ( B) -1 ( C) -12 ( D) -3 17 下列说法中,正确的是 _。 ( A)子类拥有的成员数目大于等于父类拥有的成员数目 ( B)父类代表的对象范围比子类要广 ( C)子类要调用父类的方法,必须用关键字 super ( D)一个 Java类可以有多个父类 18 将一个容器 panell放到容器 framel中的方法是 _。 ( A) framel.insere(panell); ( B) framel.add(panell); ( C) framel.addJPanel(panell); ( D)
7、 framel.insertJPanel(panell); 19 能将程序补充完整的选项是 _。 class Person private int a; phblic int change(int m)return m; public class Teacher extends Person public int b; public static void main(String arg ) Person p=new Person( ); Teacher t=new Teacher( ); int i; _; ( A) i=m ( B) i=b ( C) i=p.a ( D) i=p.chan
8、ge(50) 20 通常使用哪一个方法来注册事件监听器 _。 ( A) addXXXListener ( B) XXXListener ( C) ListenerXXX ( D) XXXListeneradd 21 下列方法中,可以用来创建一个新线程的是 _。 ( A)实现 java.lang.Runnable接口并重写 start( )方法 ( B)实现 java.lang.Runnable接口并重写 run( )方法 ( C)继承 java.lang.Thread类并重写 run( )方法 ( D)继承 java.lang.Thread类并重写 start( )方法 22 下列选项中的 方
9、法可以正确地加入类 Child中,且父类的方法不会被覆盖。 public class Parent public int addValue(int a,int b) int s; s=a+b; return s; class Child extends Parent ( A) int addValue(int a,int b) do something ( B) public void addValue( ) do something ( C) public int addValue(int a,int b)throws MyException do something ( D) public
10、 float addValue(int a,int b,float b=1.0) do something 23 假设有以下代码: String s=“hello“; String t=“hello“; char c =h,e,l,l,o; 下列选项中,返回 false的语句是 _。 ( A) s.equals(t); ( B) t.equals(c); ( C) s=t; ( D) t.equals(new String(“hello“); 24 欲构造 ArrayList类的一个实例,此类实现 List接口,下列方法正确的是_。 ( A) ArrayList myList=new Obje
11、ct( ); ( B) List myList=new ArrayList( ); ( C) ArrayList myList=new List( ); ( D) List myList=new List( ); 25 下列关于 Applet所执行的操作,说法正确的是 _。 ( A)在运行时调用其他程序 ( B)可以进行文件读 /写操作 ( C)不能装载动态连接库和调用任何本地方法 ( D)试图打开一个 socket进行网络通信,但是所连接的主机并不是提供 Applet的主机 26 当一个 Applet被下载到本地环境时,不 发生的操作是 _。 ( A)产生一个 Applet主类的实例 ( B
12、)对 Applet自身进行初始化 ( C)启动 Applet运行 ( D) Applet并不显示出来 27 文件操作中,用于移动文件指针到指定位置的是 _。 ( A) seek(long pos) ( B) length( ) ( C) find( ) ( D) skipBytes(int n) 28 下面程序段的输出结果是 _。 class Test public static void main(String args ) MyThread t=new MyThread( ); t.displayOutput(“t has been created“); t.start( ); class
13、 MyThread extends Thread public void display Output(String s) System.out,println(s); public void run( ) displayOutput(“t is running“); ( A) t has been created t is running ( B) t has been created ( C) t is running ( D)编译错误 29 resume( )方法恢复哪些线程的执行 ? ( A)通过调用 stop( )方法而停止的线程 ( B)通过调用 sleep( )方法而停止运行的线
14、程 ( C)通过调用 wait( )方法而停止运行的线程 ( D)通过调用 suspend( )方法而停止运行的线程 30 阅读下面的程序: public class Person int arr =Hew int10; public static void main(String args ) System.out.println(arr1); 正确的说法是_。 ( A)编译时将产生错误 ( B)编译时正确,运行时将产生错误 ( C)输出为 0 ( D)输出为空 31 下列选项默认的布局管理器不是 BorderLayout的是 _。 ( A) Window ( B) Panel ( C) F
15、rame ( D) Dialog 32 下面哪一个不是 InputStream类中的方法 ? ( A) int read(byte ) ( B) void flush( ) ( C) void close( ) ( D) int available( ) 33 下面说法中,正确的是 _。 ( A)共享数据的所有访问都必须作为临界区 ( B)用 synchronized保护的共享数据可以是共有的 ( C)在 Java中对象加锁不具有可重入 性 ( D)对象锁不能返还 34 下列哪两种原始类型在使用流时可以互换 ?_ ( A) byte和 boolean ( B) char和 int ( C) b
16、yte和 char ( D) String和 char 35 在长度为 n的有序线性表中进行二分查找,所需要的比较次数为 _。 36 对 n条记录的文件进行快速排序,最坏情况下的执行时间为 _。 37 类是一个支持集成的抽象数据类型,而对象是类的 _。 38 软件是程序、数据和相关 _的集合。 39 在关系模型中,把数据看成一个二维表,每个二维表称为一个 _。 40 根据阻塞状态的产生原因,可将其分为 _、等待阻塞和其他阻塞。 41 顺序执行下列两条语句,输出结果是 _。 String s=“You are a pretty boy!“; System.out.println(s.length
17、( ); 42 过滤字节输出流都是 _抽象类的子类。 43 对话框 (Dialog)是 _类的子类。 44 编译 Java Applet源程序文件所产生的字节码文件的扩展名为 _。 国家二级( JAVA)笔试模拟试卷 157答案与解析 1 【正确答案】 D 【试题解析】 数据的存储结构是指数据结构 (数据的逻辑结构 )在计算机中的表示,又称物理结构。数据的存储结构主要有两种:顺序存储结构和链式存储结构。 2 【正确答案】 D 【试题解析】 冒泡排序法首先将第一个记录的关键字与第二个记录的关键字进行比较,若逆序则交换,然后比较第二个与第三个,以此类推,直至第 n-1个与第n个记录的关键 字进行比
18、较。在最坏情况下,冒泡排序中,若初始序列为 “逆序 ”序列需要比较 n(n-1)/2次。快速排序是对通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字比另 部分记录的关键字小,然后分别对这两部分记录继续进行排序,最终达到整个记录有序。最坏情况下比较次数为 n(n-1)/2。 3 【正确答案】 C 【试题解析】 栈是只允许在表的一端进行插入和删除的操作,队列是允许在表的一端进行插入,另一端进行删除的操作 4 【正确答案】 D 【试题解析】 二叉树的中序遍历是指先防问左子树 ,再访问树结点,最后访问右子树;当与访问下级左右子树时,也对照此 原则。所以 D选项正确。 5 【正确答案】
19、A 【试题解析】 “清晰第一,效率第二 ”,在考虑到程序的执行效率的同时,一定要保证程序清晰、可读:对符号名的命名除了要符合语法要求外,还要具有一定的含义;程序的注释可以帮助程序员理解程序,不是可有可无的。 6 【正确答案】 C 【试题解析】 面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。 7 【正确答案】 D 【试题解析】 耦合性与内聚性是模块独立性的两个定性标准,一般的程序设计都会尽量做到高内聚、低耦合,有利于提高模块的独立性。 8 【正确答案】 D 【试题解析】 数据独立性是数据库系统的一个最重要的目标之一,它使数据能
20、独立于应用程序。数据独立性包括数据的物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。即数据在磁盘上怎样存储由 DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。 逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即当数据的逻辑结构改变时,用户程序也可以不变。 9 【正确答案】 C 【试题解析】 软件工程是指将工程化的思想应用于软件的开发、应用和维护的过程,包括软件开发技术和软件工程管理。 10 【正确答案】 A 【试题解析】 关系的并运算是指由结构相同的两个关系合并,形成一
21、个新的关系,其中包含两个关系中的所有元组。 11 【正确答案】 D 【试题解析】 类的默认访问控制策略是不使用保留字来定义类,这会限制其他包中的类访问 本类,此类只能被同一个包中的类所访问和引用,也不能用 import语句引用,所以选项 D正确。 12 【正确答案】 A 【试题解析】 整型常量分 3种书写格式: (1) 十进制整数,如 139、 -3、 35。 (2) 八进制整数,以 0开头,如 012表示十进制数 10。 (3) 十六进制数,以 0x或 OX开头,如 0x123表示十进制数 291。选项 B是 long整型常量,选项 C是十进制整数,选项 D是八进制整数,因此选项 A为正确选
22、项。 13 【正确答案】 C 【试题解析】 java.lang包:封装编程要用的所 有基本类,如 Object、 Class、System、 Integer、 Thread等。对于任何一个 Java程序来说,这些类几乎是必不可少的。 java.1ang还包含了许多由 Java虚拟机发出的异常和一些用于访问系统资源的类,如 ClassLoader等。 14 【正确答案】 A 【试题解析】 javac.exe是 Java编译器,能将源代码编译成字节码,以 .class扩展名存入 Java工作目录中。 java.exe是 Java解释器,执行字节码程序。javadoc.exe是 Java文档生成器,
23、对 Java源文件和包以 MML格式产生 AP文档。 appletviewer.exe是 Java Applet浏览器。所以正确选项是 A。 15 【正确答案】 C 【试题解析】 整型变量分为 4种类型: (1) byte型变量占 8bit,所能表示的数据范围是 -128 +127。 (2) short型变量的存储顺序是先高后低,占 16bit,所能表示的数据范围是 -32768 +32767。 (3) int型变量占 32bit,所能表示的数据范围是 -2147483648 +2147483647。 (4) long型变量占 64bit,所能表示的数据范围是 -264 +264-1。所以变量
24、 B的定义超出了 byte型数据的取值范围,会引起编译错误。 16 【正确答案】 A 【试题解析】 程序段 main( )方法中的前 3行是基本的赋值语句,第 4行是算术运算语句,此语句的执行过程是:首先对 y取负值,得到 -2,然后乘以 z得到 -6,再除以 n得到 -1,最后和 n做加法得到 3,从而根据赋值运算将 3赋值给变量 n。 17 【正确答案】 B 【试题解析】 对一个类的继承也就是构建一个子类,子类继承了父类的方法和状态,同时还可以向新类中增 添新的方法和状态。需要注意的是:子类方法的访问权限比父类的访问权限高,因此父类不能替代子类,但子类能够替代父类,子类方法不能产生比父类更
25、多的异常。 18 【正确答案】 B 【试题解析】 将一个容器 panell放到容器 framel中的方法和容器上添加部件是一样的,使用 add( )方法即可。 19 【正确答案】 D 【试题解析】 选项 B中虽然 b是类 Teacher的 public成员变量,但在静态方法中,不能使用类中的非静态成员;选项 C中的 a是 Person类的 private成员,不能在类外 直接引用;选项 D中的 change(int m)方法是 public方法,并且返回一个int型值,可以通过类的实例变量 p引用并赋值给一个 int型变量。 20 【正确答案】 A 【试题解析】 每类事件都有对应的事件监听器,
26、监听器是接口,根据动作来定义方法。 AWT的构件类中提供注册和注销监听器的方法。注册监听器: public void add ListenerType ( ListenerType Liste- ner);注销监听器: public void remove ListenerType ( ListenerType Listener)。 21 【正确答案】 C 【试题解析】 java.lang中的 Thread类的典型构造方法为 public Thread(ThreadGroup group, Runna- ble target, String name)。接口 Runnable定义了 run(
27、)方法;而 Thread类本身也实现了 Runnable接口,故创建线程有两种方法: (1) 用实现 Runnable接口的类的实例作为 target参数生成 Thread类的实例; (2) 编写继承 Thread类 的类,并重写 (override)run( )方法。所以 C为正确选项。 22 【正确答案】 B 【试题解析】 选项 A的错误就是重写的访问权限比被重写的方法的权限低,而B属于重载,选项 C的错误在于比被重写的方法抛弃了更多种类的异常。选项 D中,当只传递两个变量的值时,系统不知道到底调用哪一个方法,因为 b为常量,可以不指定,所以只有选项 B符合题意。 23 【正确答案】 B
28、【试题解析】 =操作符所比较的是操作符两端的操作数是否是同一个对象,而String的 equals( )方法所比较的是 两个 String对象的内容是否一样,其参数是一个 String对象时才有可能返回 true,其他对象都返回 false。因此只有选项 B符合题意。 24 【正确答案】 B 【试题解析】 不能直接建立接口的实例,只能通过实现接口的相应的类来实现接口。所以只有 B选项是正确的。 25 【正确答案】 C 【试题解析】 浏览器为了保护本地主机,对 Applet做了如下安全限制: Applet不能运行任何本地可运行的程序。 Applet只能使用自身的代码或 Applet浏览器所提供的
29、 Java API,不允许装载 动态链接库和调用任何本地方法,选项 C正确。禁止读 /写本地的文件系统。禁止向提供 Applet之外的任何主机建立网络连接。 26 【正确答案】 D 【试题解析】 当一个 Applet下载到本地系统时,将发生以下操作:产生一个Applet主类的实例;对 Applet自身进行初始化;启动 Applet运行,将 Applet完全显示出来。由此可见,选项 D的说法不正确。 27 【正确答案】 A 【试题解析】 seek(long pos)是随机文件记录的查找,满足题意。 length( )方法是求随机文件字 节长度的方法,不符合题意; Java中没有 find( )方
30、法; skipBytes(int n)方法是使随机文件访问跳过指定字节,不符合题意。 28 【正确答案】 A 【试题解析】 创建一个新的主线程对象后,通过使用 start( )方法就可以启动此线程,线程就处于可运行状态 Runnable。程序运行时,首先创建一个线程对象t,并调用 displayOutput(Strings)方法输出 “t has been created”。 t.start( )方法调用run( )方法,输出 “t is running”,所以正确答案为 A。 29 【正确答案】 D 【试题解析】 Thread的 API文档说明此方法恢复被挂起的线程。首先调用此线程的无参数的
31、 checkAccess( )方法,这可能在当前线程上抛出 SecurityException异常,如果此线程是活动的但被挂起,它将被恢复并继续其执行进程。 30 【正确答案】 A 【试题解析】 由于数组 arr声明时未使用 static关键字,而 main( )方法直接引用 arr(而非通过 Person的实例引用 ),将产生 “非静态变量不能从静态上下文中引用 ” (non-static variable cannot be referenced from a static context)的编译错误。 31 【正确答案】 B 【试题解析】 FlowLayout是 Panel和 Apple
32、t的默认布局管理器。构件在容器中的放置规律是从上到下、从左到右进行。 BorderLayout是 Window、 Frame和Dialog默认布局管理器。 BorderLayout布局管理器把容器分成 5个区域: North、South、 East、 West和 Center,每个区域 只能放置一个构件。 32 【正确答案】 B 【试题解析】 InputStream类所包括的主要方法有 public int read(byte b)throws IOException、 long skip(long n)、 public int available( )throws IOException和
33、public void close( )throws IOException。选项 B中的 void flush( )方法并不属于 InputStream类中的方法。 33 【正确答案】 A 【试题解析】 共享数据的所有访问都必须作为临界区,使用 synchronized进行加锁控制,选项 A的说法正确。用 synchronized保护的共享数据必须是私有的。在 Java中对象加锁具有可重入性。 34 【正确答案】 B 【试题解析】 Java内部用整数表示 char,通常可以在方法调用和其他语句中互换使用 char和 int,选项 B正确。 char用两个字节表示, byte类型用一个字节表示
34、, Java内部不允许对它们互换使用。 35 【正确答案】 log2n 【试题解析】 对于长度为 n的有序 线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较 n次。 36 【正确答案】 O(n2) 【试题解析】 快速排序法的时间复杂度与每次划分的结果有关。如果每次划分的两个子表长度都相等,则时间复杂度最小为 O(log2n);如果每次划分的结果总有一个子表的长度为 0,则时间复杂度最大为 O(n2)。 37 【正确答案】 实例 【试题解析】 类是对象的抽象,它描述了属于此对象类型的所有对象的性质,而一个对象则是其对应类的实例。 38 【正确答案】 文档 【试题解析】 计
35、算机软件是包括程序、数据及相关文档的完整集合。 39 【正确答案】 关系 【试题解析】 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。表中的每一列称为一个属性,相当于记录中的一个数据项。对属性的命名称为属性名。表中的一行称为一个元组,相当于记录值。 40 【正确答案】 对象锁阻塞 【试题解析】 阻塞状态根据其产生原因可分为对象锁阻塞、等待阻塞和其他阻塞。 41 【正确答案】 19 【试题解析】 提取字符串的长度可以用 length( )方法,它将 返回字符串的字符个数。 42 【正确答案】 OutputStream 【试题解析】 非字符输出流都是 OutputStream抽象类的子类,过滤字节输出流 FilterOutputStream就是它的子类,而 FilterOutputStream本身也是一个抽象类,它是所有输出过滤类的父类。 43 【正确答案】 Window 【试题解析】 对话框是 Window类的子类。对话框和一般窗口的区别在于,它依赖于其他窗口。对话框分为非模式 (non-model)和模式 (model)两种。 44 【正确答案】 class 【试题解析】 Applet源程序与任何 Java源程序一样,其文件扩展名都是 .java,编译生成目标文件的扩展名为 .class。