《2007年9月全国计算机二级Java考试真题及答案.doc》由会员分享,可在线阅读,更多相关《2007年9月全国计算机二级Java考试真题及答案.doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2007年9月全国计算机二级Java考试真题及答案(考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)下列各题A) 、B) 、C) 、D) 四个选项中,只有一个选项是正确的。(1)软件是指A) 程序 B) 程序和文档C) 算法加数据结构D) 程序、数据与相关文档的完整集合(2)软件调试的目的是A) 发现错误 B) 改正错误C) 改善软件的性能D) 验证软件的正确性(3)在面向对象方法中,实现信息隐蔽是依靠A) 对象的继承B) 对象的多态C) 对象的封装D) 对象的分类(4)下列叙述中,不符合良好程序设计风格要求的是A) 程序的效率第一,清晰第二B) 程序的可读性好C) 程序中要
2、有必要的注释D) 输入数据前要有提示信息(5)下列叙述中正确的是A) 程序执行的效率与数据的存储结构密切相关B) 程序执行的效率只取决于程序的控制结构C) 程序执行的效率只取决于所处理的数据量D) 以上三种说法都不对(6)下列叙述中正确的是A) 数据的逻辑结构与存储结构必定是一一对应的B) 由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C) 程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D) 以上三种说法都不对(7)冒泡排序在最坏情况下的比较次数是A) n(n+1)/2 B) n1og2n C) n(n-1)/2 D) n/2(8)一棵二叉树中
3、共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A) 219B) 221C) 229D) 231(9)下列叙述中正确的是A) 数据库系统是一个独立的系统,不需要操作系统的支持B) 数据库技术的根本目标是要解决数据的共享问题C) 数据库管理系统就是数据库系统D) 以上三种说法都不对(10)下列叙述中正确的是A) 为了建立一个关系,首先要构造数据的逻辑关系B) 表示关系的二维表中各元组的每一个分量还可以分成若干数据项C) 一个关系的属性名表称为关系模式D) 一个关系可以包括多个二维表(11)下列关于System类的叙述中,错误的是A) System类是一个final类B) Syst
4、em类不能实例化C) System类中没有定义属性D) System类主要提供了系统环境参数的访问(12)下列布尔变量定义中,正确并且规范的是A) BOOLEAN canceled=false;B) boolean canceled=false;C) boolean CANCELED=false;D) boolean canceled=FALSE;(13)数组中各个元素的数据类型是A) 相同的B) 不同的C) 部分相同的D) 任意的(14)内部类不可直接使用外部类的成员是A) 静态成员B) 实例成员C) 方法内定义D) 以上A、B,C都不是(15)阅读下面程序 public class Tes
5、t1 public static void main(String args) System.out.println(34+56-6); System.out.println(26*2-3); System.out.println(3*4/2); System.out.println(5/2);程序运行结果是A) 84B) 90 49 25 6 6 2 2.5C) 84D) 68 23 49 12 14 2 2.5(16)在JDK目录中,Java程序运行环境的根目录是A) binB) demoC) libD) jre(17)阅读下面程序 public class ConcatTest publ
6、ic static void main(String args) String strl = abc; String str2 = ABC; String str3 = str1.concat(str2); System.out.println(str3); 程序的运行结果是:A) abeB) ABCC) abcABCD) ABCabc(18)下列运算符中属于关系运算符的是A) = B) =C) += D) -=(19)下列语句中执行跳转功能的语句是A) for语句 B) while语句C) continue语句D) switch语句(20)下列适配器类中不属于事件适配器类的是A) Mouse
7、AdapterB) KeyAdapterC) ComponentAdapterD) FrameAdapter(21)下列运算符中不能进行位运算的是A) B) C) D) (22)阅读下面程序public class Test2 public static void main(String args) int a=1O, b=4, c=20, d=6;System.out.println(a+*b+c*-D) ; 程序运行的结果是 A) 144 B) 160C) 140 D) 164(23)阅读下面程序 public class Test3 public static void main(Str
8、ing args) int x=3, y=4, z=5; String s=xyz; System.out.primln(s+x+y+z); 程序运行的结果是A) xyzl2 B) xyz345C) xyzxyzD) 12xyz(24)下列类中属于字节输入抽象类的是A) FileInputStream B) ObjectInputStreamC) FiterInputStreamD) InputStream(25)能向内存直接写入数据的流是A) FileOutputStreamB) FileInputStreamC) ByteArrayOutputStreamD) ByteArrayInput
9、Stream(26)下面程序中需要对Employee的对象进行存储,请在下划线处填入正确选项。class Employee implements_ A) ComparableB) SerializableC) Cloneable D) Datalnput(27)阅读下面程序 public class Test4 public static Void main(String args)int i=10, j=3;float m=213.5f, n=4.0f;System.out.println(i%j);System.out.println(m%n); 程序运行的结果是A) 1.0和1.5B)
10、1和1.5C) 1.0和2.5D) 1和2.5(28)阅读下面程序 import java.io.*;public class ByteStreamTest public static void main(String A) int myArray = 10,20,30,40 ;tryDataOutputStream dos = new DataOutputStream( new_ (ints.dat);for (int i=0; imyArray, length; i+) dos.writelnt( myArrayi );dos.close();System.out.println(Have
11、 written binary file ints.dat); catch (IOException ioe) Sy stem.out.println(IO Exception); 为保证程序正确运行,在程序中下划线处应填入的代码是A) FileOutputStreamB) ByteArrayOutputStreamC) BufferedOutputStreamD) FileWriter(29)要在HTML文件中嵌入Applet,在applet标记中必须定义的是A) Applet字节码文件的URLB) Applet显示区域的高度和宽度C) Applet字节码的文件名D) B和C(30)如果要在
12、Applet中显示特定的文字、图形等信息,可以在用户定义的Applet类中重写的方法是A) paint() B) update()C) drawstring()D) drawLine()(31)如果用户定义的Applet类中没有init()方法,则该程序A) 必须定义一个main()方法B) 无法通过编译C) 可以通过编译,但运行时将出错D) 可以通过编译,并且能够正常运行 (32)阅读下面程序class Test implements Runnable public static void main(String args) Test t = new Test();t.startO; pub
13、lic void run() 下列关于上述程序的叙述正确的是A) 程序不能通过编译,因为start()方法在Test类中没有定义B) 程序编译通过,但运行时出错,提示start()方法没有定义C) 程序不能通过编译,因为run()方法没有定义方法体D) 程序编译通过,且运行正常(33)如果使用Thread t=new Test()语句创建一个线程,则下列叙述正确的是A) Test类一定要实现Runnable接口B) Test类一定是Thread类的子类C) Test类一定是Runnable的子类D) Test类一定是继承Thread类并且实现Runnable接口(34)下列方法中,声明抛出In
14、terruptedException类型异常的方法是A) suspend()B) resume()C) sleep() D) start()(35)如果线程正处于运行状态,可使该线程进入阻塞状态的方法是A) yield()B) start()C) wait() D) notify()二、填空题(每空2分,共30分)(1)软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是 【1】 。(2)在两种基本测试方法中, 【2】 测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。(3)线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性
15、表,循环队列是队列的 【3】 存储结构。(4)对下列二叉树进行中序遍历的结果为 【4】 。(5)在E-R图中,矩形表示 【5】 。(6)在Java中,所有数据类型的长度都固定,因此没有保留字 【6】 。(7)布尔逻辑运算符包括:!、&和 【7】 。(8)switch语句中,在每个case子句后进行跳转的语句是: 【8】 。(9)用户不能直接调用构造方法,只能通过 【9】 关键字自动调用。(10)Class对象由Java 【10】 自动生成。(11)下面程序运行时输出结果为 C:Program Files is a directory.请将程序补充完整。import java.io.*;publ
16、ic class DirTest public static void main(String args) File myDir = new File(C:/Program Files/); System.out.println (myDir+( 【11】 .isDirectory()?is: is not) + a directory.); (12)一个Applet在被加载到浏览器并完成初始化后,将被调用的方法是 【12】 ()。(13)Java中的线程体是由线程类的 【13】 ()方法进行定义的,线程运行时,也是从该方法开始执行。(14)AWT中的布局管理器包括BorderLayout、
17、【14】 、CardLayout、OridBagLayout和GridLayout。(15)Java中线程模型由虚拟的CPU,代码与数据构成。该模型是由java.lang. 【15】 类进行定义和描述的。答案解析一、选择题(1) 答案D解析 本题考查软件的定义。软件是计算机系统中与硬件相互依存得另一部分,它包括程序、相关数据及其说明文档得总和。因此,本题得正确答案是选项D。(2) 答案B解析 本题考查软件工程调试。调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题;测试是一个有计划的,可以重复的过程,它的目的是为
18、了发现软件中的问题。因此,软件调试的目的是为了改正软件中的错误。本题的正确答案是选项B。(3) 答案C解析 通常认为,面向对象方法具有封装性、继承性、多态性几大特点。就是这几大特点,为软件开发提供了一种新的方法学。封装性:所谓封装就是将相关的信息、操作与处理融合在一个内含的部件中(对象中)。简单地说,封装就是隐藏信息。这是面向对象方法的中心,也是面向对象程序设计的基础。继承性:子类具有派生它的类的全部属性(数据)和方法,而根据某一类建立的对象也都具有该类的全部,这就是继承性。继承性自动在类与子类间共享功能与数据,当某个类作了某项修改,其子类会自动改变,子类会继承其父类所有特性与行为模式。继承有
19、利于提高软件开发效率,容易达到一致性。多态性:多态性就是多种形式。不同的对象在接收到相同的消息时,采用不同的动作。例如,一个应用程序包括许多对象,这些对象也许具有同一类型的工作,但是却以不同的做法来实现。不必为每个对象的过程取一过程名,造成复杂化,可以使过程名复用。同一类型的工作有相同的过程名,这种技术称为多态性。经过上述分析可知,在面向对象方法中,实现信息隐蔽是依靠对象的封装。正确答案是选项C。(4) 答案A解析 本题考查软件工程的程序设计风格。软件在编码阶段,力求程序语句简单、直接,不能只为了追求效率而使语句复杂化。除非对效率有特殊的要求,程序编写要做到清晰第一、效率第二。人们在软件生存期
20、要经常阅读程序,特别是在软件测试和维护阶段,编写程序的人和参与测试、维护的人都要阅读程序,因此要求程序的可读性要好。正确的注释能够帮助读者理解程序,可为后续阶段进行测试和维护提供明确的指导。所以注释不是可有可无的,而是必须的,它对于理解程序具有重要的作用。I/O信息是与用户的使用直接相关的,因此它的格式应当尽可能方便用户的使用。在以交互式进行输入/输出时,要在屏幕上使用提示符明确提示输入的请求,指明可使用选项的种类和取值范围。经过上述分析可知,选项A是不符合良好程序设计风格要求的。(5) 答案A解析 本题考查程序效率。程序效率是指程序运行速度和程序占用的存储空间。影响程序效率的因素是多方面的,
21、包括程序的设计、使用的算法、数据的存储结构等。在确定数据逻辑结构的基础上,选择一种合适的存储结构,可以使得数据操作所花费的时间少,占用的存储空间少,即提高程序的效率。因此,本题选项A的说法是正确的。(6) 答案D解析 本题考查数据结构的基本知识。数据之间的相互关系称为逻辑结构。通常分为凹类基本逻辑结构,即集合、线性结构、树型结构、图状结构或网状结构。存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。存储结构在计算机中有两种,即顺序存储结构和链式存储结构。顺序存储结构是把数据元素存储在一块连续地址空间的内存中;链式存储结构是使用指针把相互直接关联的节点链接起来。因此,这两种存
22、储结构都是线性的。可见,逻辑结构和存储结构不是一一对应的。因此,选项A和选项B的说法都是错误的。无论数据的逻辑结构是线性的还是非线性的,只能选择顺序存储结构或链式存储结构来实现存储。程序设计语言中,数组是内存中一段连续的地址空间,可看作是顺序存储结构。可以用数组来实现树型逻辑结构的存储,比如二叉树。因此,选项C的说法是错误的。(7) 答案C解析 冒泡排序的基本思想是:将相邻的两个元素进行比较,如果反序,则交换;对于一个待排序的序列,经一趟排序后,最大值的元素移动到最后的位置,其它值较大的元素也向最终位置移动,此过程称为一趟冒泡。对于有n个数据的序列,共需n-1趟排序,第i趟对从1到n-i个数据
23、进行比较、交换。冒泡排序的最坏情况是待排序序列逆序,第1趟比较n-1次,第2趟比较n-2次,依此类推,最后一趟比较 1次,一共进行n-1趟排序。因此,冒泡排序在最坏情况下的比较次数是 (n-1)+(n-2)+.+1,结果为n(n-1)/2。本题的正确答案是选项C。(8) 答案A解析 本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为 n2,则n0=n2+1。根据这条性质可知,若二叉树中有70个叶子结点,则其度为2的结点数为70-1,即 69个。二叉树的总结点数是度为2、度为1和叶子结点的总和,因此,题目中的二叉
24、树总结点数为69+80+70,即219。因此,本题的正确答案是选项A。(9) 答案B解析 本题考查数据库系统的基本概念和知识。数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项A的说法是错误的。数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项B
25、的说法是正确的。通常将引入数据库技术的计算机系统称为数据库系统。一个数据库系统通常由五个部分组成,包括相关计算机的硬件、数据库集合、数据库管理系统、相关软件和人员。因此,选项C的说法是错误的。因此,本题的正确答案是选项B。(10)答案C解析 本题考查数据库的关系模犁。关系模型的数据结构是一个“二维表”,每个二维表可称为一个关系,每个关系有一个关系名。表中的一行称为一个元组:表中的列称为属性,每一列有一个属性名。表中的每一个元组是属性值的集合,属性是关系二维表中最小的单位,它不能再被划分。关系模式是指一个关系的属性名表,即二维表的表框架。因此,选项C的说法是正确的。(11)答案C解析 本题考查S
26、ystem类的基本知识。System类是一个特殊类,它是一个final类,所有的方法都用类变量来调用,即对System类不可能实例化。System类主要用来提供标准输入/输出和系统环境信息的访问、设置。System类的属性有:public static final InputSbem in,标准输入public static final OutputStream out,标准输出public static final PrintStream err,标准错误输出因此,本题中选项A、B和D的说法都是正确的。因此,本题的正确答案是选项C。(12)答案B解析 本题考查Java的简单数据类型的变量定义
27、及Java的命名约定。Java中的命名规则中包含如下几条:(1)变量名、方法名首单词小写,其余单词只有首字母大写;(2)常量完全大写;(3)变量命名采用完整的英文描述符,第一个字母小写,任何中间单词的首字母大写。Java语言区分大小写。简单数据类型布尔型用boolean表示。布尔型数据只有两个值: true(真)和false(假)。经过上述分析可知,选项B和选项C都能正确的定义一个布尔型变量,但是选项C的变量名CANCELED不符合Java中的命名规则,而选项B的变量名符合变量名的命名规则。因此,选项B是符合规范的布尔变量定义语句。本题的正确答案是选项B。(13)答案A解析 本题考查Java中
28、的数组。数组是一种复合数据类型,在Java中数据是作为对象来处理的。数组是有限元素的有序集合,数组中的元素具有相同的数据类型,并可以用统一的数据名和下标来唯一确定其元素。 经过上述分析可知,本题的正确答案是选项A。(14)答案D解析 本题考查内部类的使用。在一个类的内部嵌套定义的类称为内部类。与普通类一样,内部类也有自己的成员变量和成员方法,同样可以通过建立内部类的对象去访问其成员变量和调用其方法。但它还有很多特点,其中一个就是内部类可以使用它所在类(外部类)的静态成员变量和实例成员变量,也可以使用它所在类(外部类)的方法中的局部变量。针对题目中的选项A、B、C,内部类都可以访问。因此,本题的
29、正确答案是选项D。(15)答案A解析 本题考查Java的表达式运算。程序中包含四条输出语句,运行时首先计算表达式的结果,然后将结果进行输出。第一个表达式34+56-6,运算结果为84,然后输出。因此,运行结果的第一行显示“84”。第二个表达式26*2-3,*号代表乘法,运算结果为49,然后输出。因此,运行结果的第二行显示“49”。到此,可以判断,本题的正确答案是选项A。(16)答案D解析 本题考查JDK目录结构。JDK包含如下目录:(1)bin目录,包含有编译器、解释器和许多工具(2)demo目录,包含各种演示例子(3)include目录,包含Win子目录,都是本地方法文件(4)jre目录,是
30、Java程序运行环境的根目录(5)lib目录,包含Java库文件经过上述分析可知,本题的正确答案是选项D。(17)答案C解析 本题考查字符串的使用。String类提供concat(str)方法,该方法将当前字符串对象与指定str字符串相连。题目程序中生成两个字符串变量str1和str2,并为其赋值,然后生成一个字符串变量str3,该字符串变量的值为表达式str1.concat(str2)的结果。表达式str1.concat(str3)是把字符串str1与字符串str2相连,结果为“abcABC”。因此,程序的运行结果是“abcABC”。本题的正确答案是选项C。(18)答案A解析 本题考查Jav
31、a的关系运算符。Java的关系运算符如下表所示:运算符表达式功能返回true值时的情况op1op2比较op1是否大于op2op1大于op2op1op2比较op1是否小于op2op1小于op2=op1=op2比较op1是否大于等于op2op1大于等于op2op1=op2比较op1是否小于等于op2op1小于等于op2=op1=op2比较op1是否等于op2op1等于op2!=op1!=op2op1和op2不相等测试op1不等于op2从表中即可判断,选项A是Java的关系运算符。而选项C和选项D中的运算符是 Java扩展的赋值运算符。Java中不存在选项B中的运算符。本题的正确答案是选项A。(19
32、)答案C解析 本题考查Java流程控制语句。for浯句和while语句是循环语句,swithch语句是多分支语句,而continue语句是跳转语句。continue语句跳过循环体中下面尚未执行的语句,回到循环体的开始继续下一轮的循环。跳转语句除了continue之外,还有break语句和return语句。本题的正确答案是选项C。(20)答案D解析 本题考查java.awt.event包中定义的适配器类。该包中定义的适配器类包括以下几个:(1)ComponentAdapter,构件适配器(2)ContainerAdapter,容器适配器(3)FocusAdapter,焦点适配器(4)MouseA
33、dapter,鼠标适配器(5)KeyAdapter,键盘适配2S(6)MouseMotionAdapter,鼠标运动适配器(7)WindowAdapter,窗口适配器显然,选项D中的FrameAdapter不属于事件适配器类。本题的正确答案是选项D。(21)答案D解析 本题考查Java的位运算符。Java的位运算符如下表所示: 运算符功能表达式按位取反op&按位与op1&op2按位或op1op2按位异或op1op2op1按位右移op2位op1op2op1按位左移op2位op1op2op1添右移op2op1op2对比该表可知,选项D不是Java的位运算符,不能进行位运算。因此,本题的正确答案是选
34、项D。(22)答案C解析 本题考查Java的一元算术运算符。一元运算符中包含如下两个:(1)增量运算符+,将操作数加1。(2)减量运算符-,将操作数减1。这两个运算符在使用过程中,如果将增量运算和减量运算表达式再作为其他表达式的操作数使用时,i+与+i是有区别的:i+在使用i之后,使i的值加1,因此执行完 i+后,整个表达式的值为i,而i的值变为i+1;+i在使用i之前,使i的值加1,因此执行完+i后,整个表达式的值和i的值都为i+1。i-与-i的区别和i+与+i的区别类似。本题程序中,首先声明a、b、c、d四个变量,并为其赋值。然后计算表达式a+*b+c*-d的结果,根据上述运算规则,在计算
35、表达式时,a的值为10,d的值为5。把值带入表达式,即计算10*4+20*5,结果为140。计算完表达式后,a的值为11,d的值为5。因此,本题的正确答案是选项C。(23)答案B解析 本题考查运算符的用法。Java对“+”运算符进行了扩展,使得它能进行字符串的连接。不仅如此,通过“+”运算符还能够将字符串和其他类型的数据进行连接,其结果是字符串,例如“abc”+23得到字符串“abc23”。一般说来,如果“+”运算符的第个操作数是字符串,则Java系统会自动将后续的操作数类型转换为字符串类型,然后再进行连接;如果“+”运算符的第一个操作数不是字符串,则运算结果由后续的操作数决定。题目中生成了x
36、、y、z三个整型变量和一个字符串变量s,然后输出表达式s+x+y+z的结果。由于第一个操作数是字符串,因此自动将后续整型数x、y、z转换为字符串,然后进行连接,结果为xyz345。因此,本题的正确答案是选项B。(24)答案D解析 本题考查Java的I/0流。java.io包中处理字节流的抽象类有InputStream和 OutputStream。InputStream用于输入,它包含7个子类:Output用于输出,它包含5个子类。因此,本题的正确答案是选项D。(25)答案C解析 本题考查Java的内存读写。在java.io中,还提供了ByteArrayOutputStrem、 ByteArra
37、yInputStrem 和 StringBufferInputStream类可直接访问内存,它们是 InputStream 和 OutputStream的子类。用ByteArrayOutputStrem可向字节数组写入数据;ByteArrayInputStrem可从字节数组中读取数据。因此,本题的正确答案是选项C。(26)答案B解析 本题考查对象的串行化。Java中,如果想保存程序中的对象,以便在该程序的后运行中使用,可以使用对象的串行化。一个类只有实现了Serialiazable接口,它的独享才是可串行化的。因此,如果要串行化某些类的对象,这些类就必须实现 Serialiazable接口。因
38、此,本题的正确答案是选项B。(27)答案B解析 本题考查算术运算符%。运算符“%”是取模运算符,也叫求余运算符,用来求两个数的余数。在Java语言中,取模运算符%,其操作数可以是整型也可以是浮点型。如果操作数是整型,则结果为整型;如果操作数是浮点型,其结果也为浮点型数据。 题目中第一个输出语句是输出表达式i%j的结果,其中i和j都是整型,值分别为10和3,10除以3的余数是1。所以,第一个输出语句输出的结果是1。题目中第一个输出语句是输出表达式m%n的结果,其中m和n都是float型,值分别为213.5和4.0,213.5除以4.0的余数是1.5,第二个输出语句输出的值为1.5。因此,本题的正
39、确答案是选项B。(28)答案A解析 本题考查Java的输入/输出。DataOutputStream是字节输出流,字节数据是以文件输出流FileOutputStream对象的形式作为DataOutputStream的构造方法的参数出现。因此,划线处应填入FileOutputStream。本题的正确答案是选项A。(29)答案D解析 本题考查Applet的使用。将Applet嵌入在htm1文件中,必须使用特殊的 htm1标记Applet,实现Applet的运行。该标记中必须定义CODE、WIDTH和 HEIGHT三个属性。CODE属性指定包含Applet字节码的文件名;WIDTH和 HEIGHT属性
40、定义了Applet显示区以像素为单位ide高度和宽度。因此,本题的正确答案是选项D。(30)答案A解析 本题考查Applet的显示。和Applet显示相关的有三个方法:(1)paint()方法。Applet的paint()方法具体执行Applet的绘制。该方法的参数是一个Graphics类的对象,该对象相当于Applet的画笔,通过它向Applet中显示信息。在调用paint()方法时,由浏览器将该对象传递给paint()方法。(2)update()方法,该方法用于更新Applet的显示。执行时,该方法首先清除背景,再调用paint()方法完成Applet的具体绘制。用户定义的Applet一般
41、不用重写该方法。(3)repaint()方法,该方法用于Applet的重新显示,它调用update方法实现对Applet的更新。Applet程序可以在需要显示更新时调用该方法,通知系统刷新显示。因此,如果要在Applet中显示特定的文字、图形等信息,可以在用户定义的Applet类中重写paint()方法。本题的正确答案是选项A。(31)答案D解析 本题考查Applet。Applet运行时,首先由浏览器调用init()方法,通知该Applet已经被加载到浏览器中,使Applet执行一些基本的初始化。该方法不是必须的,可以没有,Applet可以正常编译和运行。因此,本题的正确答案是选项D。(32)
42、答案A解析 本题考查线程的使用。Java中可以通过实现Runnable接口来创建线程。通过这种方式创建线程是把Runnable的一个对象作为参数传递给Thread类的一个构造方法,该对象提供线程体run()。而题目中的程序只是实现了Runnable接口,而并没有调用Thread类的构造方法创建线程对象。程序只是生成一个Test类对象t,不是线程对象。然后调用该对象的start()方法,而在Test类中没有定义start()方法。因此,题目中的程序不能通过编译,因为start()方法在Test类中没有定义。本题的正确答案是选项A。 (33)答案B 解析 本题考查线程的使用。Java中可以通过实现
43、Runnable接口来创建线程。通过这种方式创建线程是把Runnable的一个对象作为参数传递给Thread类的一个构造方法,该对象提供线程体run()。如果题目中Test实现Runnable接口,则创建线程的方法是Thread t=new Thread(new Test()。Java中另一种创建线程的方法是通过继承 Thread类,重写其中的run()方法定义线程体,然后直接创建该子类的对象即可创建线程。题目中使用Thread t=new Test()语句创建线程,其中直接创建Test类对象,可知该类一定是继承Thread类。因此,本题的正确答案是选项B。(34)答案C解析 本题考查线程的基
44、本操作。Java中提供了interrupt方法用来中断一个线程,当调用一个线程的interrupt方法时,即向该线程发送一个中断请求。需要注意的是,在调用线程的interrupt方法时,如果该线程由于调用了sleep方法或wait方法而正在处于阻塞状态,那么线程会抛出一个InterrupterException异常。因此,本题的正确答案是选项C。(35)答案C解析 本题考查线程的生命周期。线程的生命周期主要分为以下几个状态:新建状态、可运行状态、运行状态、阻塞状态和终止状态。各周期之间的转换关系及控制方法如下图所示: 从图上可知,题目的四个选项中,只有选项C的方法可以使线程进入阻塞状态。二、填
45、空题(1)答案正确性 解析 本题考查软件工程中需求规格说明书的评审。衡量需求规格说明书好坏的标准按重要性次序排列为:正确性、无歧义性、完全性、可验证性、一致性、可理解性、可修改性和可追踪性。因此,划线处应填入“正确性”。(2) 答案白盒或白箱或白盒子或White Box解析 本题考查软件工程的测试。测试一般有两种方法;黑盒测试和白盒测试。黑盒测试不考虑程序的内部逻辑结构和处理过程,只着眼于程序的外部特性。用黑盒测试来发现程序中的错误,必须用所有可能的输入数据来检查程序能否都能产生正确的输出。白盒测试是在了解程序内部结构和处理过程的基础上,对程序的所有路径进行测试,检查路径是否都能按预定要求正确工作。因此,划线处应填入“白盒 (箱)”或“White Box”。(3) 答案顺序解析 本题考查数据结构的队列。队列是一种特殊的线性表,即限定在表的一端进行删除,在表的另一端进行插入操作的线性表。允许删除的一端叫做队头,允许插入的一端叫做队尾。线性表的存储结构主要分为顺序存储结构和链式存储结构。当队列用链式存储结构实现时,就称为链队列;当队列用顺序存储结构实现时,就称为循环表。因此,本题划线处应填入“顺序