1、国家二级( JAVA)机试模拟试卷 77及答案与解析 一、基本操作题( 30分) 1 下面的程序是用 do_while语句计算 10的阶乘。请在程序的每条横线处填写一个语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 源程序文件代码清单如下: public class DoWhileLoop public static void main(_) int n=10; long result=1; do _ _ System.out.println(“10的阶乘为 : “+result); 二、简单应用题( 40分) 2 请完成下列 Ja
2、va程序:创建一个具有 2行 3列的 GridLayout管理器,包括Choice,Label,Button构件,布局为第 1行包括一个 Choice构件 (包括 2个选项 item1和 item2),一个 Label构件 (当选择 Choice构件中的选项时, Label构件显示相应的名称,即如果单击 item1则 Label中显示 item1),和一个 exit按钮 (单击则退出应用程序 ),第 2行包括 3个 Button构件。程序运行结果如下: 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 import java.awt.*; import jav
3、a.awt.event.*; public class ex2_2 extends Frame implements ActionListener,ItemListener private Label 1; private String str=“Label“; private Choice choice2_2; public static void main(String args) new ex2_2(); ex2_2 setLayout(_); choice2_2=new Choice(); choice2_2.addItem(“item1“); choice2_2.addItem(“i
4、tem2“); choice2_2._; add(choice2_2); 1=new Label(str); add(1); Button exit2_2=new Button(“exit“); Exit2_2.addActionListener(this); add(exit2_2); for(int i=0;i 3;i+) add(new Button(“button“ +i); setSize(300,300); pack(); show(); public void actionPerformed(ActionEvent event) If (event.getActionComman
5、d().equals(“exit“) System.exit(0); public void itemStateChanged(ItemEvent event) Str=choice2_2.getSelectedItem(); 1.setText(str); 三、综合应用题( 30分) 3 下列程序使用 CardLayout管理了 2张卡片,每张都是一个 Panel,每个 Panel有一个 Button,单击按钮,显示下一张卡片中的内容。请将程序补充完整。 注意:不改动程序结构,不得增行或删行。 import java.awt.*; import java.awt.event.*; publi
6、c class ex3 implements_ private Panel p1,p2; private Button btn1,btn2; private Frame frm; private CardLayout cl; public static void main(String args) ex3 tt=new ex3(); tt.method(); public void method() Frm=new Frame(“CardLayout“); Cl=new CardLayout(); btn1=new Button(“Card1“); btn2=new Button(“Card2
7、“); pl=new Panel(); p2=new Panel(); p1.add(btn1); btn1.addActionListener(this); p2.add(btn2); _ frm.SetLayout(cl); frm.add(pl,“Layer1“); frm.add(pl,“Layer1“); frm.SetSize200,200); frm.SetVisible(true); public void actionPerformed(ActionEvent ae) _ 国家二级( JAVA)机试模拟试卷 77答案与解析 一、基本操作题( 30分) 1 【正确答案】 Str
8、ing args result*=n-; while(n =1); 【试题解析】 本题主要考查 main()主方法的使用、 while循环语句的用法。解答本题的关键是熟练掌握 main()土方法的使用、 while循环语句的用法。在本题中,String args的作用是声明字符数组 args, result*=n-;语句的作用是获得 n的阶乘并赋值给变量 result。 二、简单应用题( 40分) 2 【正确答案】 new GridLayout(2,3) addltemlistener(this) 【试题解析】 本题主要考查 Java常用构件 Choice和高级事件 ItemEvent以及Gr
9、idLayout布局管理器的用法。解题关键是,熟悉 GridLayout布局管理器和ItemEvent的用法。 ItemEvent在教材中并没有给出确切的用法,但是可以根据ActionEvent的 addActionEvent()方法和重载 actionPerformed()方法来完成对动作事件监听的用法来类推 ItemEvent事件的监听方法,这里要求有根据已有知识 进行单一反三的能力。 三、综合应用题( 30分) 3 【正确答案】 ActionListener btn2.addActionListener(this); cl.previous(frm); 【试题解析】 本题综合考查了对图形
10、用户界面和事件处理的掌握。按钮可以引发动作事件, 当用户单击一个按钮时就引发了一个动作事件,希望相应按钮引发的动作事件的程序必须把按钮注册给实现了 ActionListener接口的动作事件监听者。因此,第 1空应填入的是 ActionListener。第 2空的功能 是将 btn2注册给当前的监听者。因此,第 2空应填入的是 btn2.addActionListener(this);。第 3空需要填入的是响应鼠标事件的处理代码,当单击鼠标时,要显示下一张卡片中的内容,则需要调用 next(Container parent)或者 previous(Container parent)方法。因此,第 3空应填入的是 cl.next(frm);或 cl.previous(frm);。