[计算机类试卷]2006年9月国家二级(JAVA)笔试真题试卷及答案与解析.doc

上传人:hopesteam270 文档编号:492564 上传时间:2018-11-30 格式:DOC 页数:28 大小:107.50KB
下载 相关 举报
[计算机类试卷]2006年9月国家二级(JAVA)笔试真题试卷及答案与解析.doc_第1页
第1页 / 共28页
[计算机类试卷]2006年9月国家二级(JAVA)笔试真题试卷及答案与解析.doc_第2页
第2页 / 共28页
[计算机类试卷]2006年9月国家二级(JAVA)笔试真题试卷及答案与解析.doc_第3页
第3页 / 共28页
[计算机类试卷]2006年9月国家二级(JAVA)笔试真题试卷及答案与解析.doc_第4页
第4页 / 共28页
[计算机类试卷]2006年9月国家二级(JAVA)笔试真题试卷及答案与解析.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、2006年 9月国家二级( JAVA)笔试真题试卷及答案与解析 1 下列选项中不符合良好程序设计风格的是 ( A)源程序要文档化 ( B)数据说明的次序要规范化 ( C)避免滥用 goto语句 ( D)模块设计要保证高耦合、高内聚 2 从工程管理角度,软件设计一般分为两步完成,它们是 ( A)概要设计与详细设计 ( B)数据设计与接口设计 ( C)软件结构设计与数据设计 ( D)过程设计与数据设计 3 下列选项中不属于软件生命周期开发阶段任务的是 ( A)软件测试 ( B)概要设计 ( C)软件维护 ( D)详细设计 4 在数据库系统中,用户所见的数据模式为 ( A)概念模式 ( B)外模式

2、( C)内模式 ( D)物理模式 5 数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和 ( A)编码设计 ( B)测试阶段 ( C)运行阶段 ( D)物理设计 6 设有如下三个关系表 下列操作中正确的是 ( A) T=RS ( B) T=R S ( C) T=RS ( D) T=R/S 7 下列叙述中正确的是 ( A)一个算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大, 则其时间复杂度必定小 ( C)一个算法的时间复杂度大,则其空间复杂度必定小 ( D)上述三种说法都不对 8 在长度为 64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为 ( A) 63

3、 ( B) 64 ( C) 6 ( D) 7 9 数据库技术的根本目标是要解决数据的 ( A)存储问题 ( B)共享问题 ( C)安全问题 ( D)保护问题 10 对下列二叉树进行中序遍历的结果是 ( A) ACBDFEG ( B) ACBDFGE ( C) ABDCGEF ( D) FCADBEG 11 运行 Java程 序需要的工具软件所在的目录是 ( A) JDK的 bin目录 ( B) JDK的 demo目录 ( C) JDK的 lib目录 ( D) JDK的 jre目录 12 下列关于 Java语言特点的叙述中,错误的是 ( A) Java是面向过程的编程语言 ( B) Java支持

4、分布式计算 ( C) Java是跨平台的编程语言 ( D) Java支持多线程 13 Java的核心包中,提供编程应用的基本类的包是 ( A) java.lang ( B) java.util ( C) java.applet ( D) java.rmi 14 下列关于 Java对 import语句规定的叙述中,错误的是 ( A)在 Java程序中 import语句可以有多个 ( B)在 Java程序中 import语句可以没有 ( C)在 Java程序中 import语句必须有一个 ( D)在 Java程序中 import语句必须引入在所有类定义之前 15 在编译 Java程序时,用于指定生

5、成 class文件位置的选项是 ( A) -g ( B) -d ( C) -verbose ( D) -nowarn 16 阅读下面程序 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,那么第一行的输出是

6、 ( A) aa=I ( B) aa=204 ( C) aa=v ( D) aa=156 17 阅读下面程序 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) OperatorsAndExpressionsOperAndExp=new OperatorsAn

7、dExpressions(); /用于复合类型数据的 “=”运算符 OperAndExp.equalsMethod1(); 程序运行结果 是 ( A) ( B) true ( C) false ( D) equal 18 阅读下面代码 if(x=0)System.out.println(“冠军 “); else if(x -3)System.out.println(“亚军 ”); else System.out.println(“季军 ”); 若要求打印字符串 “季军 ”,则变量 x的取值范围是 ( A) x=0 /比较两个数据 if(number1 number2) result += nu

