《2006年9月全国计算机二级Java考试真题及答案.doc》由会员分享,可在线阅读,更多相关《2006年9月全国计算机二级Java考试真题及答案.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2006年9月全国计算机二级Java考试真题及答案(考试时间90分钟,满分100分)一、选择题下列各题A) 、B) 、C) 、D) 四个选项中,只有一个选项是正确的。(1)下列选项中不符合良好程序设计风格的是A) 源程序要文档化B) 数据说明的次序要规范化C) 避免滥用goto语句D) 模块设计要保证高耦合、高内聚(2)从工程管理角度,软件设计一般分为两步完成,它们是A) 概要设计与详细设计B) 数据设计与接口设计C) 软件结构设计与数据设计D) 过程设计与数据设计(3)下列选项中不属于软件生命周期开发阶段任务的是A) 软件测试B) 概要设计C) 软件维护D) 详细设计(4)在数据库系统中,用
2、户所见的数据模式为A) 概念模式B) 外模式C) 内模式D) 物理模式(5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和A) 编码设计B) 测试阶段C) 运行阶段D) 物理设计(6)设有如下三个关系表 下列操作中正确的是A) T=RSB) T=RSC) T=RSD) T=R/S(7)下列叙述中正确的是A) 一个算法的空间复杂度大,则其时间复杂度也必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空间复杂度必定小D) 上述三种说法都不对(8)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A) 63B) 64C) 6D) 7(9
3、)数据库技术的根本目标是要解决数据的A) 存储问题B) 共享问题C) 安全问题D) 保护问题(10)对下列二叉树进行中序遍历的结果是A) ACBDFEGB) ACBDFGEC) ABDCGEFD) FCADBEG(11)运行Java程序需要的工具软件所在的目录是A) JDK的bin目录B) JDK的demo目录C) JDK的lib目录D) JDK的jre目录(12)下列关于Java语言特点的叙述中,错误的是A) Java是面向过程的编程语言B) Java支持分布式计算C) Java是跨平台的编程语言D) Java支持多线程(13)Java的核心包中,提供编程应用的基本类的包是 A) java.
4、langB) java.utilC) java.appletD) java.rmi(14)下列关于Java对import语句规定的叙述中,错误的是A) 在Java程序中import语句可以有多个B) 在Java程序中import语句可以没有C) 在Java程序中import语句必须有一个D) 在Java程序中import语句必须引入在所有类定义之前(15)在编译Java程序时,用于指定生成class文件位置的选项是A) -gB) -dC) -verboseD) -nowarn(16)阅读下面程序import java.io.*;public class TypeTransitionpublic
5、 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=IB) aa=204C) aa=vD) aa=156(17)阅读下面程序public class OperatorsAndExpressionsvoid equalsMethodl()String s1=new String(how are
6、you);String s2=new String(how are you);System.out.println(s1=s2);public static void main(String args)OperatorsAndExpressionsOperAndExp=new OperatorsAndExpressions();/用于复合类型数据的“=”运算符OperAndExp.equalsMethod1(); 程序运行结果是A) B) trueC) falseD) equal(18)阅读下面代码if(x=0)System.out.println(冠军);else if(x-3)System
7、.out.println(“亚军”);else System.out.println(“季军”);若要求打印字符串“季军”,则变量x的取值范围是A) x=0 & x=-3B) x0C) x-3D) x=-3(19)下列关于构造方法的叙述中,错误的是A) Java语言规定构造方法名与类名必须相同B) Java语言规定构造方法没有返回值,但不用void声明C) Java语言规定构造方法不可以重载D) Java语言规定构造方法只能通过new自动调用(20)阅读下面程序import javax.swing.JOptionPane;public class Comparisonpublic static
8、 void main(String args)String firstNumber,/用户输入第1个数据变量second Number, /用户输入第2个数据变量result;/输出结果变量int number1,/用于比较的第1个数number2;/用于比较的第2个数/用户输入第1个数据的字符串firstNumber=JOptionPane. showInputDialog(“输入第1个整数:”);/用户输入第2个数据的字符串secondNumber=JOptionPane.showlnputDialog(“输入第2个整数:”);/将字符串转换为整数类型number1=Integer.par
9、seInt(firstNumber);number2=Integer.parseInt(secondNumber);/初始化结果变量/比较两个数据if(number1number2) result += number1 + = + number2; if(number1 != number2 ) result += numberl + != + number2; if( number1 number2 )result = result + n + numberl + + number2;if(number1 number2 )result = result + n + number1 + +
10、number2;if( number1 = number2 )result = result + n + number1 + = + number2;if (number1 = number2 )result = result + n + number1 + = + number2;/显示结果JOptionPane.showMessageDialog(null,result, 比较结果, JOptionPane. INFORMATION_MESSAGE);System.exit(0);为使程序能正确运行并得到合理的输出结果,初始化结果变量语句(下划线处)应是 A) result = B) re
11、sult = null C) result = number1 D) result = number2(21) 阅读下面程序 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) 通常
12、情况下Java Application 只能有一个main()方法 C) Java Applet 必须有HTML文件才能运行 D) Java Applet程序的.class文件可用java命令运行(23)下列关于Java语言中线程的叙述中,正确的是A) 线程是由代码、数据、内核状态和一组寄存器组成B) 线程间的数据是不共享的C) 用户只能通过创建Thread类的实例或定义、创建Thread子类的实例建立和控制自己的线程D) 因多线程并发执行而引起的执行顺序的不确定性可能造成执行结果的不确定(24)阅读下面程序import javax.swing.JOptionPane;public class
13、 BreakLabelTest public static void main (String args)String output= ;stop: for(int row=1;row10;row+) for(int column=1;column=5;column+) if(row5) break stop; output+= * ;output+= n ; output+=nLoops terminated normally; JOptionPane.showMessageDialog( null,output,用一个标志测试break语句”, JOptionPane.INFORMATIO
14、N_MESSAGE); System.exit(0); 程序运行结果是A) 窗口中有5行* * * * *B) 窗口中有5行* * * *C) 窗口中有4行* * * * *D) 窗口中有6行* * * * *(25)处理对象传输的接口是A) SerializableB) CloneableC) ItemListenerD) ActionListener (26)在读取二进制数据文件的记录时,为了提高效率常常使用一种辅助类A) InputStreamB) FileInputStreamC) StringBufferD) BufferedReader(27)可以使当前同级线程重新获得运行机会的方
15、法是A) sleep()B) join()C) yield()D) interrupt()(28)阅读下面程序1 public class Try extends Thread2public static void main(String args)3 Try t=new Try();4 t.start();5 67public void run(int j)8 int i=0;9 while(i5)10 System.out.println(“祝你成功!”);11 i+;12 13 14该程序要求打印5行“祝你成功!”,必须改正程序中的某行代码,程序才能完成。选择正确的修改是A) 将第1行的
16、extends Thread改为implements RunnableB) 将第3行的new Try()改为new Thread()C) 将第4行t.start()改为start(t)D) 将第7行的public void run(int j)改为public void run()(29)下列事件监听器中,无法对TextField对象进行事件监听和处理的是A) ActionListenerB) FocusListenerC) MouseMotionListenerD) ChangeListener(30)Swing的选项面板是A) JTabbedPaneB) JLayeredPaneC) JS
17、crollPaneD) JSplitPane(31)每个Java小应用程序必须定义为A) Applet类或JApplet类的子类B) JFrame类的子类 C) Frame的子类D) Window的子类(32)在Applet的init()方法被调用后,接下来最先被调用的方法是A) run()B) start()C) stop()D) destroy()(33)下列关于Applet的安全限制的叙述中,错误的是A) 通常情况下,禁止Applet读、写本地文件系统B) 通常情况下,禁止Applet向Applet源主机之外的任何主机建立网络连接C) 通常情况下,禁止Applet读取系统信息D) 通常情
18、况下,禁 Applet加载本地库或方法(34)下列标识符(名字)命名原则中,正确的是A) 类名的首字母小写B) 变量和方法名的首字母大写C) 接口名的首字母小写D) 常量完全大写(35)提供showDocument()方法,使Applet能够请求浏览器访问特定URL的类是A) AppletB) AppletContextC) JAppletD) URL二、填空题请将每一个空的正确答案写在【1】【15】序号的横线上。注意:以命令关键字填空的必须拼写完整。(1)下列软件系统结构图的宽度为 【1】 。(2) 【2】 的任务是诊断和改正程序中的错误。(3)一个关系表的行称为 【3】 。(4)按“先进后
19、出”原则组织数据的数据结构是 【4】 。 (5)数据结构分为线性结构和非线性结构,带链的队列属于 【5】 。(6)若想在程序中使用JLabel类,则该程序可以使用import 【6】 JLabel;语句引入 JLabel类。(7)在Java中,3.14156D表示的是 【7】 数。(8)阅读下列代码public class Test2public static void main(String args)System.out.println(5/2);其执行结果是 【8】 。(9)阅读下列代码段int x=3;while(x9) x+=2;x+;while语句成功执行的次数是 【9】 。(10
20、)Java不直接支持多继承,但可以通过 【10】 实现多继承。(11)在下列程序的下划线处,填入适当语句使程序能正确执行并输出异常栈信息。public class ThrowableExceptionpublic static void main(String args try throw new Throwable(“这里是本人定义的异常”); catch(Throwable e) System.out.println(Caught Throwable); System.out.println(e.getMessage(): +egetMessage(); System.out.printl
21、n(e.toString():+e.toString(); System.out.println( e.printStackTrace():); 【11】 ;(12)在java.io包中有某个类同时实现了DataInput接口和DataOutput接口,这个类是 【12】 。(13)在Java程序中,主线程一般具有 【13】 优先级。(14)当实现Runnable接口时,要实现的方法是 【14】 。(15)mouseDragged()方法是MouseMotionListener接口中的抽象方法,该方法的参数是 【15】 类。答案解析一、选择题(1) 答案D解析 编程风格是在不影响性能的前提下,
22、有效地编排和组织程序,以提高可读性和可维护性。更直接地说,风格就是意味着要按照规则进行编程。这些规则包括:(1)程序文档化。就是程序文档包含恰当的标识符、适当的注解和程序的视觉组织等。(2)数据说明。出于阅读理解和维护的需要,最好使模块前的说明语句次序规范化。此外,为方便查找,在每个说明语句的说明符后,数据名应按照字典顺序排列。(3)功能模块化。即把源程序代码按照功能划分为低耦合、高内聚的模块。(4)注意goto语句的使用。合理使用goto语句可以提高代码的运行效率,但goto语句的使用会破坏程序的结构特性。因此,除非确实需要,否则最好不使用goto语句。因此,本题的正确答案是D。(2) 答案
23、A解析 从工程管理的角度看,软件设计可分为概要设计和详细设计两大步骤。概要设计是根据需求确定软件和数据的总体框架;详细设计是将其进一步精化成软件的算法或表示和数据结构。而在技术上,概要设计和详细设计又由若干活动组成,包括总体结构设计/数据设计和过程设计。因此,本题的正确答案是A。(3) 答案C解析 软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时期又进一步划分为若干个阶段。软件定义时期的基本任务是确定软件系统的工程需求。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期是具体设计和实现在前一时期定义的软件,它通常由下面五个阶段组成:概要设计、详细设计、编写代码、组
24、装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要。即当软件在使用过程中发现错误时应加以改正;当环境改变时应该修改软件,以适应新的环境;当用户有新要求时应该及时改进软件,以满足用户的新要求。根据上述对软件生命周期的介绍,可知选项C中的软件维护不是软件生命周期开发阶段的任务。因此,本题的正确答案是C。(4) 答案B解析 数据库管理系统的三级模式结构由外模式、模式和内模式组成。外模式也称子模式或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。模式也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。内模式也称存储模式或物理模式
25、,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方法的描述。根据上述介绍可知,数据库系统中用户所见到的数据模式为外模式。因此,本题的正确答案是B。(5) 答案D解析 数据库的生命周期可以分为两个阶段:一是数据库设计阶段;二是数据库实现阶段。数据库的设计阶段又分为如下四个子阶段:需求分析、概念设计、逻辑设计和物理设计。 因此,本题的正确答案是D。(6) 答案C解析 本题考查数据库的关系代数运算。R表中只有一个域名A,有两个记录(也叫元组),分别是m和n;S表中有两个域名,分别是B和C,其所对应的记录分别为1和3。注意观察表T,它是由R的第一个记录依次与S的所有记录组合,然后再
26、由R的第二个记录与S的所有记录组合,形成的一个新表。上述运算恰恰符合关系代数的笛卡儿积运算规则。关系代数中,笛卡儿积运算用“”来表示。因此,上述运算可以表示为T=RS。因此,本题的正确答案为C。(7) 答案D解析 时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。人们都希望选择一个既省存储空间、又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾,
27、但是二者不存在必然的联系。因此,选项A、 B、C的说法都是错误的。故本题的正确答案是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目录,该目录包含Java库文件jre目录,该目录是Java程序运行环境的根目录
30、,它下面包含 bin子目录,包括平台所用工具和库的可执行文件以及DLL文件;demo目录,该目录包含源代码的程序示例;include目录,该目录包含Win32子目录,都是本地方法的文件。因此,本题的正确答案是A。(12)答案A解析 Java是新一代编程语言,具有很多特点:简单易学;利用面向对象技术:分布式计算:健壮性(鲁棒性);安全性;跨平台(即体系结构中立):可移植性:解释执行;高性能;多线程;动态性。因此,本题的正确答案是A。(13)答案A解析 Java的核心包一共有12个,其中:java.lang包中封装了所有编程应用的基本类;java.util包提供实用程序类和集合类,如系统特性定义和
31、使用、日期函数类、集合等常用工具;java.applet包为Applet提供执行需要的所有类,。主要是访问Applet内容的通信类。java.rmi包提供程序远程方法调用所需的类。因此,本题的正确答案是A。(14)答案C解析 Java程序中使用import关键字导入一个包中的类。在一个Java源程序中,可以有0个或多个import语句,但是必须在所有类定义之前引入标准类。因此,本题中选项C的说法是错误的。(15)答案 B解析 javac.exe是Java编译器,能将源程序代码编译成字节码,以.class扩展名存入Java工作目录中。它的命令格式为:javac选项文件名。其中选项包括几下几个:-
32、g输出文件中加行号以及局部变量信息,为调试程序时用。-o 对类文件进行优化编译。-nowarn关闭警告信息,只显示错误信息。 -verbose显示源代码文件和字节码文件的相关信息。-d目录指定存放生成的类(.class)文件的位置根据上述介绍可知,在编译Java程序时,可以通过选项-d来指定生成的.class文件的位置。因此,本题的正确答案是B。(16)答案B解析 本题考查的是Java的基本数据类型及其运算。程序开始生成了一个字符型变量a和3个整型变量i、j、aa。而整型变量aa的初始值是a+i,其中a是一个字符型变量。如何进行加法运算呢?Java语言规定,char型数据可以自动转换成int类
33、型,转换的结果就是该字符的ASCII码值。因此,整型变量aa的初始值为字符“h”的 ASCH码值加上100。如果记住h的ASCII码值是104,则直接就确定aa的初始值是 204,选项B为正确答案。如果记不得h的ASCII码,题目中则给出提示。题目中说“输出结果的第二行为bb=a”,也就是字符比的值为字符a,bb的生成语句是char bb;(char)j,是把整型变量j的值强制转换为字符型。同样,把ASCH码值为j(97)所对应的字符赋值给比。显然,字符a的ASCII码值为97,字符b的ASCII码值为98,依次类推,字符h的ASCII码为104。因此,本题的正确答案是B。(17)答案C解析
34、本题考查的是Java语言中运算符的特殊用法。相等比较运算符“”,不仅可用于基本类型的数据之间的比较,还可以用于复合数据类型之间的比较。但是,对于复合类型数据的“”运算,其比较的目标是两个操作数是否是同一个对象。如果需要比较两个对象的值是否相同,则可以调用equals()方法。题目中函数equalsMethodl()的代码非常简单,首先生成两个字符串对象s1和s2,然后输出表达式“s1=s2”的结果。根据上面介绍的相等比较运算符的用法,字符串对象s1和s2是复合数据类型,因此表达式“s1=s2”比较的是s1和s2是否同一个对象。显然,s1和s2虽然具有相同的值,即“how are you”,但它
35、们是两个不同的对象。因此,本题的正确答案是C。(18)答案D解析 本题考查的是条件分支语句if-else。if-else根据判定条件的真假来执行两种操作中的一种。当条件为真时,执行if语句后面的代码块;当条件为假时,执行else后面的代码块。题目中的代码段是一个if-else的嵌套语句,根据if-else语句的执行过程来进行分析。当x的值为0时,布尔表达式“x=0”的结果为真,就输出“冠军”;当x的值不为0时,则执行else语句中的内容。else语句中的代码又是一个if-else语句,还是和上面一样进行分析。当x的值不等于0且大于-3时,布尔表达式“x-3”的结果为真,输出“亚军”;当x的值不
36、等于0且不大于-3,也就是x的值不等于0同时x的值小于等于-3时,则输出“季军”。经过上述分析可知,要想输出“季军”, x所满足的条件为x!=0&x=-3,但是当x=-3时,x的值一定不会为0。所以,x所满足的条件可以简写为x=-3。因此,本题的正确答案为D。(19)答案C解析 本题考查的是构造方法的使用。Java浯言中,构造方法是一种特殊的方法,是为对象初始化操作编写的方法,用它来定义对象的初始状态。Java中的每个类都有构造方法,它也是由方法名、参数和方法体组成的。构造方法有如下特点:构造方法的名字必须与类名相同。构造方法不返回任何数据,但不用void来声明。用户不能直接调用构造方法,必须
37、通过关键字new自动调用。构造方法可由用户在类中定义,默认时由Java语言自动生成。但它是个空方法,变量被赋予该数据类型的默认值。在构造方法实现中,可以进行方法重载,即定义多个构造方法。重载构造方法的目的是使类具有不同的初始值,为类对象的初始化提供方便。根据上述构造方法的特点可知,本题选项C的说法是错误的。(20)答案A解析 题目中的代码段比较长,因此首先要看懂代码所完成的功能,然后再进行选择。这段代码的功能是让用户输入两个数,然后比较这两个数,最后输出比较结果。程序开始生成三个字符串变量和两个数值型变量,然后要求用户根据屏幕上显示的提示信息输入数据。由于读取进来的原始数据是字符串,而程序所要
38、的是数值型数据,因此调用Integer类的parseInt()方法进行转换。后面就对两个数进行比较,并把最后要输出的比较结果放到字符串变量result中。根据题目当中的提示,下划线处的语句所完成的操作就是初始化result变量。因为 result是一个字符串类型的变量,初始化这种类型的变量是要给它赋一个字符串常量。所以,选项B是错的,null根本就不是字符串类型的数据。另外,由于result中存放的是比较结果,而不是用户输入的数据,因此不能把number1或number2的值作为 result的初始值。因此,选项C和D也是不对的。选项A当中的”是一个空串,虽然这个字符串中不包含任何字符,但它是
39、一个字符串常量。因此,本题的正确答案是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。第一条输出语句输出c的初始值,即5。然后,第二条输出表达式c+的结果。根据上述介绍的增量运算符的
40、用法,先输出c的值,然后才对c的值加1。因此,第二条输出语句输出的是5,输出后c的结果才为6。最后一条输出语句显然输出结果为6。因此,本题的正确答案为B。(22)答案D解析 本题考查的是Java中的Applet以及Applt与Application的区别。选项A, Applet的运行方式和Java Application不同,但是Applet在运行前也必须被编译为类文件,这点和Application是一样的。因此,它们都用javac进行编译。因此,选项A的说法是正确的。选项B,在每个应用程序Application中可以包含多个方法,但应用程序都是以main()方法为入口点执行,因此必须有且只能
41、有一个main方法。故选项B的说法是正确的。选项C,Applet是能够嵌入HTML语言中,并能够在浏览器中运行的类。Applet的运行环境是Web浏览器,所以必须建立HTML文件,告诉浏览器如何加载与运行Applet。所以,选项C的说法是正确的。选项D,根据选项C的分析,Applet是不能直接通过Java命令行启动运行的。因此,选项D的说法是错误的。(23)答案D解析 本题考查线程的基本知识。选项A,线程与进程在概念上是相关的,线程是由表示程序运行状态的寄存器、程序计数器、栈指针以及堆栈组成,它不包含进程地址空间中的代码和数据。因此,选项A的说法是错误的。选项B,代码所操作的数据是Java线程
42、模型中的一个组成部分,数据与代码是独立的。数据可以被多个线程共享,也可不共享。因此,选项B的说法是错误的。选项C,Java语言中提供两种创建线程的方法,一种是通过继承Thread类创建线程,另一种是通过实现Runnable接口来创建线程。因此,选项C的说法是错误的。选项D,在多线程的程序中,当多个线程并发执行时,虽然各个线程中语句的执行顺序是确定的,但线程的相对执行顺序是不确定的。这种线程运行顺序的不确定性将会产生执行结果的不确定性。因此,选项D的说法是正确的。(24)答案C解析 break语句最常用的用法是在switch语句中,此外,还可以用break语句退出循环。break语句的另外一个作
43、用就是提供一个“标签化中断”的语句,可以让程序退出任意的嵌套的花括号中的代码块。题目中的程序主体是一个二重for循环的嵌套,并且用花括号)括住了一个代码块,同时在花括号之间加了一个标签“stop”。循环体内,当满足条件“row=5”时,执行语句“break stop”,即跳出stop所指定的代码块,;并从紧跟该块的第一条语句处开始执行。下面就分析二重for循环的执行。外层for语句的循环变量是row,范围是1到10。内层for循环,当row不等于5时,在字符串output后面连接五个“*”。内层循环结束后,再在output的后面加一个换行符“/n”。然后再返回到外层for循环执行,即把row的
44、值加1。当row不等于5时,仍然在字符串output后面连接五个“*”和一个换行符“/n”。当row的值为5时,执行break stop语句,就跳出stop所指定的代码块,执行JOPtionPane.showMessageDialog语句。经过上述分析可知,内层循环在字符串output后面连接五个“*”和一个换行符“/n”的操作一共进行了四次。,因此,后面输出output结果时是四行“* * * * *”。因此,本题的正确答案是C。(25)答案A解析 处理对象传输就是把对象串行化。Java语言中,如果要串行化某些类的对象,这些类就必须实现Serializable接口。-因此,本题的正确答案是A
45、。(26)答案C解析 本题考查Java语言的输入/输出流。选项A的InputStream类、选项B、的 FilelnputStream类、选项D的BufferedReader类都是Java语言中和输入输出直接相关的类,不属于辅助类,因此可以直接判断出选项C为正确答案。另一方面,我们也可以详细分析每个选项。题目中要求读取二进制数据文件的记录,因此要使用字符输入流。选项A的InputStream是java.io包中的抽象类,是所有字节输入流的父类。题目要求的是字符输入流,显然,选项A不对。选项B的 FileInputStream是一个字节输入流,它可以对一个磁盘文件涉及的数据进行处理。和选项A一样,选项B是错的。选项C的StringBuffer是一个表示可变长度字符串的类,在读取文件时并不知道读取字符的具体长度,因此为StringBuffer类对象分配的内存会自动扩展从而容纳新增的字符,这提高了读取的效率。所以,StringBuffer是一个可以提高读取文件效率的辅助类。故选项C是正确答案。选项D的BufferedReader虽然是一个字符输入流,用于从字符输入流中读取文本并将字符存入缓冲区。但是, BufferedReader直接用于文件的读取,不起辅助作用。所以,选项D是错误的。(27)答案C解析 本题考查线程的基本控制。Thread类提供的基本线程控制方法包括:sleep()