1、二级 JAVA 机试-177 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下列程序中,要求按照从大到小的顺序输出 0100 之间(包括 0 和 100)的能被 3 整除的所有偶数,并输出符合上述要求的数的个数,请将程序补充完整。程序运行结果如下。96,90,84,78,72,66,60,54,48,42,36,30,24,18,12,6,0,源程序文件代码清单如下:public class ex12_1private int cnt=0;public static void main(String args)ex12_1 obj12
2、_1=new ex12_1();obj12_1.method12_1();public void method12_1()for (_)if(_System.out.print (i+ “, “);_;System.out.println();System.out.println(cnt);(分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.请完成下列 Java 程序:记录鼠标在窗口中的信息,包括鼠标的移动事件以及鼠标在窗口中的位置坐标,要求在窗口下方显示鼠标的事件和位置信息,在窗口上方有按钮控制程序的正常退出。注意:请勿改动 main()主方法和其他已有语句内容,仅在下
3、划线处填入适当的语句。源程序文件代码清单如下:import java.awt.*;import java.awt.event.*;public class ex12_2extends Frame implements MouseMotionListener, ActionListenerprivate Label 1;private String str=“ “;public static void main(String args)new ex12_2();ex12_2( )_;setSize(200,200);Button btn=new Button(“exit“);btn.addAct
4、ionListener (this);add (btn, “North“ );l=new Label(str);add (l, “South“ );show ();public void mouseMoved(MouseEvent event)str=“Move: “+l. setText (str);public void mouseDragged(MouseEvent event)public void actionPerformed(ActionEvent event)if(event.getActionCommand().equals(“exit“)System.exit(0);(分数
5、:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.下面是一个 Applet 程序,程序的功能是用鼠标画图。本题是通过单击鼠标后画出一个 Java 字。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意;不改动程序的结构,不得增行或减行。源程序文件代码清单如下;import java.awt.*;import java.awt.event.*;import java.applet.*;/*applet code=SimpleHitMouse.java width=800 height=400/applet*/public class SimpleHitMouse
6、 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.getX(),e.getY()paint(););public void update(Graphics g)repaint(g);public void paint(Graphics g)for(int i=0;ipoint
7、s.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“);SimpleHitMouse dot=new SimpleHitMouse();dot.init ();dot.start ();fram.add ( “Center“, dot );fram.setSize( 400,300 );fram.addWindowListener( new Window
8、Adapter()public void windowClosing( WindowEvent e )System.exit(0););fram.show ();ex12_3.html:htmlheadtitleA Simple Program/title/headbodyapplet code=“ SimpleHitMouse.class“ width=800 height=400/applet/body/html(分数:30.00)_二级 JAVA 机试-177 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下列程序中,要求按照从大
9、到小的顺序输出 0100 之间(包括 0 和 100)的能被 3 整除的所有偶数,并输出符合上述要求的数的个数,请将程序补充完整。程序运行结果如下。96,90,84,78,72,66,60,54,48,42,36,30,24,18,12,6,0,源程序文件代码清单如下:public class ex12_1private int cnt=0;public static void main(String args)ex12_1 obj12_1=new ex12_1();obj12_1.method12_1();public void method12_1()for (_)if(_System.o
10、ut.print (i+ “, “);_;System.out.println();System.out.println(cnt);(分数:30.00)_正确答案:(int i=100;i=0;i-i%6=0 或者 i%2=0import java.awt.event.*;public class ex12_2extends Frame implements MouseMotionListener, ActionListenerprivate Label 1;private String str=“ “;public static void main(String args)new ex12_
11、2();ex12_2( )_;setSize(200,200);Button btn=new Button(“exit“);btn.addActionListener (this);add (btn, “North“ );l=new Label(str);add (l, “South“ );show ();public void mouseMoved(MouseEvent event)str=“Move: “+l. setText (str);public void mouseDragged(MouseEvent event)public void actionPerformed(Action
12、Event event)if(event.getActionCommand().equals(“exit“)System.exit(0);(分数:40.00)_正确答案:(addMouseMotionListener(this)event.getPoint()解析:解析 本题主要考查鼠标移动事件监听和基本的 AWT 构件。解题关键是熟悉鼠标移动事件监听器的注册,和对鼠标移动事件的处理。本题中,第 1 个空,注册鼠标移动事件的监听器,注意参数是this,表示在当前运行的对象中注册该监听器:第 2 个空,通过调用 MouseEvent 的 getPoint()方法获得鼠标的坐标信息。程序运行结果如
13、下。*三、3综合应用题(总题数:1,分数:30.00)3.下面是一个 Applet 程序,程序的功能是用鼠标画图。本题是通过单击鼠标后画出一个 Java 字。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意;不改动程序的结构,不得增行或减行。源程序文件代码清单如下;import java.awt.*;import java.awt.event.*;import java.applet.*;/*applet code=SimpleHitMouse.java width=800 height=400/applet*/public class SimpleHitMouse impl
14、ements 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.getX(),e.getY()paint(););public void update(Graphics g)repaint(g);public void paint(Graphics g)for(int i=0;ipoints.siz
15、e();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“);SimpleHitMouse dot=new SimpleHitMouse();dot.init ();dot.start ();fram.add ( “Center“, dot );fram.setSize( 400,300 );fram.addWindowListener( new WindowAdapt
16、er()public void windowClosing( WindowEvent e )System.exit(0););fram.show ();ex12_3.html:htmlheadtitleA Simple Program/title/headbodyapplet code=“ SimpleHitMouse.class“ width=800 height=400/applet/body/html(分数:30.00)_正确答案:(extendsrepaint()paint(g)解析:解析 本题主要考查 Java Applet 程序的编写、Java 程序事件处理机制。解答本题的关键是熟
17、练掌握 Java Applet 程序的编写和 Java 程序事件处理机制的知识。编写 Applet 小程序必须要用到java.appelt 包中的 Applet 类 java.applet.Applet,java.awt.Panel 的子类。在 Applet 中,Applet 的显示更新是由一个专门的 AWT 线程控制的。与 Applet 显示相关的 3 个方法:paint()方法,Applet 的paint()方法具体执行 Applet 的绘制,该方法的定义为 public void paint(Graphics g),参数 g 是 Graphics 类的实例,该实例对象由浏览器生成,它包含
18、了 Applet 的图形上下文信息,通过它向 Applet中显示信息,该对象相当于 Applet 的画笔:update()方法,该方法的定义为 public void update(Graphics g),update()方法用于更新 Applet 的显示,该方法将首先清除背景,再调用 paint()方法完成 Applet 的具体绘制;repain()方法,repaint()方法的定义为 public void repaint(),该方法主要用于 Applet 的重新显示,它调用 update()方法实现对 Applet 的更新。在本题中,extends 关键字用于继承父类,repaint()、paint()方法都用于 Applet 的重新显示。程序的运行结果如下。*