1、二级 JAVA机试 31及答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.下面的程序是求 9999以内的“完全数”。所谓完全数是指这样的自然数:它的各个约数(不包括该数自身)之和等于该数自身。如 28=1+2+4+7+14就是一个完全数。请在程序的每条横线处填写一个语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 public class QuanShu public static void main(String args) for(int n=l;n9999;n+) i
2、f(_)System.out.println(n); public static iht divsum(int n)/该方法功能是求一个数的所有约数 int s=0; for(int i=l;in;i+) if(_) _ return s; (分数:30.00)_二、B2简单应用题/B(总题数:1,分数:40.00)2.请完成下列 Java程序:用 swing实现一个简单的学生成绩管理器,显示出学生的姓名,java 成绩,c+成绩和这两门课的平均成绩,学生一共有 4个人(Mike,Jack 等)。要求可以修改学生的姓名和成绩,并且能够直接计算出平均成绩,如改变 Mike 的 java成绩后,在
3、平均成绩栏会自动更新为新的平均成绩。注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: (分数:40.00)_三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet程序,实现实心或者空心矩形的绘制。要求鼠标在 Applet窗口中拖动实现矩形的绘制,可以选择填充或者空心,有按钮用来清空窗口中的图像。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: (分数:30.00)_二级 JAVA机试 31答案解析(总分:100.00,做题时间:90 分钟
4、)一、B1基本操作题/B(总题数:1,分数:30.00)1.下面的程序是求 9999以内的“完全数”。所谓完全数是指这样的自然数:它的各个约数(不包括该数自身)之和等于该数自身。如 28=1+2+4+7+14就是一个完全数。请在程序的每条横线处填写一个语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 public class QuanShu public static void main(String args) for(int n=l;n9999;n+) if(_)System.out.println(n); public stat
5、ic iht divsum(int n)/该方法功能是求一个数的所有约数 int s=0; for(int i=l;in;i+) if(_) _ return s; (分数:30.00)_正确答案:()解析:n=divsum(n) n%i=0 s+=i; 解析 本题考查 for循环语句、求余运算符(%)和 Java语言的方法的使用。解答本题的关键是熟悉使用 for循环语句。在本题中,if(n=divsum(n)语句是用来调用divsum(n)方法(其中 n为方法的实际参数)和判断某个自然数是否为“完全数”。n%i=0 是用来判断数 n是否能被数 i整除, s+=i;是用来累加某个自然数的所有约
6、数。二、B2简单应用题/B(总题数:1,分数:40.00)2.请完成下列 Java程序:用 swing实现一个简单的学生成绩管理器,显示出学生的姓名,java 成绩,c+成绩和这两门课的平均成绩,学生一共有 4个人(Mike,Jack 等)。要求可以修改学生的姓名和成绩,并且能够直接计算出平均成绩,如改变 Mike 的 java成绩后,在平均成绩栏会自动更新为新的平均成绩。注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: (分数:40.00)_正确答案:()解析:(String)jtgetValueAt(nRow,i) strDatanRo
7、w3=FloattoString(fAverage) 解析 本题主要考查用 swing基本构件设计图形用户界面,以及对二维数组的基本操作。解题关键是熟悉 swing基本构件 JTable的使用方法,熟悉 swing的基本事件机制,会使用 addTableModelListener()来注册该模型的一个 TableModelListener,一旦表格内容改变,tableChanged()方法会被执行,使用 getFirstRow()方法来得到数据被改变的行并重新计算平均值,由于数组数据是用来存储表格的数据,可以直接更改该数组的值。本题中,第 1个空,根据参数 nRow和 i定位相应的数组中的数据
8、;第 2 个空,修改数组中记录平均值的单元中的数据。三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet程序,实现实心或者空心矩形的绘制。要求鼠标在 Applet窗口中拖动实现矩形的绘制,可以选择填充或者空心,有按钮用来清空窗口中的图像。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: (分数:30.00)_正确答案:()解析:gclearRect(0,0,getSize()width,getSize()height) bStyle=false bStyle=true 解析 本题主要考查 Applet图形界面编程与鼠标事件相结合进行简单的图形绘制。解题关键是熟悉 Applet中的事件机制,会利用鼠标事件进行简单的矩形绘制,通过 mouseUp(),mouseDown()来获取鼠标移动的坐标,熟悉 CheckboxGroup类 Checkbox类的用法,通过 Checkbox来控制矩形是否填充。本题中,第 1个空,对象 g的方法 clearRect()的最后两个参数应该对调因为第 3个参数是代表矩形的宽度,第四个是高度;第2个空,点击第 1个 Checkbox是不用填充,这里 bStyle=false是表示用填充;第 3个空,解释和第 2个空的相似,正好相反。