8、mber1 +“ =“ + number2; if(number1 != number2 ) result += numberl +“ !=“ + number2; if( number1 number2 ) result = result + “n“ + numberl +“ “ + number2; if(number1 number2 ) result = result + “n“ + number1 + “ “ + number2; if( number1 = number2 ) result = result + “n“ + number1 +“ =“ + number2; if (

9、number1 = number2 ) result = result + “n“ + number1 + “ =“ + number2; /显示结果 JOptionPane.showMessageDialog(null,result,“ 比较结果 “, JOptionPane. INFORMATION_MESSAGE); System.exit(0); 为使程序能正确运行并得到合理的输出结果,初始化结果变量语句 (下划线处 )应是 ( A) result = “ ( B) result = null ( C) result = number1 ( D) result = number2 21

10、 阅读下面程序 public class Increment public static void main( String args ) int c; c=5; System.out.println(C) ; System.out.println(c+); System.out.println(C) ; ( A) 5 6 6 ( B) 5 5 6 ( C) 6 7 7 ( D) 6 6 6 22 下列叙述中,错误的是 ( A) Java Application与 Applet 所用编译命令相 ( B)通常情况下 Java Application 只能有一个 main()方法 ( C) Jav

11、a Applet 必须有 HTML文件才能运行 ( D) Java Applet程序的 .class文件可用 java命令运行 23 下列关于 Java语言中线程的 叙述中,正确的是 ( A)线程是由代码、数据、内核状态和一组寄存器组成 ( B)线程间的数据是不共享的 ( C)用户只能通过创建 Thread类的实例或定义、创建 Thread子类的实例建立和控制自己的线程 ( D)因多线程并发执行而引起的执行顺序的不确定性可能造成执行结果的不确定 24 阅读下面程序 import javax.swing.JOptionPane; public class BreakLabelTest publi

12、c static void main (String args) String output=“ “; stop: for(int row=1; row 10; row+) for(int column=1;column =5; column+) if(row 5) break stop; output+=“ * “; output+=“ n “; output+=“nLoops terminated normally“; JOptionPane.showMessageDialog( null, output,“用一个标志测试 break语句 ”, JOptionPane.INFORMATIO

13、N_MESSAGE); System.exit(0); 程序运行结果是 ( A)窗口中有 5行 * * * * * ( B)窗口中有 5行 * * * * ( C)窗口中有 4行 * * * * * ( D)窗口中有 6行 * * * * * 25 处理对象传输的接口是 ( A) Serializable ( B) Cloneable ( C) ItemListener ( D) ActionListener 26 在读取二进制数据文件的记录时,为了提高效率常常使用一种辅助类 ( A) InputStream ( B) FileInputStream ( C) StringBuffer ( D

14、) BufferedReader 27 可以使当前同级线程重新获得运行机会的方法是 ( A) sleep() ( B) join() ( C) yield() ( D) interrupt() 28 阅读下面程序 1 public class Try extends Thread 2 public static void 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

15、 i+; 12 13 14 该程序要求打印 5行 “祝你成功 !”,必须改正程序中的某行代码,程序才能完成。选择正确的修改是 ( A)将第 1行的 extends Thread改为 implements Runnable ( B)将第 3行的 new Try()改为 new Thread() ( C)将第 4行 t.start()改为 start(t) ( D)将第 7行的 public void run(int j)改为 public void run() 29 下列事件监听器中,无法对 TextField对象进行事件监听和处理的是 ( A) ActionListener ( B) Focu

16、sListener ( C) MouseMotionListener ( D) ChangeListener 30 Swing的选项面板是 ( A) JTabbedPane ( B) JLayeredPane ( C) JScrollPane ( D) JSplitPane 31 每个 Java小应用程序必须定义为 ( A) Applet类或 JApplet类的子类 ( B) JFrame类的子类 ( C) Frame的子类 ( D) Window的子类 32 在 Applet的 init()方法被调用后,接下来最先被调用的方法是 ( A) run() ( B) start() ( C) st

