1、二级 JAVA 机试-138 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下列程序中,要求输出一个特定文件(这里是 ex1.java)的相关信息,包括文件的名字,相对路径以及文件的长度。请将程序补充完整。程序运行结果如下:name:ex1.javapath:ex1.javalength:299注意:不改动程序结构,不得增行或删行。import java.io.*;public class ex1public static void main(String args)File filel=new File(“ex1.java“);Sy
2、stem.out println(“name:“+file1._);System.out println(“path:“+file1._);System.out println(“length:“+file1._);(分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.下列程序使用 FlowLayout 布局管理器管理 3 个 Button 构件在 Frame 中的位置。请将程序补充完整。注意:不改动程序结构,不得增行或删行。import java.awt.*;public class ex2private Frame frm;private Button btn1;pri
3、vate Button btn2;private Button btn3;public static void main(String args)ex2 t=new ex2();t.method();public void method()frm=new Frame(“ex2“)_Btn1=new Button(“Button1“);btn2=new Button(“Button2“);btn3=new Button(“Button3“);frm.add(btn1);frm.add(btn2);_frm.pack();frm.setVisible(true);(分数:40.00)_三、3综合应
4、用题(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是接收用户输入的两个整数,比较它们的大小,并在用户按下“比较”按钮后,将 Applet 中的显示的“请先输入两个待比较的整数”,改为“两个整数中最大值:x”,x 是两个数中的最大值。请改正程序中的错误(有下划线的语句)并将程序填写完整,使程序能输出正确的结果。注意:不改动程序结构,不得增行或删行。import java.applet.*;import java.awt.*;import java.awt.event.*;public class FindMax extends Applet_Label result;
5、TextField in1,in2;Button btn;int a=0,b=0,max;public void int()result=new Label(“请先输入两个待比较的整数”);in1=new TextField(5);in2=new TextField(5);btn=new Button(“比较“);add(in1);add(in2);add(btn);add(result);btn.addActionListener(this);Public void actionPerformed(ActionEvent e)a=in1;b=in2;if(ab)max=a;elsemax=b
6、;btn.setText(“两个数中最大值:”+max);Findmax.html:HTMLHEADTITLEA Simple Program/TITLE/HEADBODYapplet code=“FindMax.class“width=800 height=400/applet/BODY/HTML(分数:30.00)_二级 JAVA 机试-138 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下列程序中,要求输出一个特定文件(这里是 ex1.java)的相关信息,包括文件的名字,相对路径以及文件的长度。请将程序补充完整。程序运行结果如
7、下:name:ex1.javapath:ex1.javalength:299注意:不改动程序结构,不得增行或删行。import java.io.*;public class ex1public static void main(String args)File filel=new File(“ex1.java“);System.out println(“name:“+file1._);System.out println(“path:“+file1._);System.out println(“length:“+file1._);(分数:30.00)_正确答案:(getName()getPat
8、h()length()解析:讲解 本题主要考查 Java 文件以及 Java 类库中的 File 类的常用方法。解题关键是熟记 Java 的File 类的常用方法:getName(),getPath(),length()等。在本题中,这 3 个空分别对应填入这 3 个方法即可。二、2简单应用题(总题数:1,分数:40.00)2.下列程序使用 FlowLayout 布局管理器管理 3 个 Button 构件在 Frame 中的位置。请将程序补充完整。注意:不改动程序结构,不得增行或删行。import java.awt.*;public class ex2private Frame frm;pri
9、vate Button btn1;private Button btn2;private Button btn3;public static void main(String args)ex2 t=new ex2();t.method();public void method()frm=new Frame(“ex2“)_Btn1=new Button(“Button1“);btn2=new Button(“Button2“);btn3=new Button(“Button3“);frm.add(btn1);frm.add(btn2);_frm.pack();frm.setVisible(tru
10、e);(分数:40.00)_正确答案:(frm.setLayout(newFlowLayout();frm.add(btn3);)解析:讲解 本题考查对图形用户界面的掌握。第 1 空应该填入的语句的功能是设置布局管理器为FlowLayout,程序中的容器就是 Frame 的对象 frm,设定 frm 的布局管理器,用 newFlowLayout()作为参数调用 frm.setLayout(newFlowLayout()实现了上述功能,因此,第 1 空填写frm.setLayout(newFlowLayout();。第 2 空应该填入的语句的功能是将 btn3 放入对象名为 frm 的 Fram
11、e中,因此,第 2 空填写 frm.add(btn3);。三、3综合应用题(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是接收用户输入的两个整数,比较它们的大小,并在用户按下“比较”按钮后,将 Applet 中的显示的“请先输入两个待比较的整数”,改为“两个整数中最大值:x”,x 是两个数中的最大值。请改正程序中的错误(有下划线的语句)并将程序填写完整,使程序能输出正确的结果。注意:不改动程序结构,不得增行或删行。import java.applet.*;import java.awt.*;import java.awt.event.*;public class F
12、indMax extends Applet_Label result;TextField in1,in2;Button btn;int a=0,b=0,max;public void int()result=new Label(“请先输入两个待比较的整数”);in1=new TextField(5);in2=new TextField(5);btn=new Button(“比较“);add(in1);add(in2);add(btn);add(result);btn.addActionListener(this);Public void actionPerformed(ActionEvent
13、e)a=in1;b=in2;if(ab)max=a;elsemax=b;btn.setText(“两个数中最大值:”+max);Findmax.html:HTMLHEADTITLEA Simple Program/TITLE/HEADBODYapplet code=“FindMax.class“width=800 height=400/applet/BODY/HTML(分数:30.00)_正确答案:(implement ActionListener将 a=in1;改为 a=Integer.parseInt(in1.getText();将 b=in2;改为 b=Integer.parseInt(
14、in2.getText();将 btn.setText(“两个数中最大值:”+max);改为 result.setText(“两个数中最大值:“+max);)解析:讲解 本题考查文本框、Applet 操作和事件处理。按钮可以引发动作事件,当用户单击一个按钮时就引发了一个动作事件,希望相应按钮引发的动作事件的程序必须把按钮注册给实现了ActionListener 接口的动作事件监听者。 因此,第 1 空应该填入的是 implement ActionListener。为了接收用户输入的两个整数,需要获得文本框的内容,并将其转化为整数。而 a=in1;b=in2;两个赋值语句直接将文本框对象等同于整数,不能得到正确的结果。这两句应该改为a=Integer.parseInt(in1.getText();b=Integer.parseInt(in2.getText();,其中,getText()获得文本框的内容,返回字符串。而 Integer.parseInt(String)将字符串对象转换为整数。另外,根据题意,是要在 Applet 上的“请先输入两个待比较的整数”改为“两个整数中最大值:x”。其中前一个引号中的话是显示在标签中的,因此 btn.setText(“两个整数中最大值:x“+max);中的操作对象有误,应该将按钮对象 btn 改为标签对象 result。