1、国家二级( JAVA)机试模拟试卷 85及答案与解析 一、基本操作题( 30分) 1 下列程序中,要求输出一个特定文件 (这里是 ex1.java)的相关信息,包括文件的名字,相对路径以及文件的长度。请将程序补充完整。 程序运行结果如下: name:ex1.java path:ex1.java length:299 注意:不改动程序结构,不得增行或删行。 import java.io.*; public class ex1 public static void main(String args) File filel=new File(“ex1.java“); System.out print
2、ln(“name:“+file1._); System.out println(“path:“+file1._); System.out println(“length:“+file1._); 二、简单应用题( 40分) 2 通过实现 Runnable接口创建线程,请在下面横线处填入代码完成此程序。 注意:不改动程序结构,不得增行或删行。 class ThreadTest implements Runnable Thread thrObj; public static void main(String args) System.out.println(“这是一个通过实现接口创建线程的例子 “)
3、; ThreadTest testObj=new ThreadTest(); testObj.create(); public void create() if(thrObj= =null) thrObj=new Thread(this,“myThread“); _ public void run() System.out.println(“Thread“+throbj.getName()+“:“+“在运行 !“); 三、综合应用题( 30分) 3 下列程序是整数除法计算的程序,要求在出现异常时,能抛出异常信息。 考虑两种异常: (1)输入非数字除数 (2)输入除法分母为零 该程序运行的三种结
4、果状态如下: (1)输入两个合法整数 (2)输入非数字除数 (3)输入除数为零 请将程序填写完整。 注意:不改动程序结构,不得增行或删行。 import java.awt.event.*; public class ex3 extends _implements ActionListener private JTextField input1,input2, output; private int number1,number2; private double result; public ex3() _(“示范异常 “); Container c=getContentPane(); c.se
5、tLayout(new GridLayout(3,2); c.add(new JLabe1(“输入分子 “,SwingConstants.RIGHT); input1=new JTextField(8); c.add(input1); c.add(new JLabe1(“输入分母和回车 “, SwingConstants.RIGHT); input2=new JTextField(8); c.add(input2); input2.addActionListener(this); c.add(new JLabe1(”计算结果 ”, SwingConstants.RIGHT); output=n
6、ew JTextField(); c.add(output); setSize(400,100); show(); public void actionPerformed(ActionEvent e) DecimalFormat precision3=new DecimalFormat(“0.000“); output.setText(“);/空的 JTextField输出 try number1=Integer.parseInt(input1.getText(); number2=Integer.parseInt(input2.getText(); result=quotient(numbe
7、r1,number2); _; catch (NumberFormatException nfe) _(this, “你必须输入两个整数 “, “非法数字格式 “, JOptionPane.ERROR_MESSAGE); catch (Exception dbz) _(this, “除法异常 “, “除数为零 “, JOptionPane.ERROR_MESSAGE); /定义求商的方法,如遇除数为零时,能抛出异常。 public double quotient(int numerator,int denominator) throws Exception if(denominator= =0
8、) throw new Exception(); return(double) numerator/denominator; public static void main(String args) Java3 app=new Java3(); app.addWindowListener( new WindowAdapter() public void windowClosing(WindowEvent e) e.getWindow().dispose(); System.exit(0); ); 国家二级( JAVA)机试模拟试卷 85答案与解析 一、基本操作题( 30分) 1 【正确答案】
9、getName() getPath() length() 【试题解析】 本题主要考查 Java文件以及 Java类库中的 File类的常用方法。解题关键是熟记 Java的 File类的常用方法: getName(),getPath(),length()等。在本题中,这 3个空分别对应填入这 3个方法即可。 二、简单应用题( 40分) 2 【正确答案】 thrObj.start(); 【试题解析】 本题考查考生对如何通过实现 Runnable接口创建线程及使用线程的掌握,这是一道简单应用题。程序中, ThreadTest类实现了 Runnable接口,所以 ThreadTest类必须重写 Run
10、nable接口中的 run()方法。在 create()方法创建了一个名为 thrObj的线程,并调用 Thread类中的 start()方法启动 该线程。语句thrObj=new Thread(this, “myThread“);中, this是 Thread构造方法的第一个参数,作为该线程的目标对象,它必须实现 Runnable接口。第二个参数 myTread为线程的名称。在这种构造方法下,线程 thrObj就以目标对象中的 run()方法作为自己的 run()方法,本例中,目标对象就是 ThreadTest类的对象。 三、综合应用题( 30分) 3 【正确答案】 JFrame Super
11、 output.setText(precision3.format(result); JOptionPane.showMessageDialog JOptionPane.showMessageDialog 【试题解析】 本题综合考查类的继承、图形用户界面和数据类型转换。第 1空应填写 JFrame。通过前面的关键字 extends,我们很明确地知道这里应该填写一个类的名称。从下面的程序中,我们发现使用了 Container以及 JTextField,并且Container调用了 getContentPane方法,所以这里应该继承的是 JFrame类。第 2空应填 写 super。既然本类继承了
12、 JFrame类,那么我们显示一个名为 “示范异常 ”的 JFrame类,只需要调用 super关键字。第 3空应填写output.setText(precision3.format(result);。在程序的这一步,我们需要在文本框中显示信息,所以要调用文本框 output的 setText方法。但是,我们从程序的上一个步骤得到的结果 result是一个 double类型的数据,所以要进行数据转换,在这里,我们涉及到了 DecimalFormat类,它是 NumberFormat的一个子类,可以提供 格式化输出数据类型的功能。 DecimalFormat类的 format方法可以返回字符串类型的数据。第四空和第五空都应填写 JOptionPane.showMessageDialog。显示信息对话框调用 JOptionPane的 showMessageDialog方法。