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