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