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