1、二级 JAVA 机试-171 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下面的程序是从命令行输入 3 个数传递到 public static void main(String args)方法中(如 java Is Triangle 34 5),并判断这 3 个数能否构成三角形的 3 条边,并显示相应的结果。请在程序的每条横线处填写一个位运算符,使程序的功能完整。注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。源程序文件代码清单如下:public class IsTrianglepublic sta
2、tic void main(String args )int a =new _args.length;for(int i=0;iargs.length;i+)ai= _;if(_)System.out.println(a0+ “,“+a1+ “,“+a2“能构成三角形的 3 条边“).elseSystem.out.println(a0+ “,“+a1+ “,“+a 2 “不能构成三角形的 3 条边“);(分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.请完成下列 Java 程序;实现 JComboBox,包含 3 个选项,分别是 java、c+、vb,以及 1 个文本区
3、,用于显示选择结果。注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。源程序文件代码清单如下:import java.awt.event.*;import javax.swing.*;import java.awt.*;public class ex14_2 extends JFrame implements ItemListenerBorderLayout bLay = new BorderLayout();JTextField jtf = new JTextField(27);JComboBox jcb = new JComboBox();public ex
4、14_2()super (“ex14_2“);/调用当前类 ex14_2 的父类 JFrame 的构造方法。jcb.addItemListener(this);jcb.addItem(“java“);jcb.addItem(“c+“);jcb.addItem(“vb“);jcb.setEditable(false);jtf.setHorizontalAlignment(SwingConstants.CENTER);jtf.setEditable(false);JPanel jp = new JPanel();jp.setLayout(bLay);jp.add(jtf, “South“);jp.
5、add(jcb, “Center“);setContentPane(jp);public static void main(String args)JFrame frame = new ex14_2();frame.pack();frame.setVisible(true);public void itemStateChahged(ItemEvent ie)Object o =if (o = job)Object newO;_;jtf.setText(newO.toString()+“被选中!“);repaint();(分数:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.下
6、面是一个 Applet 程序,其功能是建立两个文本区域,一个为编辑区,一个为只读区;建立两个按钮,一个实现将编辑区中被鼠标选定的文本内容复制到只读区中,一个实现将只读区的全部文本内容清空。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。源程序文件代码清单如下:import java.awt.*;import java.applet.*;/*applet code=“ex14_3.class“ width=800 height=400/applet*/public class ex14_3 extends Appletprivate Butt
7、on okBtn, clearBtn;private String strMessage;private TextArea tArea1, tArea2;public void init()strMessage = “Hello! Welcome to the test! /n“ +“This is the NCR Examination! /n“ +“Wish you good luck!“;tArea1 = new TextArea( 10, 25 );tArea1.setText(strMessage);tArea2 = new TextArea( 10, 25 );tArea2.set
8、Editable( true );okBtn = new Button( “Copy“ );clearBtn = new Button( “Clear“ );add( tArea1 );add( tArea2 );add( okBtn );add( clearBtn );public boolean action( Event e, Object o )if( e.target = okBtn )tArea1.setText(tArea2.getSelectedText() );else if( e.target = clearBtn )tArea1.setText( “ “);return
9、true;ex14_3.htmlHTMLHEADTITLEex14_3/TITLE/HEADBODYapplet code=“ex14_3.class“ width=800 height=400/applet/BODY/HTML(分数:30.00)_二级 JAVA 机试-171 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下面的程序是从命令行输入 3 个数传递到 public static void main(String args)方法中(如 java Is Triangle 34 5),并判断这 3 个数能否构成三角形的 3 条边
10、,并显示相应的结果。请在程序的每条横线处填写一个位运算符,使程序的功能完整。注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。源程序文件代码清单如下:public class IsTrianglepublic static void main(String args )int a =new _args.length;for(int i=0;iargs.length;i+)ai= _;if(_)System.out.println(a0+ “,“+a1+ “,“+a2“能构成三角形的 3 条边“).elseSystem.out.println(a0+ “,“+a1
11、+ “,“+a 2 “不能构成三角形的 3 条边“);(分数:30.00)_正确答案:(intInteger.parseInt(argsi)a0+a1a2import javax.swing.*;import java.awt.*;public class ex14_2 extends JFrame implements ItemListenerBorderLayout bLay = new BorderLayout();JTextField jtf = new JTextField(27);JComboBox jcb = new JComboBox();public ex14_2()supe
12、r (“ex14_2“);/调用当前类 ex14_2 的父类 JFrame 的构造方法。jcb.addItemListener(this);jcb.addItem(“java“);jcb.addItem(“c+“);jcb.addItem(“vb“);jcb.setEditable(false);jtf.setHorizontalAlignment(SwingConstants.CENTER);jtf.setEditable(false);JPanel jp = new JPanel();jp.setLayout(bLay);jp.add(jtf, “South“);jp.add(jcb, “
13、Center“);setContentPane(jp);public static void main(String args)JFrame frame = new ex14_2();frame.pack();frame.setVisible(true);public void itemStateChahged(ItemEvent ie)Object o =if (o = job)Object newO;_;jtf.setText(newO.toString()+“被选中!“);repaint();(分数:40.00)_正确答案:(ie.getSource()newO=ie.getItem()
14、解析:解析 本题主要考查用 swing 进行图形用户界面开发。解题关键是熟悉 JTextField 和 JComboBox等构件的使用方法,以及事件处理机制,掌握在 swing 环境下的 ItemListener 监听器的使用方法。本题中,第 1 个空,ItemEvent 类的 ie 对象调用 getSource()方法获得发生事件的对象 o:第 2 个空,ie 调用 getItem()方法获得选项的对象,并写给新的对象 new()。三、3综合应用题(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是建立两个文本区域,一个为编辑区,一个为只读区;建立两个按钮,一个实现将
15、编辑区中被鼠标选定的文本内容复制到只读区中,一个实现将只读区的全部文本内容清空。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。源程序文件代码清单如下:import java.awt.*;import java.applet.*;/*applet code=“ex14_3.class“ width=800 height=400/applet*/public class ex14_3 extends Appletprivate Button okBtn, clearBtn;private String strMessage;private T
16、extArea tArea1, tArea2;public void init()strMessage = “Hello! Welcome to the test! /n“ +“This is the NCR Examination! /n“ +“Wish you good luck!“;tArea1 = new TextArea( 10, 25 );tArea1.setText(strMessage);tArea2 = new TextArea( 10, 25 );tArea2.setEditable( true );okBtn = new Button( “Copy“ );clearBtn
17、 = new Button( “Clear“ );add( tArea1 );add( tArea2 );add( okBtn );add( clearBtn );public boolean action( Event e, Object o )if( e.target = okBtn )tArea1.setText(tArea2.getSelectedText() );else if( e.target = clearBtn )tArea1.setText( “ “);return true;ex14_3.htmlHTMLHEADTITLEex14_3/TITLE/HEADBODYappl
18、et code=“ex14_3.class“ width=800 height=400/applet/BODY/HTML(分数:30.00)_正确答案:(tArea2.setEditable(false)tArea2.setText(tArea1.getSelectedTex t()tArea2.setText(“ “)解析:解析 本题主要考查 Applet 窗口、其事件处理机制以及对文本区域的相关操作。解题关键是熟悉TextArea 的基本方法,如 setEditable()方法就是用来确定编辑模式的一个重要的方法,并且需要明确题目要求的两个文本区域的区别和联系,根据不同的事件,来对这两个文本区域进行操作。本题中,第 1 个空,将第 2 个文本区域 tArea2 的编辑模式设定为只读,注意参数为 false,因为默认的编辑模式设定为可编辑的,用 true 表示,所以参数应该是 false:第 2 个空,响应单击 Copy 按钮事件的语句应该将第 1个文本区 tAreal 的被选择的文本内容取出放入第 2 个文本区 tArea2 中;第 3 个空,响应单击 Clear 按钮事件的语句应该将第 2 个文本区 tArea2 中的所有文本内容清空。