1、二级 JAVA 机试 87 及答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.下面的程序是从命令行输入 3 个数传递到 public static void main(String args)方法中(如 java Is Triangle 34 5),并判断这 3 个数能否构成三角形的 3 条边,并显示相应的结果。请在程序的每条横线处填写一个位运算符,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 源程序文件代码清单如下: public class IsTriangle publ
2、ic 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 条边“). else System.out.println(a0+ “,“+a1+ “, “+a 2 “不能构成三角形的 3 条边“); (分数:30.00)_二、B2简单应用题/B(总题数:1,分数:40.00)2.请完成下列 Java 程序;实现 JComboBox,包含 3 个选项,分别是 j
3、ava、c+、vb,以及 1 个文本区,用于显示选择结果。 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 源程序文件代码清单如下: import java.awt.event.*; import javax.swing.*; import java.awt.*; public class ex14_2 extends JFrame implements ItemListener BorderLayout bLay = new BorderLayout(); JTextField jtf = new JTextField(27); JComboBox jcb
4、 = new JComboBox(); public ex14_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.s
5、etLayout(bLay); jp.add(jtf, “South“); jp.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()+“被选中
6、!“); repaint(); (分数:40.00)_三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是建立两个文本区域,一个为编辑区,一个为只读区;建立两个按钮,一个实现将编辑区中被鼠标选定的文本内容复制到只读区中,一个实现将只读区的全部文本内容清空。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 源程序文件代码清单如下: import java.awt.*; import java.applet.*; /* applet code=“ex14_3.class“ width=800 he
7、ight=400 /applet */ public class ex14_3 extends Applet private Button 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,
8、25 ); tArea1.setText(strMessage); tArea2 = new TextArea( 10, 25 ); UtArea2.setEditable( true )/U; 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 ) UtArea1.set
9、Text(tArea2.getSelectedText() )/U; else if( e.target = clearBtn ) UtArea1.setText( “ “)/U; return true; Bex14_3.html/B HTML HEAD TITLEex14_3/TITLE /HEAD BODY applet code=“ex14_3.class“ width=800 height=400 /applet /BODY /HTML(分数:30.00)_二级 JAVA 机试 87 答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.
10、00)1.下面的程序是从命令行输入 3 个数传递到 public static void main(String args)方法中(如 java Is Triangle 34 5),并判断这 3 个数能否构成三角形的 3 条边,并显示相应的结果。请在程序的每条横线处填写一个位运算符,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 源程序文件代码清单如下: public class IsTriangle public static void main(String args ) int a =new _args.length; for(in
11、t i=0;iargs.length;i+) ai= _; if(_) System.out.println(a0+ “,“+a1+ “, “+a2“能构成三角形的 3 条边“). else System.out.println(a0+ “,“+a1+ “, “+a 2 “不能构成三角形的 3 条边“); (分数:30.00)_正确答案:()解析:int Integer.parseInt(argsi) a0+a1a2 import javax.swing.*; import java.awt.*; public class ex14_2 extends JFrame implements It
12、emListener BorderLayout bLay = new BorderLayout(); JTextField jtf = new JTextField(27); JComboBox jcb = new JComboBox(); public ex14_2() super (“ex14_2“);/调用当前类 ex14_2 的父类 JFrame 的构造方法。 jcb.addItemListener(this); jcb.addItem(“java“); jcb.addItem(“c+“); jcb.addItem(“vb“); jcb.setEditable(false); jtf.
13、setHorizontalAlignment(SwingConstants.CENTER); jtf.setEditable(false); JPanel jp = new JPanel(); jp.setLayout(bLay); jp.add(jtf, “South“); jp.add(jcb, “Center“); setContentPane(jp); public static void main(String args) JFrame frame = new ex14_2(); frame.pack(); frame.setVisible(true); public void it
14、emStateChahged(ItemEvent ie) Object o = if (o = job) Object newO; _; jtf.setText(newO.toString()+“被选中!“); repaint(); (分数:40.00)_正确答案:()解析:ie.getSource() newO=ie.getItem() 解析 本题主要考查用 swing 进行图形用户界面开发。解题关键是熟悉 JTextField 和 JComboBox 等构件的使用方法,以及事件处理机制,掌握在 swing 环境下的ItemListener 监听器的使用方法。本题中,第 1 个空,ItemE
15、vent 类的 ie 对象调用 getSource()方法获得发生事件的对象 o:第 2 个空,ie 调用 getItem()方法获得选项的对象,并写给新的对象 new()。三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是建立两个文本区域,一个为编辑区,一个为只读区;建立两个按钮,一个实现将编辑区中被鼠标选定的文本内容复制到只读区中,一个实现将只读区的全部文本内容清空。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 源程序文件代码清单如下: import java.awt.*; impo
16、rt java.applet.*; /* applet code=“ex14_3.class“ width=800 height=400 /applet */ public class ex14_3 extends Applet private Button okBtn, clearBtn; private String strMessage; private TextArea tArea1, tArea2; public void init() strMessage = “Hello! Welcome to the test! /n“ + “This is the NCR Examinati
17、on! /n“ + “Wish you good luck!“; tArea1 = new TextArea( 10, 25 ); tArea1.setText(strMessage); tArea2 = new TextArea( 10, 25 ); UtArea2.setEditable( true )/U; okBtn = new Button( “Copy“ ); clearBtn = new Button( “Clear“ ); add( tArea1 ); add( tArea2 ); add( okBtn ); add( clearBtn ); public boolean ac
18、tion( Event e, Object o ) if( e.target = okBtn ) UtArea1.setText(tArea2.getSelectedText() )/U; else if( e.target = clearBtn ) UtArea1.setText( “ “)/U; return true; Bex14_3.html/B HTML HEAD TITLEex14_3/TITLE /HEAD BODY applet code=“ex14_3.class“ width=800 height=400 /applet /BODY /HTML(分数:30.00)_正确答案
19、:()解析: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 中的所有文本内容清空。