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