1、二级 JAVA机试 92及答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)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.
2、java“); System.out println(“name:“+file1._); System.out println(“path:“+file1._); System.out println(“length:“+file1._); (分数:30.00)_二、B2简单应用题/B(总题数:1,分数:40.00)2.下列程序使用 FlowLayout布局管理器管理 3个 Button构件在 Frame中的位置。请将程序补充完整。 注意:不改动程序结构,不得增行或删行。 import java.awt.*; public class ex2 private Frame frm; privat
3、e 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.s
4、etVisible(true); (分数:40.00)_三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet程序,其功能是接收用户输入的两个整数,比较它们的大小,并在用户按下“比较”按钮后,将 Applet中的显示的“请先输入两个待比较的整数”,改为“两个整数中最大值:x”,x 是两个数中的最大值。请改正程序中的错误(有下划线的语句)并将程序填写完整,使程序能输出正确的结果。 注意:不改动程序结构,不得增行或删行。 import java.applet.*; import java.awt.*; import java.awt.event.*; public cl
5、ass FindMax 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 actionPe
6、rformed(ActionEvent e) Ua=in1;/U Ub=in2;/U if(ab) max=a; else max=b; Ubtn/U.setText(“两个数中最大值:”+max); Findmax.html: HTML HEAD TITLEA Simple Program/TITLE /HEAD BODY applet code=“FindMax.class“width=800 height=400 /applet /BODY /HTML(分数:30.00)_二级 JAVA机试 92答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数
7、:30.00)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 println(“name:“+file1._); System.out pri
8、ntln(“path:“+file1._); System.out println(“length:“+file1._); (分数:30.00)_正确答案:()解析:getName() getPath() length() 讲解 本题主要考查 Java文件以及 Java类库中的 File类的常用方法。解题关键是熟记 Java的 File类的常用方法:getName(),getPath(),length()等。在本题中,这3个空分别对应填入这 3个方法即可。二、B2简单应用题/B(总题数:1,分数:40.00)2.下列程序使用 FlowLayout布局管理器管理 3个 Button构件在 Fra
9、me中的位置。请将程序补充完整。 注意:不改动程序结构,不得增行或删行。 import java.awt.*; public class ex2 private Frame frm; private 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=ne
10、w Button(“Button2“); btn3=new Button(“Button3“); frm.add(btn1); frm.add(btn2); _ frm.pack(); frm.setVisible(true); (分数:40.00)_正确答案:()解析:frm.setLayout(newFlowLayout(); frm.add(btn3); 讲解 本题考查对图形用户界面的掌握。第1空应该填入的语句的功能是设置布局管理器为 FlowLayout,程序中的容器就是 Frame的对象 frm,设定frm的布局管理器,用 newFlowLayout()作为参数调用 frm.setL
11、ayout(newFlowLayout()实现了上述功能,因此,第 1空填写 frm.setLayout(newFlowLayout();。第 2空应该填入的语句的功能是将 btn3放入对象名为 frm的 Frame中,因此,第 2空填写 frm.add(btn3);。三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet程序,其功能是接收用户输入的两个整数,比较它们的大小,并在用户按下“比较”按钮后,将 Applet中的显示的“请先输入两个待比较的整数”,改为“两个整数中最大值:x”,x 是两个数中的最大值。请改正程序中的错误(有下划线的语句)并将程序填写完整,使
12、程序能输出正确的结果。 注意:不改动程序结构,不得增行或删行。 import java.applet.*; import java.awt.*; import java.awt.event.*; public class FindMax 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
13、 Button(“比较“); add(in1); add(in2); add(btn); add(result); btn.addActionListener(this); Public void actionPerformed(ActionEvent e) Ua=in1;/U Ub=in2;/U if(ab) max=a; else max=b; Ubtn/U.setText(“两个数中最大值:”+max); Findmax.html: HTML HEAD TITLEA Simple Program/TITLE /HEAD BODY applet code=“FindMax.class“wi
14、dth=800 height=400 /applet /BODY /HTML(分数:30.00)_正确答案:()解析:implement ActionListener 将 a=in1;改为 a=Integer.parseInt(in1.getText(); 将 b=in2;改为 b=Integer.parseInt(in2.getText(); 将 btn.setText(“两个数中最大值:”+max);改为result.setText(“两个数中最大值:“+max); 讲解 本题考查文本框、Applet 操作和事件处理。按钮可以引发动作事件,当用户单击一个按钮时就引发了一个动作事件,希望相应
15、按钮引发的动作事件的程序必须把按钮注册给实现了 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。