1、二级 JAVA 机试-187 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:33.00)1.下面是打印输出所有和为 10000 的连续整数(如:1998,1999,2000,2001,2002)的程序,请在每条横线处填写适当语句,使程序的功能完整。注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。public class Sum10000public static void main(String args )int i;int j;int k;int sum;for(i=1;i=10000;_)sum=0;j=i;_
2、;while(sum10000)_if(sum=10000) for(k=i;k=j;k+)System.out.println(k+ “);System.out.println(“*“);(分数:33.00)_二、2简单应用题(总题数:1,分数:33.00)2.请完成下列 Java 程序:实现 2 个下拉式菜单,一个包含 exit 菜单项,另一个包含 item1 和 item2 共 2个菜单项。要求选择 exit 菜单项时,退出程序;选择 item1 菜单项之后,item1 项变为不可选而 item2可选;选择 item2 菜单项时,item2 变为不可选而 item1 可选。注意:请勿改动
3、 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:(分数:33.00)_三、3综合应用题(总题数:1,分数:34.00)3.下面是一个 Applet 程序,其功能是根据公式:y=a*sin(x)绘制正弦曲线。要求窗口中有一个文本区作为曲线峰值 a 的输入,可以判断输入的数字是否符合要求,一个 ok 按钮,点击则在画布中绘制曲线,以画布中的横坐标值作为 sin()的参数 x。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:(分数:34.00)_二级 JAVA 机试-187 答案解析(总分:
4、100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:33.00)1.下面是打印输出所有和为 10000 的连续整数(如:1998,1999,2000,2001,2002)的程序,请在每条横线处填写适当语句,使程序的功能完整。注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。public class Sum10000public static void main(String args )int i;int j;int k;int sum;for(i=1;i=10000;_)sum=0;j=i;_;while(sum10000)_if(sum=
5、10000) for(k=i;k=j;k+)System.out.println(k+ “);System.out.println(“*“);(分数:33.00)_正确答案:(i+sum+=i;sum+=+j;)解析:解析本题主要考查 for 循环语句、while 循环语句。解答本题的关键是熟练使用 for 循环语句、while 循环语句的使用。在本题中,for(i=1;i=10000;i+)语句中的 i+是用来使循环变量递增 1,sum+=i;语句的功能是用来累加循环变量 i,sum+=+j;语句的功能是用来累加循环变量 j。二、2简单应用题(总题数:1,分数:33.00)2.请完成下列 J
6、ava 程序:实现 2 个下拉式菜单,一个包含 exit 菜单项,另一个包含 item1 和 item2 共 2个菜单项。要求选择 exit 菜单项时,退出程序;选择 item1 菜单项之后,item1 项变为不可选而 item2可选;选择 item2 菜单项时,item2 变为不可选而 item1 可选。注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:(分数:33.00)_正确答案:(strCommandequals(”item1”)strCommandequals(”item2”)解析:解析本题主要考查 AWT 建立菜单的基本方法和事件处
7、理机制,以及控制菜单项的可选与否。解题关键是熟悉菜单的创建和设置方法,掌握菜单的事件处理模型,通过事件处理机制实现对菜单项的设置。本题中,第 1个空,判断菜单命令是由选择 item1 项发出的,则进行相关的设置;第 2 个空,判断菜单命令是由选择item2 项发出的,则进行相关的操作。三、3综合应用题(总题数:1,分数:34.00)3.下面是一个 Applet 程序,其功能是根据公式:y=a*sin(x)绘制正弦曲线。要求窗口中有一个文本区作为曲线峰值 a 的输入,可以判断输入的数字是否符合要求,一个 ok 按钮,点击则在画布中绘制曲线,以画布中的横坐标值作为 sin()的参数 x。请改正程序
8、中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:(分数:34.00)_正确答案:(y=getSize()height/2int y2=y+(int)(a*Mathsin(i+1)a=FloatparseFloat(tf1getText()解析:解析本题主要考查 Applet 的图形绘制,Applet 的生命周期以及其事件处理机制。解题关键是熟悉 Applet 窗口中坐标的布局,会使用 TextField,Canvas,Button 等构件,会使用内部类继承 Canvas 类,实现在画布中绘制图像的方法,并通过在主程序中结合事件处理机制来调用该方法。本题中,第一处,由于画布中的纵坐标是从上向下从 0 开始的,因此需要有一个相对坐标原点,这里取画布的一半;第二处,计算下一点的坐标,应该是相对于坐标原点 y 而言的坐标值,不应该是 y1;第三处,a 为 float 类型的变量,因此要用 Float 类的类型转换方法。