17、op() ( D) destroy() 33 下列关于 Applet的安全 限制的叙述中,错误的是 ( A)通常情况下,禁止 Applet读、写本地文件系统 ( B)通常情况下,禁止 Applet向 Applet源主机之外的任何主机建立网络连接 ( C)通常情况下,禁止 Applet读取系统信息 ( D)通常情况下,禁 Applet加载本地库或方法 34 下列标识符 (名字 )命名原则中,正确的是 ( A)类名的首字母小写 ( B)变量和方法名的首字母大写 ( C)接口名的首字母小写 ( D)常量完全大写 35 提供 showDocument()方法,使 Applet能够请求浏览器访问特 定

18、URL的类是 ( A) Applet ( B) AppletContext ( C) JApplet ( D) URL 36 下列软件系统结构图的宽度为【 】。 37 2.【 】的任务是诊断和改正程序中的错误。 38 一个关系表的行称为【 】。 39 按 “先进后出 ”原则组织数据的数据结构是【 】。 40 数据结构分为线性结构和非线性结构,带链的队列属于【 】。 41 若想在程序中使用 JLabel类,则该程序可以使用 import【 】 JLabel;语句引入 JLabel类。 42 在 Java中, 3.14156D表示的是【 】数。 43 阅读下列代码 public class Tes

