1、二级 JAVA 机试-105 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下面程序执行结果为:11=121=2 22=431=3 32=6 33=991=9 92=18 93=27 94=36 95=45 96=54 97=63 98=72 99=81请在每条横线处填写一个语句,使程序的功能完整。注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。public class ForLoopStatementpublic static void main(String args) int m,n;for(m
2、=1; m10; _)_System.out.print(m+“*“+n+“=“+m*n+“ “);_(分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.请完成下列 Java 程序:计算下列级数之和,直到该项之绝对值小于 0.001 为止。S=1/1!-1/2!+1/3!-1/4!+注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:i=1 s=1.0i=2 s=0.5i=3 s=0.6666666666666666i=4 s=0.625i=5 s=0.6333333333333333i=6 s=0.631944444444
3、4444public class ex1_1 public static void main(String args) double s=0.0,sign=-1.0,t,f=1.0;for (int i=1;i+)f=f*i;_;t=sign/f;if(_)break;s=s+t;System.out.println( “i= “+i+“ s=“+s);(分数:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.下面是一个 Applet 程序,程序的功能是用鼠标点击画图。本题是通过点击鼠标后画出一个“Java”字。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意
4、:不改动程序的结构,不得增行或减行。import java. awt.*import java. awt. event.*;import java. applet.*/*applet code= SimpleHitMouse. java width= 800 height= 400/applet*/public class SimpleHitMouse implements Appletprivate java. util. Vector points= new java. util. Vector();public void init() addMouseListener(new Mouse
5、Adapter () public void mousePressed(MouseEvent e) (points, add (new Point (e. getX( ), e. getY ( ) ) );paint( ););public void update(Graphics g) repaint(g);public void paint(Graphics g) for(int i=0;ipoints, size() ;i+) Point dot= (Point)points. elementAt(i);g. drawString(“x“ ,dot. x,dot, y),public s
6、tatic void main(String args) Frame fram=new Frame(“CelayTree“);SimpleHitMouse dot=new SimpleHitMouse();dot. init( );dot. start();fram. add( “Center“, dot)fram. setSize(400,300);fram. addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e)System. exit(0););fram.show()exl_2.html
7、:htmlheadtitleA Simple program/title/headbodyapplet code=“SimpleHitMouse, class“ width=800 height=400/applet/body/html(分数:30.00)_二级 JAVA 机试-105 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下面程序执行结果为:11=121=2 22=431=3 32=6 33=991=9 92=18 93=27 94=36 95=45 96=54 97=63 98=72 99=81请在每条横线处填写一个语句,使
8、程序的功能完整。注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。public class ForLoopStatementpublic static void main(String args) int m,n;for(m=1; m10; _)_System.out.print(m+“*“+n+“=“+m*n+“ “);_(分数:30.00)_正确答案:(m+for(n=1;n=m;n+)Systemoutprintln();)解析:解析 本题考查 Java 的循环语句。本题中 m+;语句是使循环变量的值递增 1,第一个 for (m=1;m10;m+)循环语
9、句是用来控制乘法表的行输出,那么还要用一个 for 循环语句来实现控制列的输出。这个列的变量 n 要注意,它总是小于等于 m 的,所以应有 for(n=1;n =m;n+);语句Systemoutprintln();是用来换行输出。二、2简单应用题(总题数:1,分数:40.00)2.请完成下列 Java 程序:计算下列级数之和,直到该项之绝对值小于 0.001 为止。S=1/1!-1/2!+1/3!-1/4!+注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:i=1 s=1.0i=2 s=0.5i=3 s=0.6666666666666666i
10、=4 s=0.625i=5 s=0.6333333333333333i=6 s=0.6319444444444444public class ex1_1 public static void main(String args) double s=0.0,sign=-1.0,t,f=1.0;for (int i=1;i+)f=f*i;_;t=sign/f;if(_)break;s=s+t;System.out.println( “i= “+i+“ s=“+s);(分数:40.00)_正确答案:(sign=-signMathabs(t)0.001)解析:解析 本题主要考查 for 循环和条件语句控
11、制程序流程。解题关键是会根据公式写出相应的算法解决问题。本题中,第 1 个空,由于公式里每一项的符号都是交替变化的,所以这里需要改变符号;第 2个空,判断是否中断循环的条件,需要用 Math.abs()方法来进行绝对值的比较。三、3综合应用题(总题数:1,分数:30.00)3.下面是一个 Applet 程序,程序的功能是用鼠标点击画图。本题是通过点击鼠标后画出一个“Java”字。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或减行。import java. awt.*import java. awt. event.*;import java. a
12、pplet.*/*applet code= SimpleHitMouse. java width= 800 height= 400/applet*/public class SimpleHitMouse implements Appletprivate java. util. Vector points= new java. util. Vector();public void init() addMouseListener(new MouseAdapter () public void mousePressed(MouseEvent e) (points, add (new Point (e
13、. getX( ), e. getY ( ) ) );paint( ););public void update(Graphics g) repaint(g);public void paint(Graphics g) for(int i=0;ipoints, size() ;i+) Point dot= (Point)points. elementAt(i);g. drawString(“x“ ,dot. x,dot, y),public static void main(String args) Frame fram=new Frame(“CelayTree“);SimpleHitMous
14、e dot=new SimpleHitMouse();dot. init( );dot. start();fram. add( “Center“, dot)fram. setSize(400,300);fram. addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e)System. exit(0););fram.show()exl_2.html:htmlheadtitleA Simple program/title/headbodyapplet code=“SimpleHitMouse, cl
15、ass“ width=800 height=400/applet/body/html(分数:30.00)_正确答案:(extendsrepaint()paint(g)解析:解析 本题主要考查 Java Applet 程序的编写、Java 程序事件处理机制。编写 Applet 小程序必须要用到 javaappelt 包中的 Applet 类, javaappletAppletjavaawtPanel 的子类。在 Applet 中,Applet 的显示更新是由一个专门的 AWT 线程控制的。与 Applet 显示相关的 3 个方法:(1)paint()方法。Applet 的 paint()方法具体
16、执行 Applet 的绘制。该方法的定义如下: public void paint(Graphics g),paint()方法有一个参数 g 是 Graphics 类的实例,该实例对象由浏览器生成,它包含了 Applet 的图形上下文信息,通过它向 Applet 中显示信息,该对象相当于 Applet 的画笔。(2)update()方法。该方法的定义如下:public void update(Graphics g),update()方法用于更新 Applet的显示。该方法将首先清除背景,再调用 paint()方法完成 applet 的具体绘制。(3)repaint()方法。repaint()方法的定义如下:public void repaint(),该方法主要用于 Applet 的重新显示,它调用update()方法实现对 Applet 的更新。在本题中,extends 关键字用于继承父类,repaint(),paint()方法都用于 Applet 的重新显示。