1、二级 JAVA机试 89及答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.下列程序打包到 example包,main 方法调用线程类输出 09 这 10个数,请填写横线处的内容。 注意:请勿改动 main()主方法和其他已有语句内容,仅在横线处填入适当语句。 _ interface MyInterface public abstract void print(int n); class Mythread extends Thread _ MyInterface public void run() for(int i = 0; i 1
2、0; i+) this.print(i); public void print(int n) System.out.print(n +“ “); public class Example1_6 public static void main(String argv) Mythread th = new Mythread(); _ (分数:30.00)_二、B2简单应用题/B(总题数:1,分数:40.00)2.请完成下面的程序:实现一个可以每秒跳动的时钟。运行如下图所示。请填写横线处的内容。 注意:请勿改动 main主方法和其他已有语句内容,仅在下划线处填入适当的语句。 import javax
3、.swing.*; import java.awt.*; import java.awt.event.*; (分数:40.00)_三、B3综合应用题/B(总题数:1,分数:30.00)3.以下程序是一个简单文本处理器,菜单项可以打开、编辑、保存一个文件。文件内容显示在下面的文本区域中(提示,打开文件通过文件选择器来完成)。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。运行结果如下图所示。 (分数:30.00)_二级 JAVA机试 89答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.下列程序打包到 example包,m
4、ain 方法调用线程类输出 09 这 10个数,请填写横线处的内容。 注意:请勿改动 main()主方法和其他已有语句内容,仅在横线处填入适当语句。 _ interface MyInterface public abstract void print(int n); class Mythread extends Thread _ MyInterface public void run() for(int i = 0; i 10; i+) this.print(i); public void print(int n) System.out.print(n +“ “); public class
5、Example1_6 public static void main(String argv) Mythread th = new Mythread(); _ (分数:30.00)_正确答案:()解析:package example; implements th.start(); 解析 MyInterface 是自定义的一个接口,Mythread继承于 Thread类同时实现了 MyInterface。主方法先根据 Mythread生成一个线程,然后将其启动。 第 1个空,题目中已经说明要将本程序打包到 example 包,则说明要使用关键字“package”。 第 2个空,接口是抽象方法和常
6、量的结合,是一种特殊的抽象类,接口必须通过“implements”实现以后才能被使用。所有线程都通过 start()启动,进入线程调度队列。然后,系统会根据一定的算法对线程的运行进行调度,run()方法是线程的线程体。故第 3空应该填“th.start()”。二、B2简单应用题/B(总题数:1,分数:40.00)2.请完成下面的程序:实现一个可以每秒跳动的时钟。运行如下图所示。请填写横线处的内容。 注意:请勿改动 main主方法和其他已有语句内容,仅在下划线处填入适当的语句。 import javax.swing.*; import java.awt.*; import java.awt.ev
7、ent.*; (分数:40.00)_正确答案:()解析:Calendar.getInstance() start() 解析 本题主要考查线程和日历类的知识。在图形程序处理中,经常会用到多线程。使用多线程的类必须实现 Runnable,接口,Thread 类已经实现了 Runnable接口,其子类自动实现了此类。要开始一个线程,应调用该类的 start方法(第 2个空)。这时 Java会自动开始在该线程中调用该类的 run方法。另外,在 Java中,有的类只能有一个实例,不能创建它的多个实例对象。这在设计模式中叫做 Singleton(单例)模式。Calendar 类就是这样的类,它只能通过 g
8、etInstance方法得到这个实例对象(第 1个空)。三、B3综合应用题/B(总题数:1,分数:30.00)3.以下程序是一个简单文本处理器,菜单项可以打开、编辑、保存一个文件。文件内容显示在下面的文本区域中(提示,打开文件通过文件选择器来完成)。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。运行结果如下图所示。 (分数:30.00)_正确答案:()解析:setJMenuBar(mb) file=chooser.getSelectedFile() out.write(textpane.getText() 解析 构造方法 FileFrame()中初始化了程序界面,菜单“file
9、M”中添加了 3个菜单项“打开”、“保存”和“退出”,并为这 3个菜单项添加了相应的事件。“textpane”是一个文本编辑面板,其上可以显示和修改文本。openAction 类定义了用户选择“打开”菜单的事件。用户选择“打开”,程序向用户显示文件选择器“chooser”,使用户通过图形化的方式选择文件。根据用户选择的结果,生成 File类的实例“file”。语句“textpane.read(readStream,this)”读取文件内容并显示在“textpane”中。 SaveAction定义了用户选择“保存”菜单的事件。在 SaveAction类中,程序调用 FileWriter的写文件方法将“textpane”中的内容输出到文件中。 玻璃面板(glassPane)、内容面板(contentPane)、菜单条(JMenuBar)共同组成根面板。getContentPane()获得的是顶层容器的内容面板而不是根面板,所以不能在其中添加菜单条。因此第 1 条下划线处应该改为 setJMenuBar(mb),将“mb”设置为根面板的菜单条。 第 2处和第 3处改错,主要考查对文件选择和文件输出的基本操作的掌握情况。这些常用的类和常用的方法只有在多次练习之后才能熟练掌握。