1、二级 JAVA 机试 34 及答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.10 位同学参加某次团队测试,要求每位同学都必须及格、同时团队平均分不少于 80 分,整个团队才能够通过。每位同学的成绩可以通过随机数产生(0100)。请在程序的每条横线处填写一条语句,是程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 _ pulic class While public static void main(String args ) int fenshu=60; int sumfensh
2、u=0; int i=1; while(fenshu=60) System.out.println(fenshu+ “ ) sumfenshu+=fenshu; i+; System.out.println(); if(_) System.out.println(“团队通过“); else System. out. println ( “团队测试不通过“); (分数:30.00)_二、B2简单应用题/B(总题数:1,分数:40.00)2.请完成下列 Java 程序:假设某家银行,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有两个顾客,每人都分 3 次,每次 50 元将钱汇入。编写
3、一个程序,模拟实际作业。要求实现 2 个类,一个是银行类,一个是顾客类。 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: Customer2 :sum= 50 Customer1 :sum= 50 Customer1 :sum= 100 Customer2 :sum= 100 Customer1 :sum= 150 Customer2 :sum= 150 class bank private static int sum=0; public static void add(int.n,char c) int tmp=sum; _; try
4、 Thread.sleep(int) (2000-500+1)*(Math.random()+500); catch(InterruptedException e) sum=tmp; System.out.println(“Customer“+c+“ :sum= “+sum); class customer extends Thread static char flag17_2 = 1; public void run() char myflag17_2; synchronized(this) myflag17_2 = flag17_2+; for(int i=1;i=3;i+) _; pub
5、lic class ex17_2 public static void main(String args) customer c1=new customer(); customer c2=new customer(); c1.start(); c2.start(); (分数:40.00)_三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是进行整数加法运算,要求有 3 个文本区域,2 个作为输入,一个作为输出,并且有异常处理来判断输入的数字是否符为整型,如果是则进行运算,否则抛出异常并显示于第3 个文本区域中。请改正程序中的错误(有下划线的语句),
6、使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: (分数:30.00)_二级 JAVA 机试 34 答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.10 位同学参加某次团队测试,要求每位同学都必须及格、同时团队平均分不少于 80 分,整个团队才能够通过。每位同学的成绩可以通过随机数产生(0100)。请在程序的每条横线处填写一条语句,是程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 _ pulic class While public stat
7、ic void main(String args ) int fenshu=60; int sumfenshu=0; int i=1; while(fenshu=60) System.out.println(fenshu+ “ ) sumfenshu+=fenshu; i+; System.out.println(); if(_) System.out.println(“团队通过“); else System. out. println ( “团队测试不通过“); (分数:30.00)_正确答案:()解析:import javamath*; Mathrandom()*100 (i=10) pu
8、blic static void add(int.n,char c) int tmp=sum; _; try Thread.sleep(int) (2000-500+1)*(Math.random()+500); catch(InterruptedException e) sum=tmp; System.out.println(“Customer“+c+“ :sum= “+sum); class customer extends Thread static char flag17_2 = 1; public void run() char myflag17_2; synchronized(th
9、is) myflag17_2 = flag17_2+; for(int i=1;i=3;i+) _; public class ex17_2 public static void main(String args) customer c1=new customer(); customer c2=new customer(); c1.start(); c2.start(); (分数:40.00)_正确答案:()解析:tmp=tmp+n bank.add(50,myflag17_2) 解析 本题主要考查线程的同步和设计简单的类来模拟现实问题的简单应用。解题关键是熟练掌握面向对象的编程思想,熟悉 J
10、ava 线程的同步编程,会使用 Math类的随机数方法。本题中,第 1 个空,银行类对客户的存款进行累加;第 2 个空,在客户类中,通过使用银行类的对象 bank 调用 add()方法实现 3 次汇款的操作,将钱数和客户标志作为参数传递给 add()方法。三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是进行整数加法运算,要求有 3 个文本区域,2 个作为输入,一个作为输出,并且有异常处理来判断输入的数字是否符为整型,如果是则进行运算,否则抛出异常并显示于第3 个文本区域中。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: (分数:30.00)_正确答案:()解析:add(tf1) add(11) tf3setText(IntegertoString(x) 解析 本题主要考查 Applet 的编程方法和执行过程,Applet 的生命周期和 AWT 的事件处理模型。解题关键是熟悉上述 3 个知识点并且能够灵活运用 Applet 和 AWT 的基本接口和基本构件。本题中,第一处和第二处应该交换位置,否则 Label 和TextField 的位置次序错误;第三处应该是第三个 TextField 的对象 tf3 调用 setText()方法,而不是tf2。