1、计算机二级 JAVA-164及答案解析(总分:70.20,做题时间:90 分钟)一、选择题(总题数:38,分数:70.20)1.下列说法中错误的一项是_。(分数:1.00)A.实现完全串行化的类必须实现 writeExternal()方法B.readexternal()方法用于从对象流中读取通过 writeExternal()方法写入的对象的数据C.实现完全串行化的类必须定义一个具有 public访问权限的不带参数的构造方法D.writeExternal()方法的访问权限是 private2.下面描述中错误的是_。(分数:2.00)A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需
2、求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具3.阅读如下程序。 (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(i5) (10) System.out.println(“祝你成功!“); (11) i+; (12) (13) (14) 该程序要求
3、打印 5行“祝你成功!”,必须改正程序中的某行代码,程序才能完成,选择正确的修改是_。(分数:2.00)A.将第(1)行的 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()4.以下定义线程方法正确的是_。(分数:2.00)A.Public Thread();B.Public Thread(Runnable target)C.Public Thr
4、ead(ThreadGroup group,Runnable target);D.以上都正确5.对鼠标单击按钮操作进行事件处理的接口是_。(分数:1.00)A.MouseListenerB.WindowListenerC.ActionListenerD.KeyListener6.软件生命周期中的活动不包括_。(分数:2.00)A.需求分析B.市场调研C.软件测试D.软件维护7.在定制 Applet的绘图功能时,应该使用的方法是_。(分数:2.00)A.init()B.start()C.paintComponent()D.paint()8.一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体
5、教师和课程间的联系是_。(分数:1.80)A.1:1联系B.1:m联系C.m:1联系D.m:n联系9.Java程序的解释执行过程分为_。(分数:2.00)A.代码的装入、校验、执行B.代码的校验、装入、执行C.代码的校验、装入、执行D.代码的装入、执行、校验10.已知一个有序表为(13,18,34,47,50,62,83,90,115,134)。当用二分法查找值为 90的元素时,查找成功的比较次数为_。(分数:2.00)A.1B.2C.3D.911.下列有关数据库的描述,正确的是 _ 。(分数:2.00)A.数据处理是将信息转化为数据的过程B.数据的物理独立性是指当数据的逻辑结构改变时,数据的
6、存储结构不变C.关系中的每一列称为元组,一个元组就是一个字段D.如果一个关系中的属性或属性组并非该关系的关键字。但它是另一个关系的关键字,则称其为本关系的外关键字12.文件操作中,用于移动文件指针到指定位置的是_。(分数:2.00)A.seek(long pos)B.length()C.find()D.skipBytes(int n)13.有以下程序: void f(int n,int *r) int r1=0, if (n%3=0) r1=n/3; else if (n%5=0) r1=n/5; else f(-n,r1); *r=r1: main() (int m=7,r; f(m,r);
7、 printf(“%d/n“,r); 程序运行后输出的结果是_。(分数:2.00)A.2B.1C.3D.014.对下列二叉树讲行中序遍历的结果是_。 (分数:1.80)A.DBXEAYFZCB.XYZDEFBCAC.ZYXFEDCBAD.YZCFAXEDB15.将较长的数据类型转换为较短的整数类型,要进行 _ 。(分数:1.00)A.类型的自动转换B.类型的强制转换C.无需转换D.无法实现16.结构化程序设计的一种基本方法是_。(分数:2.00)A.筛选法B.递归法C.归纳法D.逐步求精法17.下列说法中错误的一项是_。(分数:3.00)A.共享数据的所有访问都必须使用 synchtonize
8、d加锁B.共享数据的访问不一定全部使用 synchronized加锁C.临界区必须使用 synchronized标识D.所有的对共享数据的访问都是临界区18.有两个关系 R和 T如下,则由关系 R得到关系 T的操作是 (分数:2.00)A.选择B.投影C交D并19.有下面程序段: Public class ArrayTest Public static void main(String args) int intArray=new int3; for(int I=0;I3;I+) intArrayI=I+2; System.out.println(“IntArray“+I+“-“+intArr
9、ayI); System.out.println(“-“); Int arrLen=4; IntArray=new intarrLen; For(int j=intArray.length;j=0;j- intArray j=j*3; System. out.println(“hello“+intArrayj); 则运行的结果是 _ 。(分数:2.00)A.编译出错B.编译通过,但运行出错C.可以运行,但有错误D.以上都不对20.阅读如下程序。 public class Increment public static void main(String args) int c; c=5; Sys
10、tem.out.println(c); System.out.println(c+); System.out.println(c); 程序运行结果是_。(分数:2.00)A.566B.556C.677D.66621.下列数据结构中,能用二分法进行查找的是_。(分数:2.00)A.顺序存储的有序线性表B.循环链表C.二叉链表D.链式存储的有序线性表22.执行下列代码段之后,变量 z的值为_。 Public class Test8 public static void main(String args) int x=2; int y=3; int z=4; z-= y-x-; System.out
11、.println(z); (分数:3.00)A.1B.2C.3D.423.在数据管理技术发展的 3个阶段中,数据共享最好的是 _ 。(分数:2.00)A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.3个阶段相同24.阅读下面的程序段: public class Sun public static void main(String args ) int a=0 for(int i=1;i=3;i+) for(int j=1;j-i;j+) for(int k=j;k=3;k+) a=a+1; System.out.println(A) 我; 执行上面的 3重循环后,a 的值为_。(分数:2
12、.00)A.3B.9C.14D.2125.已知: struct st int n; struct st *next; ; static struct st a3=1,a1,3,a2,5,a0),*p; 如果下述语句的显示是 2,则对 p的赋值是 _ 。 printf(“%d“,+(p-next-n);(分数:2.00)A.p=a0;B.p=a1;C.p=a2;D.p=a3;26.下列命题中,错误的是_。(分数:2.00)A.Java编程时,要求应尽量多用公共变量B.Java编程时,要求应尽量少用公共变量C.Java编程时,要求应尽量不用公共变量D.Java编程时,要求应尽量使用私有变量27.下
13、列哪个是非法的 Java标识符? _(分数:1.00)A.Tree_GlassesB.FirstJavaAppletC._$theLastOneD.Two273.528.当一个 Applet被加载,后续对 Applet生命周期方法的调用中,可能存在的次序是_。(分数:1.80)A.start(), stop(), destroy()B.init(), start(), stop(), start(), stop(), destroy()C.start(), init(), stop(), destroy()D.init(), start(), destroy()29.为判断字符变量 c的值不是
14、数字也不是字母时,应采用下述表达式 _ 。(分数:2.00)A.c=48|c=57c=65|c=90c=97|c=122B.!(c=48|c=57c=65|c=90c=97|c=122)C.c=48c=57|c=65c=90|c=97c=122D.!(c=48c=57|c=65c=90|c=97c=122)30.在 E-R图中,表示实体联系的框是_。(分数:1.80)A.矩形B.椭圆形C.菱形D.正方形31.下列程序的输出结果是 _ 。 public class Test public static void main (String args) int n=5,sum=0; while (n
15、0) sum+=n; -n; System.out.println(“Sum is“+sum); (分数:2.00)A.sum is 14B.sum is 15C.sum is 10D.sum is 532.下列叙述中正确的是 _ 。(分数:2.00)A.软件交付使用后还需要进行维护B.软件一旦交付使用就不需要再进行维护C.软件交付使用后其生命周期就结束D.软件维护是指修复程序中被破坏的指令33.观察以下代码: public String toString() return super.toString()+“bonus=“+bonus+“; 以下命题正确的是(分数:1.00)A.toStri
16、ng()方法覆盖了 super.toString()方法B.super.toString()方法覆盖了 toString()方法C.toString()方法重载了 super.toString()方法D.super.toString()方法重载了 toString()方法34.下面几种调试方法中不适合调试大规模程序的是 _ 。(分数:2.00)A.强行排错法B.回溯法C.原因排除法D.静态调试35.下列叙述中正确的是_。(分数:2.00)A.在模块化程序设计中,一个模块应尽量多地包括与其他模块联系的信息B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节C.在模块化程序设计中,
17、一个模块内部的控制结构也要符合结构化原则D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法36.下列程序的运行结果是_。 public class Test extends Thread public static void main(String args) Thread t=new Thread(); t.start(); public void run() System.out.println(“Hello“); (分数:1.00)A.程序不能通过编译,因为没有 import语句将 Thread类引入B.程序不能通过编译,因为 Test类没有实现 Runnable接
18、口C.程序通过编译,且运行正常,没有任何输出D.程序通过编译,且运行正常,打印出一个“HeIlo”37.有以下程序: #define N 20 fun(int a,int n,int m) int i; for(i=m; in; i-) ai+1=ai; return m; void main() int i,aN= 1,2,3,4,5,6,7,8,9,10; fun(a,0,N/2); for(i=0; i5; 1+) printf(“%d“,ai); 程序运行后输出的结果是 _ 。(分数:2.00)A.10234B.12344C.12334D.1223438.字符输出流类的直接父类是_。(
19、分数:1.00)A.WriterB.ReaderC.FileD.IOStream计算机二级 JAVA-164答案解析(总分:70.20,做题时间:90 分钟)一、选择题(总题数:38,分数:70.20)1.下列说法中错误的一项是_。(分数:1.00)A.实现完全串行化的类必须实现 writeExternal()方法B.readexternal()方法用于从对象流中读取通过 writeExternal()方法写入的对象的数据C.实现完全串行化的类必须定义一个具有 public访问权限的不带参数的构造方法D.writeExternal()方法的访问权限是 private 解析:解析 实现完全定制串
20、行化的类要遵守以下原则:(1)必须实现 java.io.Externalizable接口;(2)必须实现 writeExternal()方法以保存对象的数据或状态。并且该类必须负责把对象的各个超类的数据保存到流中;(3)必须实现 readExternal()方法,该方法从对象流中读取通过 writeExternal()方法写入的对象的数据,同时还必须恢复父类中的数据;(4)如果对象串行化中使用丁外部定义的格式,则writeExternal()方法和 readExternal()方法都必须完全依照该格式;(5)必须定义一个具有 public访问权限的不带参数的构造方法。选项 A、B 和 C都是正
21、确的,所以选项 D是错误的。2.下面描述中错误的是_。(分数:2.00)A.系统总体结构图支持软件系统的详细设计 B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具解析:解析 软件系统的总体结构图是软件架构设计的依据,它并不能支持软件的详细设计。3.阅读如下程序。 (1) public class Try extends Thread (2) Public static void main (String args) (3) Try t=new Try(); (4) t.start(); (5) (6) (7) Publ
22、ic void run(int j) (8) int i=0; (9) while(i5) (10) System.out.println(“祝你成功!“); (11) i+; (12) (13) (14) 该程序要求打印 5行“祝你成功!”,必须改正程序中的某行代码,程序才能完成,选择正确的修改是_。(分数:2.00)A.将第(1)行的 extends Thread改为 implements RunnableB.将第(3)行的 new Try()改为 new Thread()C.将第(4)行 t.start()改为 start(t)D.将第(7)行的 public void run(int
23、j)改为 public void run() 解析:解析 run()方法不应该带有输入参数,应该把第 7行的“public void run(int j)”改为“public void run()”。4.以下定义线程方法正确的是_。(分数:2.00)A.Public Thread();B.Public Thread(Runnable target)C.Public Thread(ThreadGroup group,Runnable target);D.以上都正确 解析:解析 Tread 类在 Java API的 java. lang包中定义,Thread 类的构造方法有多个,这些方法的一般构造
24、可以表示如下:public Thread (ThreadGroup group,Runnable target,String name);其中参数的含义是:group指明该线程所属的线程组;target提供线程体的对象,线程启动时,该对象的run()方法将被调用;name线程名称,Java 中的每个线程都有自己的名称,如果 name为 null,则 Java自动给线程赋予惟一的名称。上述方法的每个参数都可以为 null。不同的参数去 null值,就成为 Thread类的各种构造方法。所以选项 A、B、C 的构造方法都是正确的。5.对鼠标单击按钮操作进行事件处理的接口是_。(分数:1.00)A.
25、MouseListener B.WindowListenerC.ActionListenerD.KeyListener解析:解析 WindowListener 是监听窗口事件的接口;ActionListener 是监听按钮、文本框、列表框等组件的动作事件的接口;KeyLitener 是监听键盘事件的接口。因此,本题选择 A。6.软件生命周期中的活动不包括_。(分数:2.00)A.需求分析B.市场调研 C.软件测试D.软件维护解析:同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生命周期。它把整个软件生存周期划分为若干阶段,每个阶段有明确的任务,使规
26、模大、结构复杂和管理复杂的软件开发变得容易控制和管理,通常,软件生命周期包括可行性分析与规划、需求分析、软件设计(概要设计和详细设计)、编码、测试、维护等活动,可以将这些活动以适当的方式分配到不同的阶段去完成。所以,软件生命周期中的活动不包括市场调研。7.在定制 Applet的绘图功能时,应该使用的方法是_。(分数:2.00)A.init()B.start()C.paintComponent()D.paint() 解析:解析 paint()是在 Applet中定制绘图功能需要使用的方法。8.一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是_。(分数:1.80)A.1
27、:1联系B.1:m联系C.m:1联系D.m:n联系 解析:解析 一个教师可以上多门课程,一门课程也可以由多个教师教授,这是典型的多对多的 E-R关系。9.Java程序的解释执行过程分为_。(分数:2.00)A.代码的装入、校验、执行 B.代码的校验、装入、执行C.代码的校验、装入、执行D.代码的装入、执行、校验解析:解析 该题考查考生对 Java程序的解释执行过程的掌握。解释执行过程分 3步进行:代码的装入,装入代码的工作由“类装载器”完成;代码的校验,被装入的代码由字节码校验器进行检查;代码的执行,通过校验后,代码便开始执行了。10.已知一个有序表为(13,18,34,47,50,62,83
28、,90,115,134)。当用二分法查找值为 90的元素时,查找成功的比较次数为_。(分数:2.00)A.1B.2 C.3D.9解析:根据二分法的查找过程,首先将 90与表中的中间元素 50进行比较,由于 90大于 50,所以在线性表的后半部分查找。第二次比较的元素是后半部分的中间元素,即 90,这时两者相等,即查找成功。11.下列有关数据库的描述,正确的是 _ 。(分数:2.00)A.数据处理是将信息转化为数据的过程B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C.关系中的每一列称为元组,一个元组就是一个字段D.如果一个关系中的属性或属性组并非该关系的关键字。但它是另一个
29、关系的关键字,则称其为本关系的外关键字 解析:12.文件操作中,用于移动文件指针到指定位置的是_。(分数:2.00)A.seek(long pos) B.length()C.find()D.skipBytes(int n)解析:解析 seek(long pos)是随机文件记录的查找,满足题意。length()方法是求随机文件字节长度的方法,不符合题意;Java 中没有 find()方法;skipBytes(int n)方法是使随机文件访问跳过指定字节,不符合题意。13.有以下程序: void f(int n,int *r) int r1=0, if (n%3=0) r1=n/3; else i
30、f (n%5=0) r1=n/5; else f(-n,r1); *r=r1: main() (int m=7,r; f(m,r); printf(“%d/n“,r); 程序运行后输出的结果是_。(分数:2.00)A.2 B.1C.3D.0解析:14.对下列二叉树讲行中序遍历的结果是_。 (分数:1.80)A.DBXEAYFZC B.XYZDEFBCAC.ZYXFEDCBAD.YZCFAXEDB解析:解析 中序遍历的方法是:先遍历左子树,然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。所以中序遍历的结果是 DBXEAYFZC15.将较
31、长的数据类型转换为较短的整数类型,要进行 _ 。(分数:1.00)A.类型的自动转换B.类型的强制转换 C.无需转换D.无法实现解析:16.结构化程序设计的一种基本方法是_。(分数:2.00)A.筛选法B.递归法C.归纳法D.逐步求精法 解析:解析 结构化程序设计的主要方法是自顶向下,逐步求精,模块化,限制使用 GOTO语句。所以选择 D。17.下列说法中错误的一项是_。(分数:3.00)A.共享数据的所有访问都必须使用 synchtonized加锁B.共享数据的访问不一定全部使用 synchronized加锁 C.临界区必须使用 synchronized标识D.所有的对共享数据的访问都是临界
32、区解析:解析 共享数据的所有访问一定要作为临界区,用 synchronized标识,这样保证了所有的对共享数据的操作都通过对象锁的机制进行控制。18.有两个关系 R和 T如下,则由关系 R得到关系 T的操作是 (分数:2.00)A.选择 B.投影C交D并解析:解析 选择运算是从关系中找出满足给定条件的那些元组,其中条件是以逻辑表达式给出的,选取值为真的元组,这种运算是从水平方向抽取元组。选项 A正确。19.有下面程序段: Public class ArrayTest Public static void main(String args) int intArray=new int3; for(
33、int I=0;I3;I+) intArrayI=I+2; System.out.println(“IntArray“+I+“-“+intArrayI); System.out.println(“-“); Int arrLen=4; IntArray=new intarrLen; For(int j=intArray.length;j=0;j- intArray j=j*3; System. out.println(“hello“+intArrayj); 则运行的结果是 _ 。(分数:2.00)A.编译出错B.编译通过,但运行出错 C.可以运行,但有错误D.以上都不对解析:解析 这是一道考查数
34、组引用的题,目的是考查如何在程序中引用初始化后的数组。引用的方式为 arrayNameindex),其中 index为数组的下标,可以为整数、变量和表达式,范围从 0开始,一直到数组的长度减 1。在 Java语言中,是要对数组下标进行检查的。因此当程序运行到数组的长度值时,就发生了越界现象。20.阅读如下程序。 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); 程
35、序运行结果是_。(分数:2.00)A.566B.556 C.677D.666解析:解析 语句 System.out.println(c);输出 c的值 5;System.out.println(c+);输出 c的值 5后,c再自增 1变成 6;System.out.println(c);则输出 c的值 6。21.下列数据结构中,能用二分法进行查找的是_。(分数:2.00)A.顺序存储的有序线性表 B.循环链表C.二叉链表D.链式存储的有序线性表解析:二分法查找只用于顺序存储的有序线性表,而顺序查找用于顺序存储的非有序线性表和线性链表。22.执行下列代码段之后,变量 z的值为_。 Public
36、class Test8 public static void main(String args) int x=2; int y=3; int z=4; z-= y-x-; System.out.println(z); (分数:3.00)A.1B.2C.3D.4 解析:解析 表达式中的运算次序应该是先对 y做减量运算,得到 y=2,然后再取 x的值 x=2,做减法运算得到 0,最后用 z减去 0,得到答案为 4。23.在数据管理技术发展的 3个阶段中,数据共享最好的是 _ 。(分数:2.00)A.人工管理阶段B.文件系统阶段C.数据库系统阶段 D.3个阶段相同解析:解析 数据管理技术的发展经历了
37、 3个阶段:人工管理阶段、文件系统阶段和数据库系统阶段,人工管理阶段无共享,冗余度大:文件管理阶段共享性差,冗余度大:数据库系统管理阶段共享性大,兀余度小。24.阅读下面的程序段: public class Sun public static void main(String args ) int a=0 for(int i=1;i=3;i+) for(int j=1;j-i;j+) for(int k=j;k=3;k+) a=a+1; System.out.println(A) 我; 执行上面的 3重循环后,a 的值为_。(分数:2.00)A.3B.9C.14 D.21解析:解析 本题考查对
38、 for循环嵌套的理解。本题应用 3重嵌套循环,循环嵌套的执行,当外层循环执行 1次,内层循环就要执行所有循环。 i=1 时,j=1,k 执行 3次循环得到 a的值 3;i=2, j=1 时,k执行 3次循环得到 a的值加 3并覆盖原值,j=2 时,k 执行两次循环,a 的值加 2;依次,i=3 时,i 执行3次。其中,分别执行 3、 2、1 次,a 的值分别加 3、2、1,最后得到 a的值 14。故本题答案是 C。25.已知: struct st int n; struct st *next; ; static struct st a3=1,a1,3,a2,5,a0),*p; 如果下述语句的
39、显示是 2,则对 p的赋值是 _ 。 printf(“%d“,+(p-next-n);(分数:2.00)A.p=a0;B.p=a1;C.p=a2; D.p=a3;解析:26.下列命题中,错误的是_。(分数:2.00)A.Java编程时,要求应尽量多用公共变量 B.Java编程时,要求应尽量少用公共变量C.Java编程时,要求应尽量不用公共变量D.Java编程时,要求应尽量使用私有变量解析:解析 本题考查 Java编程规范。Java 编程中,为了减少模块耦合性,应当少用甚至不用公共变量;为了增强模块独立性,应当尽量使用私有变量。27.下列哪个是非法的 Java标识符? _(分数:1.00)A.T
40、ree_GlassesB.FirstJavaAppletC._$theLastOneD.Two273.5 解析:解析 本题主要考查 Java语言的标识符这个知识点。Java 语言的标识符必须由字母、下划线(_)、美元符号($)开始,其余字符可以是上述 3种符号或数字(09)。Java 语言使用 Unicode字符集,所以标识符中使用的字母包括下面几种:AZ;az;Unicode 字符集中序号大于 0xC0的所有符号。选项 A是正确的,下划线“”是可以在标识符里面出现的;选项 B是正确的;选项 C是正确的,符号$也是可以在标识符里面出现的;选项 D是错误的,符号“.”不能在标识符里面出现。故本题
41、答案是 D。28.当一个 Applet被加载,后续对 Applet生命周期方法的调用中,可能存在的次序是_。(分数:1.80)A.start(), stop(), destroy()B.init(), start(), stop(), start(), stop(), destroy() C.start(), init(), stop(), destroy()D.init(), start(), destroy()解析:解析 init()一般用来完成所有必需的初始化操作,start()是在初始化之后 Applet被加载时调用,stop()在 Applet停止执行时调用,destory()是 A
42、pplet从系统中撤出时调用。29.为判断字符变量 c的值不是数字也不是字母时,应采用下述表达式 _ 。(分数:2.00)A.c=48|c=57c=65|c=90c=97|c=122B.!(c=48|c=57c=65|c=90c=97|c=122)C.c=48c=57|c=65c=90|c=97c=122D.!(c=48c=57|c=65c=90|c=97c=122) 解析:30.在 E-R图中,表示实体联系的框是_。(分数:1.80)A.矩形B.椭圆形C.菱形 D.正方形解析:解析 本题考察 E-R的关系,在 E-R图中,用菱形来表示实体之间的联系。矩形表示实体集,椭圆形表示属性。31.下列
43、程序的输出结果是 _ 。 public class Test public static void main (String args) int n=5,sum=0; while (n0) sum+=n; -n; System.out.println(“Sum is“+sum); (分数:2.00)A.sum is 14B.sum is 15 C.sum is 10D.sum is 5解析:解析 本题目实际上是利用循环求 1到 n的和,n 为 5,所以结果为 15。32.下列叙述中正确的是 _ 。(分数:2.00)A.软件交付使用后还需要进行维护 B.软件一旦交付使用就不需要再进行维护C.软件
44、交付使用后其生命周期就结束D.软件维护是指修复程序中被破坏的指令解析:33.观察以下代码: public String toString() return super.toString()+“bonus=“+bonus+“; 以下命题正确的是(分数:1.00)A.toString()方法覆盖了 super.toString()方法 B.super.toString()方法覆盖了 toString()方法C.toString()方法重载了 super.toString()方法D.super.toString()方法重载了 toString()方法解析:34.下面几种调试方法中不适合调试大规模程序
45、的是 _ 。(分数:2.00)A.强行排错法B.回溯法 C.原因排除法D.静态调试解析:解析 本题考查对几种调试方法的掌握。其中,强行排错法是最常用也是最低效的,主要思想是通过计算机找错,适合调试大规模程序。回溯法是从出现错误征兆处开始,人工沿控制流程往回追踪,直至发现出错的根源。这是在小程序中常用的一种有效的调试方法。程序变大后,可能的回溯路线显著增加,以致人工进行完全回溯变得不可能。原因排除法是靠演绎、归纳以及二分法来实现的,适合调试大规模程序。静态调试也是种调试手段,主要是指通过人的思维来分析源程序代码和排错。35.下列叙述中正确的是_。(分数:2.00)A.在模块化程序设计中,一个模块
46、应尽量多地包括与其他模块联系的信息B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则 D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法解析:解析 选项 A错误,在模块化设计中,要求将一个大程序按人们能理解的大小规模进行分解,使每个模块都能易于理解,各模块的功能尽量单一,各模块之间的联系尽量的少。 选项 B错误,自顶向下、逐步细化的设计过程土要包括两个方面:将复杂问题的解法分解和细化成由若干模块组成的层次结构;将一个模块的功能逐步分解细化为一系列的处理步骤,直到某种程序设计语言的语句或某种机器指令。即在自顶向下、逐步细化的设计过程中,是按照先全局后局部、先整体后细节、先抽象后具体的方法设计程序。 选项 D错误,由于在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则,所以,在程序设计过程中,结构化程序设计方法与模块化程序设计方法是要同时采用的。 选项 C为正确答案。36.下列程序的运行结果是_。 public class Test extends Thread public static void main(String args) Thread t=new Thread(); t.start(); public void run() System.out.pr