1、全国计算机等级考试二级 JAVA真题 2007年 4月及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列叙述中正确的是(分数:2.00)A.算法的效率只与问题的规模有关,而与数据的存储结构无关B.算法的时间复杂度是指执行算法所需要的计算工作量C.数据的逻辑结构与存储结构是一一对应的D.算法的时间复杂度与空间复杂度一定相关2.在结构化程序设计中,模块划分的原则是(分数:2.00)A.各模块应包括尽量多的功能B.各模块的规模应尽量大C.各模块之间的联系应尽量紧密D.模块内具有高内聚度、模块间具有低耦合度3.下列叙述中正确的是(分数:2.
2、00)A.软件测试的主要目的是发现程序中的错误B.软件测试的主要目的是确定程序中错误的位置C.为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D.软件测试是证明软件没有错误4.下面选项中不属于面向对象程序设计特征的是(分数:2.00)A.继承性B.多态性C.类比性D.封装性5.下列对队列的叙述正确的是(分数:2.00)A.队列属于非线性表B.队列按“先进后出”原则组织数据C.队列在队尾删除数据D.队列按“先进先出”原则组织数据6.对下列二叉树 (分数:2.00)A.DYBEAFCZXB.YDEBFZXCAC.ABDYECFXZD.ABCDEFXYZ 进行前序遍历的结果为7.某二
3、叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为(分数:2.00)A.n+1B.n-1C.2nD.n/28.在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是(分数:2.00)A.并B.交C.投影D.笛卡儿乘积9.在 E-R图中,用来表示实体之间联系的图形是(分数:2.00)A.矩形B.椭圆形C.菱形D.平行四边形10.下列叙述中错误的是(分数:2.00)A.在数据库系统中数据的物理结构必须与逻辑结构一致B.数据库技术的根本目标是要解决数据的共享问题C.数据库设计是指在已有数据库管理系统的基础上建立数据库D.数据库系统需要操作系统的支持11.Java语言与 C+语言相比,最
4、突出的特点是(分数:2.00)A.面向对象B.高性能C.跨平台D.有类库12.下列叙述中,错误的是(分数:2.00)A.Java提供了丰富的类库B.Java最大限度地利用网络资源C.Java支持多线程D.Java不支持 TCP/IP协议13.在下列 Java语言的包中,提供图形界面构件的包是(分数:2.00)A.javioB.javaswingC.javnetD.javrmi14.下列叙述中,错误的是(分数:2.00)A.iavaexe是 Java的编译器B.javadoexe是 Java的文档生成器C.iavaproexe是 Java解释器的剖析工具D.javaexe是 Java的解释器15
5、.在执行 Java程序时,将应用程序连接到调试器的选项是(分数:2.00)A.-DB.-debugC.-vexbosegsD.-mx16.请阅读下面程序 import java.io. *; public class TypeTransition public static void main(String args) char a=a; int i=l00; long y=456L; int aa=a+i; long yy=y-aa; System.out.print(“aa = “+aA) ; System.out.print(“yy = “+yy); 程序运行结果是(分数:2.00)A.
6、aa=197 yy=259B.aa=177 yy=259C.aa=543 yy=288D.aa=197 yy=33317.请阅读下面程序 public class OperatorsAndExpressions void residual() int i=100, j=30; float m=563.5f, n=4.0f; System.out.println(i%j); System.out.println(m%n); public static void main(String args) OperatorsAndExpressions OperAndExp=new OperatorsAn
7、dExpressions(); /取模运算符在整数和浮点数中的应用 OperAndExp.residual; 程序运行结果是(分数:2.00)A.10 3.5B.20 2.5C.10 4.5D.20 3.518.请阅读下面程序 public class ForLoopStatement public static void main(string args) int i,j; for (i=1; i5; i+) /i 循环 for (j=1;j=i;j+) /j 循环 System.out.print(i+“+j+“=“+i*j+“ “); System.out.println(); 程序完成
8、后,i 循环和 j循环执行的次数分别是(分数:2.00)A.4,10B.8,9C.9,8D.10,1019.下列叙述中,错误的是(分数:2.00)A.Java中,方法的重载是指多个方法可以共享同一个名字B.Java中,用 abstract修饰的类称为抽象类,它不能实例化C.Java中,接口是不包含成员变量和方法实现的抽象类D.Java中,构造方法可以有返回值20.请阅读下面程序 public class ExampleStringBuffer public static void main(String args) StringBuffer sb=new StringBuffer(“test“
9、); System.out.println(“buffer=“+sB) ; System.out.println(“length=“+sb.length(); 程序运行结果中在“length=“后输出的值(分数:2.00)A.10B.4C.20D.3021.请阅读下面程序 import java.io.*; public class ExceptionCatch public static void main(String args) try FilelnputStream fis=new FilelnputStream(“text“); System.out.println(“content
10、 of text is:“); catch(FileNotFoundException e) System.out.println(e); System.out.println(“message:“+e.getMessageO); e.printStackTrace(System.out); _ System.out.println(e); 为保证程序正确运行,程序中下划线处的语句应是(分数:2.00)A.catch(FilelnputStream fiB.printStackTrace()C.catch(IOExceptionD.Systeouprintln(22.下列叙述中,错误的是(分数
11、:2.00)A.所有的字节输入流都从 InputStream类继承B.所有的字节输出流都从 OutputStream类继承C.所有的字符输出流都从 OutputStreamWriter类继承D.所有的字符输入流都从 Reader类继承23.下列叙述中,正确的是(分数:2.00)A.线程与进程在概念上是不相关的B.一个线程可包含多个进程C.一个进程可包含多个线程D.Java中的线程没有优先级24.请阅读下面程序 public class ThreadTest public static void main(String args) ( Thread t1=new Thread(new Hello
12、(); Thread t2=new Thread(new Hello(); t1.start(); t2.start(); class Hello implements Runnable int i; public void run() while(true) System.out.prinfin(“Hello“+i+); if(i=5) break; 该程序创建线程使用的方法是(分数:2.00)A.继承 Thread类B.实现 Runnable接口C.t1.start()D.t2.start()25.Java对 I/O访问所提供的同步处理机制是(分数:2.00)A.字节流B.过滤流C.字符流
13、D.压缩文件流26.Java对文件类提供了许多操作方法,能获得文件对象父路径名的方法是(分数:2.00)A.getAbsolutePath()B.getParentFile()C.getAbsoluteFile()D.getName()27.下列叙述中,错误的是(分数:2.00)A.Java中没有检测和避免死锁的专门机制B.程序中多个线程互相等待对方持有的锁,可能形成死锁C.为避免死锁,Java 程序中可先定义获得锁的顺序,解锁是按加锁的反序释放D.为避免死锁,Java 程序中可先定义获得锁的顺序,解锁是按加锁的正序释放28.请阅读下面程序 public class ThreadTest pu
14、blic static void main(String args) throws Exception int i=0; Hello t=new Hello(); while(true) System.out.println(“Good Moming“+i+); if (i=2 t.join(); /等待t运行结束 if(i=5) break; class Hello extends Thread int i; public void run() while(true) System.out.println(“Hello“+i+); if (i=5) break; 为使该程序正确执行,下划线处
15、的语句应是(分数:2.00)A.sleep()B.yield()C.interrupt()D.start()29.Panel类的默认布局管理器是(分数:2.00)A.BorderLayoutB.CardLayoutC.FlowLayoutD.GridBagLayout30.下列叙述中,错误的是(分数:2.00)A.JButton类和标签类可显示图标和文本B.Button类和标签类可显示图标和文本C.AWT构件能直接添加到顶层容器中D.Swing构件不能直接添加到顶层容器中31.下列叙述中,错误的是(分数:2.00)A.Applet的默认布局管理器是 FlowLayoutB.JApplet中增加
16、构件是加到 JApplet的内容面板上,不是直接加到 JApplet中C.JApplet的内容面板的默认布局管理器是 BorderLayoutD.JApplet的内容面板的默认布局管理器是 FlowLayout32.在定制 Applet的绘图功能时,应该使用的方法是(分数:2.00)A.init()B.start()C.paintComponent()D.paint()33.下列叙述中,错误的是(分数:2.00)A.Applet事件处理机制与 JavaApplication相同B.JApplet事件处理机制采用监听器方式C.Applet事件处理机制采用监听器方式D.JApplet事件处理机制不
17、是采用监听器方式34.为保护本地主机,对 Applet安全限制中正确的是(分数:2.00)A.Applet可加载本地库或方法B.Applet可读、写本地计算机的文件系统C.Applet可向 Applet之外的任何主机建立网络连接D.Applet不能运行任何本地可执行程序35.J2SDK基本命令中能生成 C语言头文件的命令是(分数:2.00)A.javahB.javapC.jarD.java二、B填空题/B(总题数:15,分数:30.00)36.在深度为 7的满二叉树中,度为 2的结点个数为U 【1】 /U。(分数:2.00)填空项 1:_37.软件测试分为白箱(盒)测试和黑箱(盒)测试。等价类
18、划分法属于U 【2】 /U测试。(分数:2.00)填空项 1:_38.在数据库系统中,实现各种数据管理功能的核心软件称为U 【3】 /U。(分数:2.00)填空项 1:_39.软件生命周期可分为多个阶段。一般分为定义阶段、开发阶段和维护阶段。编码和测试属于U 【4】 /U阶段。(分数:2.00)填空项 1:_40.在结构化分析使用的数据流图(DFD) 中,利用U 【5】 /U对其中的图形元素进行确切解释。(分数:2.00)填空项 1:_41.U【6】 /U是为嵌入式和移动设备提供的 Java平台。(分数:2.00)填空项 1:_42.在 Java中,转义字符/n 表示U 【7】 /U。(分数:
19、2.00)填空项 1:_43.阅读下列程序段 public class OperatorsAndExpressions String conditionalExpression(int score) String result; /如果 score超过 60分, 则结果是 passed, 否则是 doesnt pass result=-(score=60)?“passed“:“doesnt pass“; System.out.println(result); retum result; public static void main(String args) OperatorsAndExpre
20、ssions OperAndExp=new OperatorsAndExpressions(); /条件表达式 OperAndExp.conditionalExpression(65); 其执行结果是U 【8】 /U。(分数:2.00)填空项 1:_44.阅读下列程序段 int i=3,j; outer:while(i0) j=3; inner:while(j0) if(j2) break outer; System.out.println(j+“and“+i); j-; i-; 被输出到屏幕的第一行结果是U 【9】 /U。(分数:2.00)填空项 1:_45.类是变量和U 【10】 /U的集
21、合体。(分数:2.00)填空项 1:_46.Java中的异常对象是 Error类或 Exception类的对象,这两类对象中U 【11】 /U类的对象不会被 Java应用程序捕获和抛出。(分数:2.00)填空项 1:_47.在 java.io包中,字符输出流类都是U 【12】 /U类的子类。(分数:2.00)填空项 1:_48.在 Java线程中,共享数据的所有访问都必须作为临界区,使用U 【13】 /U进行加锁控制。(分数:2.00)填空项 1:_49.Swing是由纯 Java实现的轻量级构件,没有本地代码,不依赖U 【14】 /U系统的支持。这是它与 AWT构件的最大区别。(分数:2.0
22、0)填空项 1:_50.Applet类属于U 【15】 /U包。(分数:2.00)填空项 1:_全国计算机等级考试二级 JAVA真题 2007年 4月答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列叙述中正确的是(分数:2.00)A.算法的效率只与问题的规模有关,而与数据的存储结构无关B.算法的时间复杂度是指执行算法所需要的计算工作量 C.数据的逻辑结构与存储结构是一一对应的D.算法的时间复杂度与空间复杂度一定相关解析:解析 本题考查数据结构中有关算法的基本知识和概念。数据的结构,直接影响算法的选择和效率。而数据结构包括两方面,即数
23、据的逻辑结构和数据的存储结构。因此,数据的逻辑结构和存储结构都影响算法的效率。选项 A的说法是错误的。算法的时间复杂度是指算法在计算机内执行时所需时间的度量;与时间复杂度类似,空间复杂度是指算法在计算机内执行时所需存储空间的度量。因此,选项 B的说法是正确的。 数据之间的相互关系称为逻辑结构。通常分为四类基本逻辑结构,即集合、线性结构、树型结构、图状结构或网状结构。存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。存储结构在计算机中有两种,即顺序存储结构和链式存储结构。可见,逻辑结构和存储结构不是一一对应的。因此,选项 C的说法是错误的。 有时人们为了提高算法的时间复杂度,
24、而以牺牲空间复杂度为代价。但是,这两者之间没有必然的联系。因此,选项 D的说法是错误的。2.在结构化程序设计中,模块划分的原则是(分数:2.00)A.各模块应包括尽量多的功能B.各模块的规模应尽量大C.各模块之间的联系应尽量紧密D.模块内具有高内聚度、模块间具有低耦合度 解析:解析 本题考查软件工程中软件设计的概念和原理。人们在开发计算机软件的长期实践中积累了丰富的经验,总结这些经验得到如下的启发式规则: (1)改进软件结构,提高模块独立性;通过模块的分解或合并,力求降低耦合提高内聚。低耦合也就是降低不同模块间相互依赖的紧密程度,高内聚是提高一个模块内各元素彼此结合的紧密程度。 (2)模块的规
25、模应适中。一个模块的规模不应过大,过大的模块往往是由于分解不够充分:过小的模块开销大于有益操作,而且模块过多将使系统接口复杂。因此过小的模块有时不值得单独存在。 (3)模块的功能应该可以预测,但也要防止模块功能过分局限。如果模块包含的功能太多,则不能体现模块化设计的特点:如果模块的功能过分的局限,使用范围就过分狭窄。 经过上述分析,本题的正确答案是选项 D。3.下列叙述中正确的是(分数:2.00)A.软件测试的主要目的是发现程序中的错误 B.软件测试的主要目的是确定程序中错误的位置C.为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D.软件测试是证明软件没有错误解析:解析 本题
26、考查软件工程中测试的目的和方法。仅就软件测试而言,它的目的是发现软件的中的错误,但是,发现错误并不是最终目的,最终目的是通过测试发现错误之后还必须诊断并改正错误,这就是调试的目的。 由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当的。因此,在软件测试阶段通常由其他人员组成测试小组来完成测试工作。因此,经过上述分析可知选项 A的说法是正确的,而选项 B、C、D 的说法是错误的。4.下面选项中不属于面向对象程序设计特征的是(分数:2.00)A.继承性B.多态性C.类比性 D.封装性解析:解析 通常认为,面向对象方法具有封装性、继承性、多态性几大特点。就是这几大特
27、点,为软件开发提供了一种新的方法学。 封装性:所谓封装就是将相关的信息、操作与处理融合在一个内含的部件中(对象中)。简单地说,封装就是隐藏信息。这是面向对象方法的中心,是面向对象程序设计的基础。 继承性:子类具有派生它的类的全部属性(数据)和方法,而根据某一类建立的对象也都具有该类的全部,这就是继承性。继承性自动在类与子类间共享功能与数据,当某个类作了某项修改,其子类会自动改变,子类会继承其父类所有特性与行为模式。继承有利于提高软件开发效率,容易达到一致性。 多态性:多态性就是多种形式。不同的对象在接收到相同的消息时,采用不同的动作。例如,一个应用程序包括许多对象,这些对象也许具有同一类型的工
28、作,但是却以不同的做法来实现。不必为每个对象的过程取一过程名,造成复杂化,可以使过程名复用。同一类型的工作有相同的过程名,这种技术称为多态性。 经过上述分析可知,选项 C的说法是错误的。5.下列对队列的叙述正确的是(分数:2.00)A.队列属于非线性表B.队列按“先进后出”原则组织数据C.队列在队尾删除数据D.队列按“先进先出”原则组织数据 解析:解析 本题考查数据结构中队列的基本知识。队列是一种限定性的线性表,它只允许在表的一端插入元素,而在另一端删除元素,所以队列具有先进先出的特性。在队列中,允许插入元素的一端叫做队尾,允许删除的一端则称为队头。这与日常生活中的排队是一致的,最早进入队列的
29、人最早离开,新来的人总是加入到队尾。因此,本题中只有选项 D的说法是正确的。6.对下列二叉树 (分数:2.00)A.DYBEAFCZXB.YDEBFZXCAC.ABDYECFXZ D.ABCDEFXYZ 进行前序遍历的结果为解析:解析 本题考查数据结构中二叉树的遍历。根据对二叉树根的访问先后顺序不同,分别称为前序遍历、中序遍历和后序遍历。这三种遍历都是递归定义的,即在其子树中也按照同样的规律进行遍历。下面就是前序遍历方法的递归定义。 当二叉树的根不为空时,依次执行如下 3个操作: (1)访问根结点。 (2)按先序遍历左子树。 (3)按先序遍历右子树。 根据如上前序遍历规则,来遍历本题中的二叉树
30、。首先访问根结点,即 A,然后遍历 A 的左子树。遍历左子树同样按照相同的规则首先访问根结点 B,然后遍历B的左子树。遍历 B的左子树,首先访问 D,然后访问 D的左子树,D 的左子树为空,接下来访问 D的右子树,即 Y。遍历完 B的左子树后,再遍历 B的右子树,即 E。到此遍历完 A的左子树,接下来遍历 A的右子树。按照同样的规则,首先访问 C,然后遍历 C的左子树,即 F。C 的左子树遍历完,接着遍历 C的右子树。首先访问右子树的根结点 X,然后访问 X的左子树,X 的左子树,即 Z,接下来访问 X的右子树,右子树为空。到此,把题目的二叉树进行了一次前序遍历。遍历的结果为 ABDYECFX
31、Z,故本题的正确答案为选项 C。7.某二叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为(分数:2.00)A.n+1 B.n-1C.2nD.n/2解析:解析 本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为 n0,而其度数为 2的结点数为 n2,则 n0=n2+1。 根据这条性质可知,若二叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为 n+1。因此,本题的正确答案是选项 A。8.在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是(分数:2.00)A.并B.交 C.投影D.笛卡儿乘积解析:解析 本题考杳数据库
32、的关系运算。两个关系的并运算是指将第一个关系的元组加到第二个关系中,生成新的关系。因此,并运算不改变关系表中的属性个数,也不能减少元组个数。 两个关系的交运算是包含同时出现在第一和第二个关系中的元组的新关系。因此,交运算不改变关系表中的属性个数,但能减少元组个数。投影是一元关系操作。投影操作选取关系的某些属性,这个操作是对一个关系进行垂直分割,消去某些属性,并重新安排属性的顺序,再删除重复的元组。因此,投影运算既可以减少关系表中的属性个数,也可以减少元组个数。 两个关系的笛卡儿乘积是指一个关系中的每个元组和第二个关系的每个元组连接。因此,笛卡儿乘积运算能够增加元组属性的个数。 经过上述分析可知
33、,在上述四种运算中,交运算不改变关系表中的属性个数但能减少元组个数。因此,正确答案是选项 B。9.在 E-R图中,用来表示实体之间联系的图形是(分数:2.00)A.矩形B.椭圆形C.菱形 D.平行四边形解析:解析 E-R 模型中,有三个基本的抽象概念:实体、联系和属性。E-R 图是 E-R模型的图形表示法,在 E-R图中,用矩形框表示实体,菱形框表示联系,椭圆形框表示属性。因此,本题的正确答案是选项C。10.下列叙述中错误的是(分数:2.00)A.在数据库系统中数据的物理结构必须与逻辑结构一致 B.数据库技术的根本目标是要解决数据的共享问题C.数据库设计是指在已有数据库管理系统的基础上建立数据
34、库D.数据库系统需要操作系统的支持解析:解析 本题考查数据库系统的基本概念和知识。数据的逻辑结构,是数据间关系的描述,它只抽象地反映数据元素之间的逻辑关系,而不管其在计算机中的存储方式。数据的存储结构,又叫物理结构,是逻辑结构在计算机存储器里的实现。这两者之间没有必然的联系。因此,选项 A的说法是错误的。 数据库可以看成是长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项 B的说法是正确的。 数据库设计是在数据库管理系
35、统的支持下,按照应用的要求,设计一个结构合理、使用方便、效率较高的数据库及其应用系统。数据库设计包含两方面的内容:一是结构设计,也就是设计数据库框架或数据库结构;二是行为设计,即设计基于数据库的各类应用程序、事务等。因此,选项 C的说法是错误的。 数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项 D的说法是正确的。因此,本题的正确答案是选项 A。11.Java语言与 C+语言相比,最突出的特点是(分数:2.00)A.面向对象B.高性能
36、C.跨平台 D.有类库解析:解析 本题考查 Java语言的特性。 Java 语言与 C+语言都是面向对象的语言。因此,选项 A是错误的。 Java 语言与 C+语言都是高性能的编程语言。Java 字节码的设计使之能很容易地直接转换成对应于特定 CPU的机器码,从而得到较高的性能。C+由于其极高的灵活性、强大的功能和非常高的效率,常常用于专业应用程序的开发,C+非常适合于编写各种编程环境下的高性能代码。因此,选项 B是错误的。 Java 是平台无关的语言是指用 Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C 和 C+具有一定程度的源代码级平台无
37、关,C+语言支持程序员编写一些非常低级的程序,从而能够访问机器硬件,并操纵实际内存地址。但这些是以牺牲可移植性为代价的,因为这时每个程序都是针对某种具体硬件环境的。而 Java主要靠 Java虚拟机(JVM)在目标码级实现平台无关性。Java 编程人员在编写完软件后,通过 Java编译器将 Java源程序编译为 JVM的字节代码。任何一台机器只要配备了 Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。显然,Java 语言与 c补语言相比,最突出的特点是跨平台。因此,选项 C是正确的。 Java 语言和 C+语言中都包含有类库,提供了大量的类以满足用户的多方面需要。因此
38、,选项 D是错误的。 经过上述分析可知,本题的答案是选项 C。12.下列叙述中,错误的是(分数:2.00)A.Java提供了丰富的类库B.Java最大限度地利用网络资源C.Java支持多线程D.Java不支持 TCP/IP协议 解析:解析 本题考查 Java语言的特点及优势。 Java 语言提供了丰富的类库,为编程人员提供快速和标准的应用接口,提高了应用软件的生产效率。因此,选项 A的说法正确。 Java 围绕网络应用开发,最大限度的利用网络资源,它的小应用程序(Applet)在网络上的传输不受计算机 CPU和环境限制。因此,选项 B的说法正确。 多线程是 Java程序的并发机制,它能同步共享
39、数据、处理不同的事件。因此,选项 C的说法正确。 Java 提供的类库支持 TCP/IP协议,应用程序可以通过 URL地址,在访问网络上任何地方的对象时,如同访问本题文件一样简单。因此,选项 D的说法是错误的。 本题的正确答案是选项 D。13.在下列 Java语言的包中,提供图形界面构件的包是(分数:2.00)A.javioB.javaswing C.javnetD.javrmi解析:解析 选项 A中的 java.io包提供与设备无关的输入、输出流支持。 选项 B中的 iava.swing包提供构建和管理应用程序的图形界面的轻量级的构件。 选项 C中的 包提供支持联网的类,包含执行与网络相关的
40、操作的类和处理接口及统一资源定位器(URLs)的类。 选项 D中的 java.rmi包提供程序远程方法调用所需的类。 因此,本题的正确答案是选项 B。14.下列叙述中,错误的是(分数:2.00)A.iavaexe是 Java的编译器B.javadoexe是 Java的文档生成器C.iavaproexe是 Java解释器的剖析工具D.javaexe是 Java的解释器 解析:解析 Java 提供了一些可执行应用程序作为开发和测试的工具。主要包括下面一些工具: javac.exe Java编译器,将 Java源代码转换成字节码。 Java.exe Java 解释器,直接从类文件执行Java字节码程
41、序。 appletviewer.exe Java Applet 浏览器。 javadoc.exe 文档生成器,对 Java源码和包以 MML格式产生 AP文档。 jdb.exe Java 调试器,可以逐行执行程序,设置断点和检查变量。 javap.exe Java 反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。 javaprof.exe Java解释器的剖析工具,提供解释器剖析信息。 因此,选项 D的说法是错误的。15.在执行 Java程序时,将应用程序连接到调试器的选项是(分数:2.00)A.-DB.-debug C.-vexbosegsD.-mx解析:解析 在执行 J
42、ava程序时,在 java命令行中可以通过设置选项指定操作,这些选项包括: -cs 检查目标文件是否过时,如已过时将自动从源文件重新编译 -D 属性名=值 定义属性名 -debug 将程序连接到调试器 -ms 分配内存初值 解释器启动时分配给堆的内存大小 -mx 分配最大内存 解释器为对象和数组,动态分配堆最大内存值,默认为 16MB。 -noverify 不进行字节代码验证 -verify 进行字节代码验证,也是默认状态 -noasyncgc 关闭异步垃圾收集器 -oss 栈尺寸 设置每个线程栈的尺寸,默认值为400KB -ss栈尺寸 设置每个线程本地栈的尺寸,默认值为 128KB -v 每
43、装载一个类,打印一条信息 -verbosegc 无用单元收集 29每释放一次内存,打印一条信息 因此,本题的正确答案是选项 B。16.请阅读下面程序 import java.io. *; public class TypeTransition public static void main(String args) char a=a; int i=l00; long y=456L; int aa=a+i; long yy=y-aa; System.out.print(“aa = “+aA) ; System.out.print(“yy = “+yy); 程序运行结果是(分数:2.00)A.aa
44、=197 yy=259 B.aa=177 yy=259C.aa=543 yy=288D.aa=197 yy=333解析:解析 本题考查各数据类型间的自动转换。自动类型转换允许在赋值和计算时由编译系统按照一定的规则自动完成。它只能将位数少的数据类型向位数多的数据类型转换。 本题程序的 int aa=a+i语句中,a 为字符型数据,i 为整型数据,这两个类型的数据进行运算时,首先按照自动类型转换规则把字符型数据 a转换为整型数据 97(97是字符 a的 ASCII码),然后与整型变量 i相加得结果 197,赋值给整型变量 aa。因此,输出变量 aa的值为 197。 同理,long yy=y-aa
45、语句中,y 为 long型数据,aa 为 int型数据,这两个类型的数据进行运算时,首先按照自动类型转换规则把 int型数据 aa转换为 long型数据197,然后与 long型数据 y相减得结果 259,赋值给 long型变量 yy。因此,输出变量 yy的值为 259。 因此,本题的正确答案是选项 A。17.请阅读下面程序 public class OperatorsAndExpressions void residual() int i=100, j=30; float m=563.5f, n=4.0f; System.out.println(i%j); System.out.printl
46、n(m%n); public static void main(String args) OperatorsAndExpressions OperAndExp=new OperatorsAndExpressions(); /取模运算符在整数和浮点数中的应用 OperAndExp.residual; 程序运行结果是(分数:2.00)A.10 3.5 B.20 2.5C.10 4.5D.20 3.5解析:解析 本题考查取模(求余)运算符,它用来求两个数相除后的余数。在 Java语言中,取模运算符%其操作数可以是浮点数。 本题中首先计算 100%30,100 除以 30的商为 3,余数为 10,因此
47、首先显示结果“10”。然后计算 563.5%4.0,商为 140,余数为 3.5,因此然后显示结果为“3.5”。 经过上述分析,本题的正确答案是选项 A。18.请阅读下面程序 public class ForLoopStatement public static void main(string args) int i,j; for (i=1; i5; i+) /i 循环 for (j=1;j=i;j+) /j 循环 System.out.print(i+“+j+“=“+i*j+“ “); System.out.println(); 程序完成后,i 循环和 j循环执行的次数分别是(分数:2.00)A.4,10 B.8,9C.9,8D.10,10解析:解析 本题考查 for循环语句。for 循环执行时,首先执行初始化操作,然后判断中止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。 本题程序中,外层 for循环 i首先进行初始化操作,然后判断中止条件 i5,然后执行循环体中的语句,最后执行迭代部分,即 i+。因此,直接可以判断外层循环 i执行的次数是 4。故本题的正确答案是选