1、二级 JAVA 机试 83 及答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.创建线程对象,要传递代码与数据,而传递代码与数据有两种方法,一是通过继承 Thread 类,二是向Thread 类传递一个 Runnable 对象。请在下面程序的每条横线处填写一个语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 源程序文件清单如下;public class TestThread public static void main(String args ) MyThread t=ne
2、w MyThread(); _; class MyThread _ Thread _ for(int i=0;i10;i+) System.out.println(“ “+i); (分数:30.00)_二、B2简单应用题/B(总题数:1,分数:40.00)2.请完成下列 Java 程序:创建一个具有 2 行 3 列的 GridLayout 管理器,包括 Choice、Label、Button 构件,布局为第 1 行包括一个 Choice 构件(包括 2 个选项 item1 和 item2)、一个 Label 构件(当选择 Choice构件中的选项时,Labe1 构件显示相应的名称,即如果点击
3、item1 则 Labe1 中显示 item1)和一个 exit 按钮(点击则退出应用程序),第 2 行包括 3 个 Button 构件。程序运行结果如下。 (分数:40.00)_三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。 源程序文件清单如下: import java.awt.*; import java.applet.*; /* applet c
4、ode=“ex11_3.class“ width=800 height=400 /applet */ public class ex11_3 extends Applet int x = 15,50,100,160,120,190; int y = 15,100,30, 15, 80, 50; public void init() setBackground(Color.lightGray); public void paint(Graphics g) int y2 = new int6; g.setColor(Color.red); Rectangle rect = getBounds();
5、 Ug.drawPolygon(x, y2,6)/U; for(int i=0; i6; i+) Uy2i = yi + (rect.height / 2)/U; Ug.fillPolygon(x,y, 6);/U Bex11_3.html/B HTML HEAD TITLEex11_3/TITLE /HEAD BODY applet code=“ex11_3.class“ width=800 height=400 /applet /BODY /HTML(分数:30.00)_二级 JAVA 机试 83 答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数
6、:30.00)1.创建线程对象,要传递代码与数据,而传递代码与数据有两种方法,一是通过继承 Thread 类,二是向Thread 类传递一个 Runnable 对象。请在下面程序的每条横线处填写一个语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 源程序文件清单如下;public class TestThread public static void main(String args ) MyThread t=new MyThread(); _; class MyThread _ Thread _ for(int i=0;i10;i+
7、) System.out.println(“ “+i); (分数:30.00)_正确答案:()解析:t.start(); extends public void run(); 解析 本题主要考查创建线程的方法、线程的执行过程。解答本题的关键是熟练掌握创建线程的方法、执行过程。在本题中, t.staxt()语句的功能是启动线程 t,使其处于可运行状态,class MyThread extends Thread 中的 extends 的作用是使 Mythread 线程为线程 Thread 的直接子类,public void run()的功能是重载 run()方法。二、B2简单应用题/B(总题数:1
8、,分数:40.00)2.请完成下列 Java 程序:创建一个具有 2 行 3 列的 GridLayout 管理器,包括 Choice、Label、Button 构件,布局为第 1 行包括一个 Choice 构件(包括 2 个选项 item1 和 item2)、一个 Label 构件(当选择 Choice构件中的选项时,Labe1 构件显示相应的名称,即如果点击 item1 则 Labe1 中显示 item1)和一个 exit 按钮(点击则退出应用程序),第 2 行包括 3 个 Button 构件。程序运行结果如下。 (分数:40.00)_正确答案:()解析:new GridLayout(2,3
9、) addItemListener(this) 解析 本题主要考查 Java 常用构件 Choice 和高级事件 ItemEvent 以及 GridLayout 布局管理器的用法。解题关键是熟悉 GridLayout 布局管理器和ItemEvent 的用法。在本题中,ItemEvent 在教材中并没有给出确切的用法,但是可以根据 ActionEvent的 addActionEvent()方法和重载 actionPerformed()方法来完成对动作事件监听的用法来类推出ItemEvent 事件的监听方法,这里要求有根据已有知识进行举一反三的能力。三、B3综合应用题/B(总题数:1,分数:30.
10、00)3.下面是一个 Applet 程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。 源程序文件清单如下: import java.awt.*; import java.applet.*; /* applet code=“ex11_3.class“ width=800 height=400 /applet */ public class ex11_3 extends Applet int x = 15,50,100,160,120,19
11、0; int y = 15,100,30, 15, 80, 50; public void init() setBackground(Color.lightGray); public void paint(Graphics g) int y2 = new int6; g.setColor(Color.red); Rectangle rect = getBounds(); Ug.drawPolygon(x, y2,6)/U; for(int i=0; i6; i+) Uy2i = yi + (rect.height / 2)/U; Ug.fillPolygon(x,y, 6);/U Bex11_
12、3.html/B HTML HEAD TITLEex11_3/TITLE /HEAD BODY applet code=“ex11_3.class“ width=800 height=400 /applet /BODY /HTML(分数:30.00)_正确答案:()解析:g.drawPolygon(x,y,6) y2i+=yi+(rect.height/2) g.fillPolygon(x,y2,6) 解析 本题主要考查 Applet 窗口编程和图形绘制的综合应用。解题关键是熟悉上述考点的基本要求,使用Graphics 类的 drawPolygon()和 fillPolygon()方法绘制任意形状的图形,并且能结合数组进行编程实现。本题中第 1 处,第 2 个参数应该是 y,而不是 y2, y2 还没有初始化;第 2 处,注意 y2 数组中的值是需要进行累加的,因此需要使用符号 +=;第 3 处,fillPolygon()方法的第 2 个参数应该是 y2,绘制新的图形并填充,若是 y 则不能绘制新的图形。