1、二级 JAVA 机试 85 及答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数: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_1 private int cnt=0; public static void main(String args) ex12
2、_1 obj12_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)_二、B2简单应用题/B(总题数:1,分数:40.00)2.请完成下列 Java 程序:记录鼠标在窗口中的信息,包括鼠标的移动事件以及鼠标在窗口中的位置坐标,要求在窗口下方显示鼠标的事件和位置信息,在窗口上方有按钮控制程序的正常退出。 注意:请勿改动ma
3、in()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 源程序文件代码清单如下: import java.awt.*; import java.awt.event.*; public class ex12_2 extends Frame implements MouseMotionListener, ActionListener private Label 1; private String str=“ “; public static void main(String args) new ex12_2(); ex12_2( ) _; setSize(200,200); Button
4、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(ActionEvent event) if(event.getActi
5、onCommand().equals(“exit“) System.exit(0); (分数:40.00)_三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet 程序,程序的功能是用鼠标画图。本题是通过单击鼠标后画出一个 Java 字。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意;不改动程序的结构,不得增行或减行。 源程序文件代码清单如下; import java.awt.*; import java.awt.event.*; import java.applet.*; /* applet code=SimpleHitMouse.java
6、width=800 height=400 /applet */ public class USimpleHitMouse implements/U Applet private 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() Upaint()/U; ); public void upd
7、ate(Graphics g) Urepaint(g);/U 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“); SimpleHitMouse dot=new SimpleHitMouse(); dot.init (); dot.start ()
8、; fram.add ( “Center“, dot ); fram.setSize( 400,300 ); fram.addWindowListener( new WindowAdapter() public void windowClosing( WindowEvent e ) System.exit(0); ); fram.show (); Bex12_3.html:/B html head titleA Simple Program/title /head body applet code=“ SimpleHitMouse.class“ width=800 height=400 /ap
9、plet /body /html(分数:30.00)_二级 JAVA 机试 85 答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数: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_1 private int cnt=0; public static v
10、oid main(String args) ex12_1 obj12_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)_正确答案:()解析:int i=100;i=0;i- i%6=0 或者 i%2=0 import java.awt.event.*; public class ex12_2 extends Frame
11、 implements MouseMotionListener, ActionListener private 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.addActionListener (this); add (btn, “North“ ); l=new Label(str); add (l, “South“ ); show (); p
12、ublic 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); (分数:40.00)_正确答案:()解析:addMouseMotionListener(this) event.getPoint() 解析 本题主要考查鼠标移
13、动事件监听和基本的 AWT 构件。解题关键是熟悉鼠标移动事件监听器的注册,和对鼠标移动事件的处理。本题中,第 1 个空,注册鼠标移动事件的监听器,注意参数是 this,表示在当前运行的对象中注册该监听器:第 2 个空,通过调用 MouseEvent 的 getPoint()方法获得鼠标的坐标信息。程序运行结果如下。 三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet 程序,程序的功能是用鼠标画图。本题是通过单击鼠标后画出一个 Java 字。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意;不改动程序的结构,不得增行或减行。 源程序文件代码清单
14、如下; import java.awt.*; import java.awt.event.*; import java.applet.*; /* applet code=SimpleHitMouse.java width=800 height=400 /applet */ public class USimpleHitMouse implements/U Applet private java.util.Vector points=new java.util.Vector(); public void init() addMouseListener(new MouseAdapter() pub
15、lic void mousePressed(MouseEvent e) points.add(new Point(e.getX(),e.getY() Upaint()/U; ); public void update(Graphics g) Urepaint(g);/U 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 arg
16、s ) 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 (); Bex12_3.html:/B html
17、 head titleA Simple Program/title /head body applet code=“ SimpleHitMouse.class“ width=800 height=400 /applet /body /html(分数:30.00)_正确答案:()解析:extends repaint() paint(g) 解析 本题主要考查 Java Applet 程序的编写、Java 程序事件处理机制。解答本题的关键是熟练掌握 Java Applet 程序的编写和 Java 程序事件处理机制的知识。编写Applet 小程序必须要用到 java.appelt 包中的 Applet
18、 类 java.applet.Applet,java.awt.Panel 的子类。在 Applet 中,Applet 的显示更新是由一个专门的 AWT 线程控制的。与 Applet 显示相关的 3 个方法:paint()方法,Applet 的 paint()方法具体执行 Applet 的绘制,该方法的定义为 public void paint(Graphics g),参数 g 是 Graphics 类的实例,该实例对象由浏览器生成,它包含了 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 的重新显示。程序的运行结果如下。