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