1、二级 JAVA 机试 37 及答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.下面的程序是 10000 以内的“相亲数”。所谓相亲数是指这样的一对数:甲数的约数之和等于乙数,而乙数的约数等于甲数,(例如 220 和 284 是一对相亲数)请在程序的每条横线处填写一条语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 public class QinShu public static void main(String args ) for(int n=1;n9999;n+) i
2、nt s=divsum(n); if(U /U) System.out.println(n+“,“+s); public static int divsum(int n)/该方法的功能是求一个数的所有约数 int s=0; for(int i=1;_i+) if(_)s+=i; return s; (分数:30.00)_二、B2简单应用题/B(总题数:1,分数:40.00)2.请完成下列 Java 程序:用 awt 实现一个图形用户界面,包含一个 List 构件和一个 TextField 构件,List 中包含 5 个项目。要求选择不用的项目时,能在 TextField 构件中显示出相关的信息
3、,包括事件的名称,选择的项目编号和项目的状态。 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: (分数:40.00)_三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是通过两个文本框获得用户输入两个数,按回车键计算这两个数的商。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: (分数:30.00)_二级 JAVA 机试 37 答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数
4、:30.00)1.下面的程序是 10000 以内的“相亲数”。所谓相亲数是指这样的一对数:甲数的约数之和等于乙数,而乙数的约数等于甲数,(例如 220 和 284 是一对相亲数)请在程序的每条横线处填写一条语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 public class QinShu public static void main(String args ) for(int n=1;n9999;n+) int s=divsum(n); if(U /U) System.out.println(n+“,“+s); public
5、static int divsum(int n)/该方法的功能是求一个数的所有约数 int s=0; for(int i=1;_i+) if(_)s+=i; return s; (分数:30.00)_正确答案:()解析:ns&divsum(s)=n in; n%i=0 解析 本题主要考查 for 循环语句、逻辑与运算符(&)和求余运算符(%)。解答本题的关键是熟悉使用 for 循环语句。在本题中, if(ns&divsum(s)=n)语句是用来调用 divsum(n)方法(其中 n 为方法的实际参数)和判断某个自然数是否为“完全数”。for(int i=1;in;i+)循环语句是用来控制被判断
6、的数是否为“相亲数”。if(n%i=0)语句是用来判断数 n 是否能被数 i 整除。二、B2简单应用题/B(总题数:1,分数:40.00)2.请完成下列 Java 程序:用 awt 实现一个图形用户界面,包含一个 List 构件和一个 TextField 构件,List 中包含 5 个项目。要求选择不用的项目时,能在 TextField 构件中显示出相关的信息,包括事件的名称,选择的项目编号和项目的状态。 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: (分数:40.00)_正确答案:()解析:pack() eventparamStrin
7、g() 解析 本题主要考查 awt 的 List 和 TextField 构件的简单应用。解题关键是熟悉上述构件的基本使用方法,熟悉 Frame 构件的基本方法,会使用 ItemEvent 的paramString()方法获得事件的基本信息。本题中,第 1 个空,需要填入 pack(),否则图形用户界面无法正常显示;第 2 个空,调用 event 对象的 paramString()方法来实现显示事件基本信息的功能。三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是通过两个文本框获得用户输入两个数,按回车键计算这两个数的商。请改正程序中的错误(有下
8、划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: (分数:30.00)_正确答案:()解析:IntegerparseInt(s1) IntegerparseInt(s2) StringvalueOf(out) 解析 本题主要考查Applet 窗口和用户自己编写异常处理方法的综合应用。解题关键是能根据实际问题找到异常发生的根源,并依此编写异常处理方法,同时还需要有 Applet 窗口的基本知识,以及熟悉 Applet 事件机制。本题中,第一处和第二处错误一样,误用了 String 类的方法,这里应该是将 String 类的对象转化为 int 类型,第三处错误与之前的两个错误相反,应该将 int 类型的变量 out 转化为 String 类的对象。