19、t2 public static void main(String args) System.out.println(5/2); 其执行结果是【 】。 44 阅读下列代码段 int x=3; while(x 9) x+=2; x+; while语句成功执行的次数是【 】。 45 Java不 直接支持多继承,但可以通过【 】实现多继承。 46 在下列程序的下划线处,填入适当语句使程序能正确执行并输出异常栈信息。 public class ThrowableException public static void main(String args try throw new Throwable(“

20、这里是本人定义的异常 ”); catch(Throwable e) System.out.println(“Caught Throwable“); System.out.println(“e.getMessage(): “+e getMessage(); System.out.println(“e.toString(): “+e.toString(); System.out.println( “e.printStackTrace():“); 【 】 ; 47 在 java.io包中有某个类同时实现了 DataInput接口和 DataOutput接口,这个类是【 】。 48 在 Java程序中

21、,主线程一般具有【 】优先级。 49 当实现 Runnable接口时,要实现的方法是【 】。 50 mouseDragged()方法是 MouseMotionListener接口中的抽象方法,该方法的参数是【 】类。 2006年 9月国家二级( JAVA)笔试真题试卷答案与解析 1 【正确答案】 D 【试题解析】 编程风格是在不影响性能的前提下,有效地编排和组织程序,以提高可读性和可维护性。更直接地说, 风格就是意味着要按照规则进行编程。这些规则包括: (1)程序文档化。就是程序文档包含恰当的标识符、适当的注解和程序的视觉组织等。 (2)数据说明。出于阅读理解和维护的需要,最好使模块前的说明语

22、句次序规范化。此外,为方便查找,在每个说明语句的说明符后,数据名应按照字典顺序排列。 (3)功能模块化。即把源程序代码按照功能划分为低耦合、高内聚的模块。 (4)注意 goto语句的使用。合理使用 goto语句可以提高代码的运行效率,但 goto语句的使用会破坏程序的结构特性。因此,除非确实需要,否则最好不使用 goto语句。因此,本 题的正确答案是 D。 2 【正确答案】 A 【试题解析】 从工程管理的角度看,软件设计可分为概要设计和详细设计两大步骤。概要设计是根据需求确定软件和数据的总体框架;详细设计是将其进一步精化成软件的算法或表示和数据结构。而在技术上,概要设计和详细设计又由若干活动组

23、成,包括总体结构设计 /数据设计和过程设计。因此,本题的正确答案是A。 3 【正确答案】 C 【试题解析】 软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时期又进一步划分为若干个阶段。软件定义时期的基本任务是确定软件系统 的工程需求。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期是具体设计和实现在前一时期定义的软件,它通常由下面五个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要。即当软件在使用过程中发现错误时应加以改正;当环境改变时应该修改软件,以适应新的环境;当用户有新要求时应该及时改进软件,以

24、满足用户的新要求。根据上述对软件生命周期的介绍,可知选项 C中的软件维护不是软件生命周期开发阶段的任务。因此,本题的正确答案是 C。 4 【正确答案 】 B 【试题解析】 数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式也称子模式或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。内模式也称存储模式或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方法的描述。根据上述介绍可知,数据库系统中用户所见到的数据模式为外模式。因此,本题的正确答案是 B

25、。 5 【正确答案】 D 【试题解析】 数据库的 生命周期可以分为两个阶段:一是数据库设计阶段;二是数据库实现阶段。数据库的设计阶段又分为如下四个子阶段:需求分析、概念设计、逻辑设计和物理设计。 因此,本题的正确答案是 D。 6 【正确答案】 C 【试题解析】 本题考查数据库的关系代数运算。 R表中只有一个域名 A,有两个记录 (也叫元组 ),分别是 m和 n; S表中有两个域名,分别是 B和 C,其所对应的记录分别为 1和 3。注意观察表 T,它是由 R的第一个记录依次与 S的所有记录组合,然后再由 R的第二个记录与 S的所有记录组合,形成的一个新表。上述运算恰恰符合关系代数 的笛卡儿积运算

26、规则。关系代数中,笛卡儿积运算用 “”来表示。因此,上述运算可以表示为 T=RS。因此,本题的正确答案为 C。 7 【正确答案】 D 【试题解析】 时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。人们都希望选择一个既省存储空间、又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就 是说时间复杂度和空间复杂度之间虽然经常矛盾,但是二者不存在必然的联系。因此,选项 A、 B、 C的说法都是错

27、误的。故本题的正确答案是 D。 8 【正确答案】 B 【试题解析】 在长度为 64的有序线性表中,其中的 64个数据元素是按照从大到小或从小到大的顺序有序排列的。在这样的线性表中进行顺序查找,最坏的情况就是查找的数据元素不在线性表中或位于线性表的最后。按照线性表的顺序查找算法,首先用被查找的数据和线性表的第一个数据元素进行比较,若相等,则查找成功,否则,继续进行比较,即和线性表的第二个数据元素进行比较 。同样,若相等,则查找成功,否则,继续进行比较。依次类推,直到在线性表中查找到该数据或查找到线性表的最后一个元素,算法才结束。因此,在长度为 64的有序线性表中进行顺序查找,最坏的情况下需要比较

28、 64次。因此,本题的正确答案为 B。 9 【正确答案】 B 【试题解析】 数据库产生的背景就是计算机的应用范围越来越广泛,数据量急剧增加,对数据共享的要求越来越高。共享的含义是多个用户、多种语言、多个应用程序相互覆盖地使用一些公用的数据集合。在这样的背景下,为了满足多用户、多应用共享数据的要求,就出现了数据库 技术,以便对数据库进行管理。因此,数据库技术的根本目标就是解决数据的共享问题。故选项 B正确。 10 【正确答案】 A 【试题解析】 二叉树的中序遍历递归算法为:如果根不空,则 (1)按中序次序访问左子树: (2)访问跟结点; (3)按中序次序访问右子树。否则返回。本题中,根据中序遍历

29、算法,应首先按照中序次序访问以 C为根结点的左子树,然后再访问根结点 F,最后才访问以 E为根结点的右子树。遍历以 C为根结点的左子树同样要遵循中序遍历算法,因此中序遍历结果为 ACBD;然后遍历根结点 F;遍历以 E为根结点的右子树,同 样要遵循中序遍历算法,因此中序遍历结果为 EG。最后把这三部分的遍历结果按顺序连接起来,中序遍历结果为 ACBDFEG。因此,本题的正确答案是 A。 11 【正确答案】 A 【试题解析】 运行 Java的 JDK一共包含五个目录,分别是: bin目录,该目录包含 Java编译器、解释器和许多工具 (如服务器工具、 IDL、 package工具等 ); lib

30、目录,该目录包含 Java库文件 jre目录,该目录是 Java程序运行环境的根目录,它下面包含 bin子目录,包括平台所用工具和库的可执行文件以及 DLL文件;demo目录 ,该目录包含源代码的程序示例; include目录,该目录包含 Win32子目录,都是本地方法的文件。因此,本题的正确答案是 A。 12 【正确答案】 A 【试题解析】 Java是新一代编程语言,具有很多特点:简单易学;利用面向对象技术:分布式计算:健壮性 (鲁棒性 );安全性;跨平台 (即体系结构中立 ):可移植性:解释执行;高性能;多线程;动态性。因此,本题的正确答案是 A。 13 【正确答案】 A 【试题解析】 J

31、ava的核心包一共有 12个,其中: java.lang包中封装了所有编程应用的基本类; java.util包提供实用程序类和集合类,如系统特性定义和使用、日期函数类、集合等常用工具; java.applet包为 Applet提供执行需要的所有类,。主要是访问 Applet内容的通信类。 java.rmi包提供程序远程方法调用所需的类。因此,本题的正确答案是 A。 14 【正确答案】 C 【试题解析】 Java程序中使用 import关键字导入一个包中的类。在一个 Java源程序中,可以有 0个或多 个 import语句,但是必须在所有类定义之前引入标准类。因此,本题中选项 C的说法是错误的。

32、 15 【正确答案】 B 【试题解析】 javac.exe是 Java编译器,能将源程序代码编译成字节码,以 .class扩展名存入 Java工作目录中。它的命令格式为: javac选项 文件名。其中 选项 包括几下几个: -g 输出文件中加行号以及局部变量信息,为调试程序时用。 -o 对类文件进行优化编译。 -nowarn 关闭警告信息,只显示错误信息。 -verbose 显示源代码文件和字节码文件的相关信息。 -d目录 指定存放生成的类 (.class)文件的位置 根据上述介绍可知,在编译 Java程序时,可以通过选项 -d来指定生成的 .class文件的位置。因此,本题的正确答案是 B。

33、 16 【正确答案】 B 【试题解析】 本题考查的是 Java的基本数据类型及其运算。程序开始生成了一个字符型变量 a和 3个整型变量 i、 j、 aa。而整型变量 aa的初始值是 a+i,其中 a是一个字符型变量。如何进行加法运算呢 ?Java语言规定, char型数据可以 自动转换成 int类型,转换的结果就是该字符的 ASCII码值。因此,整型变量 aa的初始值为字符 “h”的 ASCH码值加上 100。如果记住 h的 ASCII码值是 104,则直接就确定 aa的初始值是 204,选项 B为正确答案。 如果记不得 h的 ASCII码,题目中则给出提示。题目中说 “输出结果的第二行为bb

34、=a”,也就是字符比的值为字符 a, bb的生成语句是 char bb; (char)j,是把整型变量 j的值强制转换为字符型。同样,把 ASCH码值为 j(97)所对应的字符赋值给比。显然,字符 a的 ASCII码值为 97, 字符 b的 ASCII码值为 98,依次类推,字符 h的 ASCII码为 104。 因此,本题的正确答案是 B。 17 【正确答案】 C 【试题解析】 本题考查的是 Java语言中运算符的特殊用法。相等比较运算符“ ”,不仅可用于基本类型的数据之间的比较,还可以用于复合数据类型之间的比较。但是,对于复合类型数据的 “ ”运算,其比较的目标是两个操作数是否是同一个对象。

35、如果需要比较两个对象的值是否相同,则可以调用 equals()方法。题目中函数 equalsMethodl()的代码非常简单,首先生成两个字符串对 象 s1和 s2,然后输出表达式 “s1=s2”的结果。根据上面介绍的相等比较运算符的用法,字符串对象 s1和 s2是复合数据类型,因此表达式 “s1=s2”比较的是 s1和 s2是否同一个对象。显然, s1和 s2虽然具有相同的值,即 “how are you”,但它们是两个不同的对象。因此,本题的正确答案是 C。 18 【正确答案】 D 【试题解析】 本题考查的是条件分支语句 if-else。 if-else根据判定条件的真假来执行两种操作中的

36、一种。当条件为真时,执行 if语句后面的代码块;当条件为假时,执行 else后面的 代码块。题目中的代码段是一个 if-else的嵌套语句,根据 if-else语句的执行过程来进行分析。当 x的值为 0时,布尔表达式 “x=0”的结果为真,就输出 “冠军 ”;当 x的值不为 0时,则执行 else语句中的内容。 else语句中的代码又是一个 if-else语句,还是和上面一样进行分析。当 x的值不等于 0且大于 -3时,布尔表达式 “x -3”的结果为真,输出 “亚军 ”;当 x的值不等于 0且不大于 -3,也就是 x的值不等于 0同时 x的值小于等于 -3时,则输出 “季军 ”。经过上述分析

37、可知,要想输出 “季军 ”, x所满足的条件为 x!=0&x =-3,但是当 x =-3时, x的值一定不会为 0。所以, x所满足的条件可以简写为 x =-3。因此,本题的正确答案为 D。 19 【正确答案】 C 【试题解析】 本题考查的是构造方法的使用。 Java浯言中,构造方法是一种特殊的方法,是为对象初始化操作编写的方法,用它来定义对象的初始状态。 Java中的每个类都有构造方法,它也是由方法名、参数和方法体组成的。构造方法有如下特点: 构造方法的名字必须与类名相同。 构造方法不返回任何数据,但不用 void来声明。 用户不能直接调用构造 方法,必须通过关键字 new自动调用。 构造方

38、法可由用户在类中定义,默认时由 Java语言自动生成。但它是个空方法,变量被赋予该数据类型的默认值。 在构造方法实现中,可以进行方法重载,即定义多个构造方法。重载构造方法的目的是使类具有不同的初始值,为类对象的初始化提供方便。 根据上述构造方法的特点可知,本题选项 C的说法是错误的。 20 【正确答案】 A 【试题解析】 题目中的代码段比较长,因此首先要看懂代码所完成的功能,然后再进行选择。这段代码的功能是让用户输入两个数,然后比较这两 个数,最后输出比较结果。程序开始生成三个字符串变量和两个数值型变量,然后要求用户根据屏幕上显示的提示信息输入数据。由于读取进来的原始数据是字符串,而程序所要的

39、是数值型数据,因此调用 Integer类的 parseInt()方法进行转换。后面就对两个数进行比较,并把最后要输出的比较结果放到字符串变量 result中。 根据题目当中的提示,下划线处的语句所完成的操作就是初始化 result变量。因为 result是一个字符串类型的变量,初始化这种类型的变量是要给它赋一个字符串常量。所以,选项 B是错的, null根本 就不是字符串类型的数据。另外,由于result中存放的是比较结果,而不是用户输入的数据,因此不能把 number1或number2的值作为 result的初始值。因此,选项 C和 D也是不对的。选项 A当中的 ”是一个空串,虽然这个字符串

40、中不包含任何字符,但它是一个字符串常量。 因此,本题的正确答案是 A。 21 【正确答案】 B 【试题解析】 本题考查的是 Java增量运算符 “+”。增量运算符 “+”是对操作数加 1,如果对浮点数进行增量操作,则结果为加 1.0。 +op和 op+的结果都为op=op+1。但是,如果将增量运算表达式再作为其他表达式的操作数使用时, x+和 +x,它们是有区别的: x+是先使用后加 1。首先使用 x的值进行表达式的计算,然后才对 x的值加 1。 +x是先加 1后使用。首先对 x的值加 1,然后使用 x的值进行表达式的计算。本题源程序代码很简单,首先生成一个整型变量 c,其初始值为 5。第一条

41、输出语句输出 c的初始值,即 5。然后,第二条输出表达式 c+的结果。根据上述介绍的增量运算符的用法,先输出 c的值,然后才对 c的值加1。因此,第二条输出语句输出的是 5,输出后 c的结果才为 6。最后一条输出语句显然 输出结果为 6。因此,本题的正确答案为 B。 22 【正确答案】 D 【试题解析】 本题考查的是 Java中的 Applet以及 Applt与 Application的区别。选项 A, Applet的运行方式和 Java Application不同,但是 Applet在运行前也必须被编译为类文件,这点和 Application是一样的。因此,它们都用 javac进行编译。因此

42、,选项 A的说法是正确的。选项 B,在每个应用程序 Application中可以包含多个方法,但应用程序都是以 main()方法为入口点执行,因此必须有且只能有一个 main方法。故选项 B的说法是正确的。选项 C, Applet是能够嵌入HTML语言中,并能够在浏览器中运行的类。 Applet的运行环境是 Web浏览器,所以必须建立 HTML文件,告诉浏览器如何加载与运行 Applet。所以,选项 C的说法是正确的。选项 D,根据选项 C的分析, Applet是不能直接通过 Java命令行启动运行的。因此,选项 D的说法是错误的。 23 【正确答案】 D 【试题解析】 本题考查线程的基本知识

43、。选项 A,线程与进程在概念上是相关的,线程是由表示程序运行状态的寄存器、程序计数器、 栈指针以及堆栈组成,它不包含进程地址空间中的代码和数据。因此,选项 A的说法是错误的。选项B,代码所操作的数据是 Java线程模型中的一个组成部分,数据与代码是独立的。数据可以被多个线程共享,也可不共享。因此,选项 B的说法是错误的。选项 C, Java语言中提供两种创建线程的方法,一种是通过继承 Thread类创建线程,另一种是通过实现 Runnable接口来创建线程。因此,选项 C的说法是错误的。选项 D,在多线程的程序中,当多个线程并发执行时,虽然各个线程中语句的执行顺序是确定的,但线程的相对执行顺序

44、是不确定的。这种线 程运行顺序的不确定性将会产生执行结果的不确定性。因此,选项 D的说法是正确的。 24 【正确答案】 C 【试题解析】 break语句最常用的用法是在 switch语句中,此外,还可以用break语句退出循环。 break语句的另外一个作用就是提供一个 “标签化中断 ”的语句,可以让程序退出任意的嵌套的花括号 中的代码块。 题目中的程序主体是一个二重 for循环的嵌套,并且用花括号 )括住了一个代码块,同时在花括号之间加了一个标签 “stop”。循环体内,当满足条件 “row=5”时,执行语句 “break stop”,即跳出 stop所指定的代码块,;并从紧跟该块的第一条语

45、句处开始执行。 下面就分析二重 for循环的执行。外层 for语句的循环变量是 row,范围是 1到10。内层 for循环,当 row不等于 5时,在字符串 output后面连接五个 “*”。内层循环结束后,再在 output的后面加一个换行符 “/n”。然后再返回到外层 for循环执行,即把 row的值加 1。当 row不等于 5时,仍然在字符串 output后面连接五个“*”和一个换行符 “/n”。当 row的值为 5时,执行 break stop语句,就跳出 stop所指 定的代码块,执行 JOPtionPane.showMessageDialog语句。经过上述分析可知,内层循环在字符串

46、 output后面连接五个 “*”和一个换行符 “/n”的操作一共进行了四次。,因此,后面输出 output结果时是四行 “* * * * *”。因此,本题的正确答案是 C。 25 【正确答案】 A 【试题解析】 处理对象传输就是把对象串行化。 Java语言中,如果要串行化某些类的对象,这些类就必须实现 Serializable接口。因此,本题的正确答案是 A。 26 【正确答案】 C 【试题 解析】 本题考查 Java语言的输入 /输出流。选项 A的 InputStream类、选项 B、的 FilelnputStream类、选项 D的 BufferedReader类都是 Java语言中和输入

47、输出直接相关的类,不属于辅助类,因此可以直接判断出选项 C为正确答案。 另一方面,我们也可以详细分析每个选项。题目中要求读取二进制数据文件的记录,因此要使用字符输入流。选项 A的 InputStream是 java.io包中的抽象类,是所有字节输入流的父类。题目要求的是字符输入流,显然,选项 A不对。选项B的 FileInputStream是一个字节输入流,它可以对一个磁盘文件涉及的数据进行处理。和选项 A一样,选项 B是错的。选项 C的 StringBuffer是一个表示可变长度字符串的类,在读取文件时并不知道读取字符的具体长度,因此为 StringBuffer类对象分配的内存会自动扩展从而

48、容纳新增的字符,这提高了读取的效率。所以, StringBuffer是一个可以提高读取文件效率的辅助类。故选项 C是正确答案。选项 D的 BufferedReader虽然是一个字符输入流,用于从字符输入流中读取文本并将字符存入缓冲区。但是, BufferedReader直接用于文件的读取,不起辅助作用。所以,选项 D是错误的。 27 【正确答案】 C 【试题解析】 本题考查线程的基本控制。 Thread类提供的基本线程控制方法包括: sleep()一使比其低的优先级线程运行,可以让一个线程暂停运行一段固定的时间: yield()使具有与当前线程相同优先级的线程有运行的机会; join()使当前线程暂停执行,等待调用该方法的线程结束后,再恢复执行: interrupt()中断线程的阻塞状态,并且线程接收到 InterruptException异常;根据上 述介绍可知,只有 yield()方法可以使当前同级线程重新获得运行机会。因此,本题的正确答案是 C。 28 【正确答案】 D 【试题解析】 本题考查线程的创建。 Java语言中提供两种创建线程的方法,一种是通过实现

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1