1、国家二级( JAVA)笔试模拟试卷 167及答案与解析 1 阅读下面程序 import java.io.*; public class TypeTransition public static void main(String args) char a=h: int i=100; int j=97; int aa=a+i: System.out.println(“aa=“+aa); char bb=(char)j; System.out.println(“bb=“+bb); 如果输出结果的第二行为 bb=a,那么第一行的输出是 ( A) aa=1 ( B) aa=204 ( C) aa=v (
2、 D) aa=156 2 阅读下面程序 public class OperatorsAndExpressions void equalsMethodl() String s1=new String(“how are you“); String s2=new String(“how are you“); System.out.println(s1=s2); public static void main(String args) OperatorsAndExpressions OperAndExp=new OperatorsAndExpressions(); /用于复合类型数据的 “=”运算符
3、OperAndExp.equalsMethodl(); 程 序运行的结果是 ( A) = ( B) true ( C) false ( D) equal 3 阅读下面代码 if(x=0)System.out.println(“冠军 “); else if(x -3)System.out.println(“亚军 “); elseSystem.out.println(“季军 “); 若要求打印字符串 “季军 ”,则变量 X的取值范围是 ( A) x=0row =10;row+) for(int column=1;column =5;colunm+) if(row=5)break stop; out
4、put+=“*“: output+=“n“; output+=“nLoops terminated normally“: JOptionPane.showMessageDialog(null,output,“用一个标志测试 break语句 “, JOptionPane.INFORMATION_MESSAGE); System.exit(0); 程序运行的结果是 ( A)窗口 中有 5行 * ( B)窗口中有 5行 * ( C)窗口中有 4行 * ( D)窗口中有 6行 * 7 阅读下面程序 1 public class Try extends Thread 2 public static vo
5、id main(String args) 3 Try t=new Try(); 4 t.start(); 5 6 7 public void run(int j) 8 int i=0; 9 while(i 5) 10 System.out.println(“祝你成功 !“); 11 i+: 12 13 14 该程序若能打印 5行 “祝你成功 !”,必须改正程序中的某行代码,选择正确的修改是 ( A)将第 1行的 extends Thread改为 implements Runnable ( B)将第 3行的 new Try()改为 new Thread() ( C)将第 4行的 t.start(
6、)改为 start(t) ( D)将第 7行的 public void run(int j)改为 public void run() 8 下列选项中不符合良好程序设计风格的是 ( A)源程序要文档化 ( B)数据说明的次序要规范化 ( C)避免滥用 goto语句 ( D)模块设计要保证高耦合、高内聚 9 从工程管理角度,软件设计一般分为两步完成,它们是 ( A)概要设计与详细设计 ( B)数据设计与接口设计 ( C)软件结构设计与数据设计 ( D)过程设计与数据设计 10 下列选项中不属于软件生命周期开发阶段任务的是 ( A)软件测试 ( B)概要设 计 ( C)软件维护 ( D)详细设计 1
7、1 在数据库系统中,用户所见的数据模式为 ( A)概念模式 ( B)外模式 ( C)内模式 ( D)物理模式 12 数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和 ( A)编码设计 ( B)测试阶段 ( C)运行阶段 ( D)物理设计 13 下列叙述中正确的是 ( A)一个算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一个算法的时间复杂度大,则其空间复杂度必定小 ( D)上述三种说法都不 对 14 在长度为 64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为 ( A) 63 ( B) 64 ( C) 6 ( D) 7
8、15 数据库技术的根本目标是要解决数据的 ( A)存储问题 ( B)共享问题 ( C)安全问题 ( D)保护问题 16 运行 Java程序需要的工具软件所在的目录是 ( A) JDK的 bin目录 ( B) JDK的 demo目录 ( C) JDK的 lib目录 ( D) JDKR的 jre目录 17 下列关于 Java语言特点的叙述中,错误的是 ( A) Java是面向过程的编程语言 ( B) Java支持分布式计算 ( C) Java是跨平台的编程语言 ( D) Java支持多线程 18 Java的核心包中,提供编程应用的基本类的包是 ( A) Java.lang ( B) Java.ut
9、il ( C) Java.applet ( D) Java.rmi 19 下列关于 Java对 import语句规定的叙述中,错误的是 ( A)在 Java程序中 import语句可以有多个 ( B)在 Java程序中 import语句可以没有 ( C)在 Java程序中 import语句必须有一个 ( D)在 Java程 序中 import语句必须引入在所有类定义之前 20 在编译 Java程序时,用于指定生成 class文件位置的选项是 ( A) #NAME? ( B) #NAME? ( C) #NAME? ( D) #NAME? 21 下列关于构造方法的叙述中,错误的是 ( A) Jav
10、a语言规定构造方法名与类名必须相同 ( B) Java语言规定构造方法没有返回值,但不用 void声明 ( C) Java语言规定构造方法不可以重载 ( D) Java语言规定构造方法只能通过 new自动调用 22 下列叙述中,错误的是 ( A) JavaApplication与 Applet所用编译命令相同 ( B)通常情况下, JavaApplication只能有一个 main()方法 ( C) JavaApplet必须有 HTML文件才能运行 ( D) JavaApplet程序的 .class文件可用 java命令运行 23 下列关于 Java语言中线程的叙述中,正确的是 ( A)线程是
11、由代码、数据、内核状态和一组寄存器组成 ( B)线程间的数据是不共享的 ( C)用户只能通过创建 Thread类的实例或定义,创建 Thread子类的实例建立和控制自己的线程 ( D) 因多线程并发执行而引起的执行顺序的不确定性可能造成执行结果的不确定 24 处理对象传输的接口是 ( A) Serializable ( B) Cloneable ( C) ItemListener ( D) ActionListener 25 在读取二进制数据文件的记录时,为了提高效率常常使用一种辅助类 ( A) InputStream ( B) FilelnputStream ( C) StringBuffe
12、r ( D) BufferedReader 26 可以使当前同级线程重新获得运行机会的方法是 ( A) sleep() ( B) join() ( C) yield() ( D) interrupt() 27 下列事件监听器中,无法对 TextField对象进行事件监听和处理的是 ( A) ActionListener ( B) cuslistener ( C) MouseMotionListener ( D) ChangeListener 28 Swing的选项面板是 ( A) JTabbedPane ( B) JLayeredpane ( C) JScrollPane ( D) JSpli
13、tPane 29 每个 Java小应用程序必须定义为 ( A) Applet类或 JApplet类的子类 ( B) JFrame类的子类 ( C) Frame的子类 ( D) Window的子类 30 在 Applet的 init()方法被调用后,接下来最先调用的方法是 ( A) run() ( B) start() ( C) stop() ( D) destroy() 31 下列关于 Applet的安全限制的叙述中,错误的是 ( A)通常情况下,禁止 Applet读、写本地文件系统 ( B)通常情况下,禁止 Applet读 Applet源主机之外的任何主机 建立网络连接 ( C)通常情况下,
14、禁止 Applet读取系统信息 ( D)通常情况下,禁止 Applet加载本地库或方法 32 下列标识符 (名字 )命名原则中,正确的是 ( A)类名的首字母小写 ( B)变量和方法名的首字母大写 ( C)接口名的首字母小写 ( D)常量完全大写 33 提供 showDocument()方法,使 Applet能够请求浏览器访问特定 URL的类是 ( A) Applet ( B) AppletContext ( C) JApplet ( D) URL 34 下面程序的功能是创建一个显示 5个 “Hello!”的线程并启动运行。请将程序补充完整。 public class ThreadTest e
15、xtends Thread public static void main(String args) ThreadTest t=new _; t.start(); public void run() int i=0; while(true) System.out.println(“Hello!“); if(i+=4)break; 35 数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是 _。 36 算法复杂度主要包括时间复杂度和 _复杂度。 37 在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块 (桩模块 )。其中 _的作用是将
16、测试数据传送给被测试的模块,并显示被测试模块所产生的结果。 38 一棵二叉树第六层 (根结点为第一层 )的结点数最多为 _个。 39 数据结构分为逻辑结构和存储结构,循环队列属于 _结构。 40 Java语言具有可移植性、高性能、健壮性、安全性和独立于体系结构的 _特点。 41 _类是由 Java编译器自动生成的,它伴随每个类。 42 在运行时,由 java解释器自动引入,而不用 import语句引入的包是 _。 43 在 Java中,字符串是作为 _出现的。 44 与显示相关的 Applet方法有 _()、 repaint()和 update()。 45 Applet生命周期方法有 init
17、()、 _()、 stop()和 destroy()。 46 Swing的事件处理机制包括 _、事件和事件监听者。 47 Swing的顶层容器有: JApplet、 JWindow、 JDialog和 _。 48 Java对象串行化技术,主要是通过 _类和 ObjectOutputStream类来实现。 国家二级( JAVA)笔试模拟试卷 167答案与解析 1 【正确答案】 B 【试题解析】 Java语言规定, char型数据可以自动转换成 int型,转换的结果就是相应字符的 ASCII 值。由题目所给出的第二行输出结果为, bb=a,可知字母 a的 ASCII值为 97,则可以推出字母 h
18、的 ASCII值为 104,所以aa=104+100=204,因此答案为 B。 2 【正确答案】 C 【试题解析】 本程序是显示表达式 s1=s2 的值。字符串对象 s1和 s2是复合数据类型,因而表达式 s1=s2所比较的是 s1和 s2 是否是同一个对象。本题中 s1和 s2虽然有相同的值 “how are you“,但它们是两个不同的对象,所以本题的结果是false。若要对两个对象的值进行比较,则可以调用 equals()方法。 3 【正确答案】 D 4 【正确答案】 A 【试题解析】 本程序是让用户输入两个数,然后对这两个数进行比较,最后输出比较结果。根据题目中的提示,下画线处的语句所
19、完成的操作就是初始化 result变量。因为 result是一个字符串型变量,初始化就是要为其赋予一个字符型常量。选项 B中的 null不是字符串型数据。选项 C和选项 D均为整型数据,也不是字符串型数据。所以答案为 A。 5 【 正确答案】 B 【试题解析】 第一个输出语句,输出变量 c,值为 5;第二个输出语句,输出c+, +在变量 c之后,先取值再自增, a+表达式的值为 5,然后变量 a的值自增为 6,所以第二条语句输出的结果为 5,第三条语句输出的结果为 6。 6 【正确答案】 C 【试题解析】 本程序的功能是向屏幕输出 “*”。题目中用了一个两层嵌套的 for循环。内层循环控制每行
20、输出的 “*”个数,从初值 1到 5共 5个。外层循环控制行数, for的循环初值为 1,终值为 10,但是当 row 为 5时,跳出了 stop 所指定的代码块。所以只 执行了 4行。 7 【正确答案】 D 8 【正确答案】 D 【试题解析】 编程风格是在不影响性能的前提下有效地编排和组织程序,以提高可读性和可维护性。更直接地说,风格就意味着要按照规则进行编程。这些规则包括: (1)程序文档化。就是程序文档包含恰当的标识符,适当的注解和程序的视觉组织等。 (2)数据说明。出于阅读理解和维护的需要,最好使模块前的说明语句次序规范化。此外,为方便查找,在每个说明语句的说明符后,数据名应按照字典顺
21、序排列。 (3)功能模块化。即把源程序代码按照功能划分为低耦合、高内聚的模块。 (4)注意 goto语句的使用。合理使用 goto语句可以提高代码的运行效率,但goto语句的使用会破坏程序的结构特性。因此,除非确实需要,否则最好不使用goto语句。本题的正确答案是 D。 9 【正确答案】 A 【试题解析】 从工程管理的角度,软件设计可分为概要设计和详细设计两大步骤。概要设计是根据需求确定软件和数据的总体框架;详细设计是将其进一步精化成软件的算法或表示为数据的结构。而在技术上,概要设计和详细设计又由若干活动组成,包括总体结构设计、数据设计和过程设计。因此,本题的正确答案是 A。 10 【正确答案
22、】 C 【试题解析】 软件生命周期由软件定义、软件开发和软件维护三个阶段组成,每个时期又进一步划分为若干个阶段。软件定义时期的基本任务是确定软件系统的工程需求。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期是具体设计和实现在前一时期定义的软件,它通常由下面五个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要,即当软件在使用过程中发现错误时应加以改正;当环境改变时应修改软件,以适应新的环境;当用户有新要求时应 及时改进软件,以满足用户的新要求。根据上述对软件生命周期的介绍,可知选项 C中的软件维护不是软件生命周期开
23、发阶段的任务。因此,本题的正确答案是 C。 11 【正确答案】 B 【试题解析】 数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式也称子模式或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。内模式也称存储模式或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物 理结构和存取方法的描述。根据上述介绍可知,数据库系统中用户所见到的数据模式为外模式。因此,本题的正确答案是 B。 12 【正确答案】 D 【试题解析】 数据库的生命周期可以分为两个阶段:一是数据库设
24、计阶段;二是数据库实现阶段。数据库的设计阶段又分为四个子阶段,即需求分析、概念设计、逻辑设计和物理设计。因此,本题的正确答案是 D。 13 【正确答案】 D 【试题解析】 时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。人们都希望选择一个既省 存储空间又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾,但是两者不存在必然的联系。因此,选项 A、
25、 B、 C的说法都是错误的。故本题的正确答案是 D。 14 【正确答案】 B 【试题解析】 在长度为 64的有序线性表中,其中的 64个数据元素是按照从大到小或从小到大的顺序排列有序的。在这样的线性表中进行顺序查找 ,最坏的情况就是查找的数据元素不在线性表中或位于线性表的最后。按照线性表的顺序查找算法,首先用被查找的数据和线性表的第一个数据元素进行比较,若相等,则查找成功,否则继续进行比较,即和线性表的第二个数据元素进行比较。同样,若相等,则查找成功,否则继续进行比较。以此类推,直到在线性表中查找到该数据或查找到线性表的最后一个元素,算法才结束。因此,在长度为 64 的有序线性表中进行顺序查找
26、,最坏的情况下需要比较 64 次。因此,本题的正确答案为 B。 15 【正确答案】 B 【试题解析】 数据库产生的背景就是计算机 的应用范围越来越广泛,数据量急剧增加,对数据共享的要求越来越高。共享的含义是多个用户、多种语言、多个应用程序相互覆盖地使用一些公用的数据集合。在这样的背景下,为了满足多用户、多应用共享数据的要求,就出现了数据库技术,以便对数据库进行管理。因此,数据库技术的根本目标就是解决数据的共享问题。故选项 B正确。 16 【正确答案】 A 【试题解析】 JDK目录中,选项 A的 bin目录下存放编译器、解释器和许多工具;选项 B的 demo 目录下有各种演示例子;选项 C的 l
27、ib 目录下都是库文件;选项 D的 jre目录是 Java程序运行环境的根目录。另外还有 include目录是 win32子目录,都是本地方法文件。 17 【正确答案】 A 【试题解析】 Java语言是一种面向对象的语言,与其他面向对象语言相比,Java利用面向对象技术更彻底,它把所有的 Java应用和 Applet都看作对象。Java语言具有如下特点:简单易学,利用面向对象技术,分布式计算,健壮性,安全性,跨平台性,可移植性,解释执行,高性能,多线程,动态性。 18 【正确答案】 A 【试题解析】 Java核心包共有 12个。 Java.lang包封装 所有编程应用的基本类,如 Object
28、、 Class、 System、 Integer、 Thread 等。 Java.util包提供实用程序类和集合类,如系统特性定义和使用、日期方法类、集合 Collection、 Map、 List、Arrays等常用工具类。 Java.applet包为 Applet提供执行需要的所有类,主要是访问 Applet内容的通信类。 Java.rmi包提供程序远程方法调用所需的类。 19 【正确答案】 C 【试题解析】 Java程序中使用 import语句导入一个包中的类。在一个 Java源程序中 可以有 0条或多条 import语句,但必须在所有类定义之前引入标准类。 20 【正确答案】 B 【试
29、题解析】 Java编译器 javac.exe能将源代码编译成字节码,以 .class 扩展名存入 Java的工作目录中,其命令格式为: javac选项 文件名 (全名 )。其中 选项 -g:输出文件中加行号及局部变量信息,为调试程序时用; -verbose:显示源代码文件和字节码文件的相关信息; -nowarn:关闭警告信息,只显示错误信息; -d目录:指定生成的类文件的存放位置。 21 【正确答案】 C 【试题解析】 构造方法是类中的一种特殊方法,是为对象初始化操作编写的方法,用它来定义对象的初始状态。构造方法名必须与类名相同,它没有返回值,用户不能直接调用它,只能通过 new 自动调用。构
30、造方法具有下列特点: 因为构造方法与类名必须相同,所以方法首字母小写规则对它不适用。 构造方法是给对象赋初值,所以没有返回值,但不要 void 来声明。 构造方法不能被程序调用。 构造方法可由编程人员在类中定义,默认时由 Java语言自动生成。 构造方法可以重载实现不同的初始化方法,调用时按参数决定调用哪个方法。 22 【正 确答案】 D 【试题解析】 Applet是能够嵌入 HTML语言中,并在浏览器中运行的类。Applet的运行环境是 Web 浏览器,所以必须建立 HTML 文件,告诉浏览器如何加载和运行 Applet。 Applet是不能直接通过 Java命令启动运行的。 23 【正确答
31、案】 D 【试题解析】 线程不包含进程地址空间中的代码和数据。数据可以被多个线程所共享,也可以不共享。在多线程的程序中,当多个线程并发执行时,虽然各个线程中语句的执行顺序是确定的,但线程的相对执行顺序是不确定的。这种线程运行的不确定性将导致 执行结果的不确定性。 24 【正确答案】 A 【试题解析】 处理对象传输的实质就是把对象串行化。在 Java语言中,如果要串行化某些类的对象,这些类就必须实现 Serializable接口。 25 【正确答案】 C 【试题解析】 StringBuffer 类是一个表示可变长度字符串的类,在读取文件时并不知道所读取字符的具体长度,因此为 StringBuff
32、er类分配的内存会自动扩展而容纳新增的字符,这就提供了读取效率。所以, StringBuffer是一个可以提高读取文件效率的辅助类。 26 【正确答案】 C 【试题解析】 Thread提供了如下的基本线程控制方法: sleep(),线程暂停,让出 CPU,使低优先级的线程运行。 yield(),线程暂停,让出 CPU,使同优先级的其他线程运行。如果不存在有机会运行的线程, yield()方法将直接返回,线程继续; join(),当前线程暂停,等待线程类对象运行结束。 interrupt(),如果一个线程 t调用 sleep()、 join()、 wait()等方法被阻塞,则 t.interru
33、pt()方法将使 t的中断状态被清除,中断 t的阻塞状态,并且 t将接收到 InterruptedException 异常。 27 【正确答案】 D 【试题解析】 在单行文本输入区 (Textfiel 28 【正确答案】 A 【试题解析】 在 Swing的容器面板中,选项面板是 JTabbedPane,每个选项下面都可以显示一个构件,提供一组可供用户选择的带有标签或图标的选项。 Swing提供两种分层面板: JLayeredPane和 JDesktopPane。 29 【正确答案】 A 【试题解析】 Applet类定义小应用程序与其运行环境之间的一个接口; JApplet是 Applet类的扩
34、展,它继承 Applet的方法和执行机制,同时也增加了对 Swing构件的支持。每个 Java小应用程序都必须是 Applet类或 JApplet类的子类。 30 【正确答案】 B 【试题解析】 Applet生命周期包括 Applet的创建、运行和消亡等状态。 Applet类提供在生命周期的不同阶段响应主要事件的 4种方法 init()、 start()、 stop()和 destroy()。在调用完 init()方法之后,接下来最先调用的是 start()方法。 31 【正确答案】 C 【试题解析】 为了保护本地主机,对 Applet做了如下安全限制: Applet不能运行任何本地可运行程序
35、,禁止加载本地库或方法,禁止读、写本地计算机的文件系统,禁止向提供 Applet之外的任何主机建立网络连接,不能读取某些系统信息。只是不能读取某些系统信息,所以答案为选项 C。 32 【正确答案】 D 【试题解析】 类名和接口名都采用完整的英文描述符,并且所有单词的第一个字母大写。变量和方法名采用完整的英文描述符,第一个字母小写,任何中间的单词首字母大写。常量名全部采用大写字母,单词之间用下划线分隔。 33 【正确答案】 B 【试题解析】 AppletContext类是一个接口类, Applet通过 AppletContext接口与环境进行通信。可以利用这个类从 Applet,环境获取信息,而
36、这个环境一般是指浏览器。 Applet使用 AppletContext类的 showDocument()方法通知浏览器在指定窗口中显示另一个 URL的内容。 34 【正确答案】 ThreadTest() 35 【正确答案】 数据库系统 (或数据库系统阶段,或数据库,或数据库阶段,或数据库管理技术阶段 ) 36 【正确答案】 空间 37 【正确答案】 驱动模块 38 【正确答案】 32 39 【正确答案】 存储 (或物理,或存储结构,或物理结构 ) 40 【正确答案】 跨平台 41 【正确答案】 Class 42 【正确答案】 java.lang 43 【正确答案】 对象 44 【正确答案】 paint 45 【正确答案】 start 46 【正确答案】 事件源 47 【正确答案】 JFrame 48 【正确答案】 ObjectInputStream