1、计算机二级(JAVA)上机考试 22 及答案解析(总分:-3.00,做题时间:90 分钟)1.基本操作题 下列程序中,要求计算 1+2+3+100 的值,并显示计算结果。请将程序补充完整。 程序运行结果如下: 5050 public class ex6_1 public static void main(String args) ex6_1 obj6_1=new ex6_1(); obj6_1.method6_1(); public void method6_1() int sum; ; for(int i=1;i=100;i+) ; ; (分数:-1.00)_2.简单应用题 请完成下列 Ja
2、va 程序:运行 3 个线程,每一个线程有自己的标志,用 a,b,c 表示,每个线程显示一个“Start“信息和一个“End“信息并且间隔地显示 2 个“Loop“信息(间隔变化为(0.52)秒之间的随机延迟)。 程序运行结果如下:(注:由于时间间隔为随机数,所以,运行结果的顺序不惟一) a Start b Start c Start b Loop a Loop b Loop b End c Loop a Loop a End c Loop c End 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 public class ex2_2 implements
3、 Runnable static char flag2_2 = a; public static void main(String arg) ex2_2 obj2_2 = new ex2_2(); Thread thread2_2 = new Thread(obj2_2); thread2_2.start(); thread2_2 = new Thread(obj2_2); thread2_2.start(); thread2_2 = new Thread(obj2_2); thread2_2.start(); public void run() char myflag2_2; synchro
4、nized(this) ; System.out.println(myflag2_2 + “ Start“);for(int i=0; i_3.综合应用题 下面是一个 Applet 程序,其功能是建立 2 个文本区域,一个为编辑区,一个为只读区;建立 2 个按钮,一个实现将编辑区中被鼠标选定的文本内容拷贝到只读区中,一个实现将只读区的全部文本内容清空。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: (分数:-1.00)_计算机二级(JAVA)上机考试 22 答案解析(总分:-3.00,做题时间:90 分钟)1.基本操作
5、题 下列程序中,要求计算 1+2+3+100 的值,并显示计算结果。请将程序补充完整。 程序运行结果如下: 5050 public class ex6_1 public static void main(String args) ex6_1 obj6_1=new ex6_1(); obj6_1.method6_1(); public void method6_1() int sum; ; for(int i=1;i=100;i+) ; ; (分数:-1.00)_正确答案:(sum=0 sum+=i 或者 sum=sum+i System.out.println(sum) )解析:本题主要考查整
6、型变量的初始化、累加和输出操作,以及 for 循环语句用法。解题关键是熟悉整型变量的基本操作,熟悉并能利用 for 循环语句解决一些简单的数学问题。本题中,第 1 个空,需要对变量sum 进行初始化,否则以后进行累加时会产生错误;第 2 个空,填入累加的表达式;第 3 个空,调用基本I/O 方法将运算结果显示出来。2.简单应用题 请完成下列 Java 程序:运行 3 个线程,每一个线程有自己的标志,用 a,b,c 表示,每个线程显示一个“Start“信息和一个“End“信息并且间隔地显示 2 个“Loop“信息(间隔变化为(0.52)秒之间的随机延迟)。 程序运行结果如下:(注:由于时间间隔为
7、随机数,所以,运行结果的顺序不惟一) a Start b Start c Start b Loop a Loop b Loop b End c Loop a Loop a End c Loop c End 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 public class ex2_2 implements Runnable static char flag2_2 = a; public static void main(String arg) ex2_2 obj2_2 = new ex2_2(); Thread thread2_2 = new Thre
8、ad(obj2_2); thread2_2.start(); thread2_2 = new Thread(obj2_2); thread2_2.start(); thread2_2 = new Thread(obj2_2); thread2_2.start(); public void run() char myflag2_2; synchronized(this) ; System.out.println(myflag2_2 + “ Start“);for(int i=0; i_正确答案:(myflag2_2 = flag2_2+ (int)(high-low+1)*(Math.rando
9、m() + low )解析:本题主要考查线程的创建与同步和控制随机数产生范围的算法。解题关键是,熟悉线程的概念和使用,线程的同步控制,char 类型数据的操作,以及熟悉随机数产生的方法 Math.random(),并且能够进一步根据需要控制随机数产生的范围。在本题中,main()方法中创建 3 个线程,这 3 个线程使用 obj2_2 对象。线程调用 start()方法来中断,使一个新的线程开始执行,并且调用 run()方法。第 1 空,run()方法为自己设置一个线程的标志,并为下一个线程的使用增加这个标志值,由于此时线程正在处理中,因此在同步块中完成修改标志的语句放在同步块中。第 2 个空
10、,通过 low 和 high 两个参数,控制产生随机数的范围,将基本的数学思想应用于程序设计中。3.综合应用题 下面是一个 Applet 程序,其功能是建立 2 个文本区域,一个为编辑区,一个为只读区;建立 2 个按钮,一个实现将编辑区中被鼠标选定的文本内容拷贝到只读区中,一个实现将只读区的全部文本内容清空。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: (分数:-1.00)_正确答案:(tArea2.setEditable( false ) tArea2.setText(tArea1.getSelectedText(
11、) tArea2.setText( “ ) )解析:本题主要考查 Applet 窗口、其事件处理机制以及对文本区域的相关操作。解题关键是熟悉TextArea 的基本方法,如 setEditable()方法就是用来确定不用的编辑模式的一个重要的方法,并且需要明确题目要求的 2 个文本区域的区别和联系,根据不同的事件,来对这两个文本区域进行操作。本题中,第 1 个空,将第 2 个文本区域 tArea2 的编辑模式设定为只读,注意参数为 false,因为默认的编辑模式设定为可编辑的,用 true 表示,所以参数应该是 false;第 2 个空,响应点击 Copy 按钮事件的语句应该将第 1 个文本区 tArea1 的被选择的文本内容取出放入第二个文本区 tArea2 中;第 3 个空,响应点击Clear 按钮事件的语句应该将第 2 个文本区 tArea2 中的所有文本内容清空。