1.基本操作题1. 10位同学参加某次团队测试,要求每位同学都必须及格、同时团队平均分不少于80分,整个团队才能够通过。每位同学的成绩可以通过随机数产生(0~100)。请在程序的每条横线处填写一条语句,是程序的功能完整。
注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。
_______________
pulic class While{
public static void main(String args[ ]){
int fenshu=60;
int sumfenshu=0;
int i=1;
while((fenshu>=60)&&(i<=10 ){
fenshu=(int) (_________________________);
System.out.println(fenshu+ "" )
sumfenshu+=fenshu;
i++;
}
System.out.println();
if(_______________________)
System.out.println("团队通过");
else
System. out. println ( "团队测试不通过");
}
}
import java.math.*;
Math.random()*100
(i==10)&&((sumfenshu/10)>=80)
[解析]
本题主要考查while循环语句的用法。解答本题的关键是熟练使用while循环语句。在本题中,import java.math.*;是用来导入java.math这个数学计算包,Math.random()*100语句是用来产生100个随机数,if((i==10)&&((sumfenshu/10)>=80))语句的功能是用来判断团队的人数是否为10、平均分数是否大于等于80。
2.简单应用题1. 请完成下列Java程序:假设某家银行,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有两个顾客,每人都分3次,每次50元将钱汇入。编写一个程序,模拟实际作业。要求实现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{
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++)
______________________;
}
}
public class ex17_2{
public static void main(String args[]){
customer c1=new customer();
customer c2=new customer();
c1.start();
c2.start();
}
}
tmp=tmp+n
bank.add(50,myflag17_2)
[解析]
本题主要考查线程的同步和设计简单的类来模拟现实问题的简单应用。解题关键是熟练掌握面向对象的编程思想,熟悉 Java线程的同步编程,会使用Math类的随机数方法。本题中,第1个空,银行类对客户的存款进行累加;第2个空,在客户类中,通过使用银行类的对象bank调用add()方法实现3次汇款的操作,将钱数和客户标志作为参数传递给add()方法。
3.综合应用题1. 下面是一个Applet程序,其功能是进行整数加法运算,要求有3个文本区域,2个作为输入,一个作为输出,并且有异常处理来判断输入的数字是否符为整型,如果是则进行运算,否则抛出异常并显示于第3个文本区域中。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:

import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
/*
<applet code="ex17_3.class" width=800 height=400 >
</applet>
*/
public class ex17_3 extends Applet implements ActionListener {
TextField tf1 = new TextField(5);
TextField tf2 = new TextField(5);
TextField tf3 = new TextField(5);
Label 11 = new Label("+");
Label 12 = new Label("=");
Button btn= new Button("相加");
public void init(){
add(11); add(tf1); add(tf2);
add(12);
add(tf3);
add(btn);
btn.addActionListener(this);
}
public void actionPerformed(ActionEvent ae) {
try{
int a=Integer.parseInt(tf1.getText());
int b=Integer.parseInt(tf2.getText());
int x = a + b;
tf2.setText(Integer.toString(x)); }
catch(NumberFormatException nfe){
tf3.setText("error!");
}
}
}
ex17_3.html <HTML>
<HEAD>
<TITLE>ex17_3</TITLE>
</HEAD>
<BODY>
<applet code="ex17_3.class. width=800 height=400 >
</applet>
</BODY>
</HTML>
add(tf1)
add(11)
tf3.setText(Integer.toString(x))
[解析]
本题主要考查Applet的编程方法和执行过程,Applet的生命周期和AWT的事件处理模型。解题关键是熟悉上述3个知识点并且能够灵活运用Applet和AWT的基本接口和基本构件。本题中,第一处和第二处应该交换位置,否则Label和TextField的位置次序错误;第三处应该是第三个TextField的对象tf3调用setText()方法,而不是tf2。