1、国家二级(JAVA)机试-试卷 28 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.下面的程序是用 do_while 语句计算 10 的阶乘。请在程序的每条横线处填写一个语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 源程序文件代码清单如下: public class DoWhileLoop public static void main(_) int n=10; long result=1; do _ _ System.out.printl
2、n(“10 的阶乘为: “+result); (分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.请完成下列 Java 程序:创建一个具有 2 行 3 列的 GridLayout 管理器,包括 Choice,Label,Button 构件,布局为第 1 行包括一个 Choice 构件(包括 2 个选项 item1 和 item2),一个 Label 构件(当选择 Choice 构件中的选项时,Label 构件显示相应的名称,即如果单击 item1 则 Label 中显示 item1),和一个 exit 按钮(单击则退出应用程序),第 2 行
3、包括 3 个 Button 构件。程序运行结果如下: (分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.下列程序使用 CardLayout 管理了 2 张卡片,每张都是一个 Panel,每个 Panel 有一个 Button,单击按钮,显示下一张卡片中的内容。请将程序补充完整。 注意:不改动程序结构,不得增行或删行。 import java.awt.*; import java.awt.event.*; public class ex3 implements_ private Panel p1,p2; private Button btn
4、1,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“); pl=new Panel(); p2=new Panel(); p1.add(btn1); btn1.addActio
5、nListener(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) _ (分数:2.00)_国家二级(JAVA)机试-试卷 28 答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.下面的程序是用 do_whil
6、e 语句计算 10 的阶乘。请在程序的每条横线处填写一个语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 源程序文件代码清单如下: public class DoWhileLoop public static void main(_) int n=10; long result=1; do _ _ System.out.println(“10 的阶乘为: “+result); (分数:2.00)_正确答案:(正确答案:String args result*=n-; while(n=1);)解析:解析:本题主要考查 main()主方法的
7、使用、while 循环语句的用法。解答本题的关键是熟练掌握 main()土方法的使用、while 循环语句的用法。在本题中,String args的作用是声明字符数组 args, result*=n-;语句的作用是获得 n 的阶乘并赋值给变量 result。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.请完成下列 Java 程序:创建一个具有 2 行 3 列的 GridLayout 管理器,包括 Choice,Label,Button 构件,布局为第 1 行包括一个 Choice 构件(包括 2 个选项 item1 和 item2),一个 Labe
8、l 构件(当选择 Choice 构件中的选项时,Label 构件显示相应的名称,即如果单击 item1 则 Label 中显示 item1),和一个 exit 按钮(单击则退出应用程序),第 2 行包括 3 个 Button 构件。程序运行结果如下: (分数:2.00)_正确答案:(正确答案:new GridLayout(2,3) addltemlistener(this)解析:解析:本题主要考查 Java 常用构件 Choice 和高级事件 ItemEvent 以及 GridLayout 布局管理器的用法。解题关键是,熟悉 GridLayout 布局管理器和 ItemEvent 的用法。It
9、emEvent 在教材中并没有给出确切的用法,但是可以根据 ActionEvent 的 addActionEvent()方法和重载 actionPerformed()方法来完成对动作事件监听的用法来类推 ItemEvent 事件的监听方法,这里要求有根据已有知识进行单一反三的能力。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.下列程序使用 CardLayout 管理了 2 张卡片,每张都是一个 Panel,每个 Panel 有一个 Button,单击按钮,显示下一张卡片中的内容。请将程序补充完整。 注意:不改动程序结构,不得增行或删行。 impor
10、t java.awt.*; import java.awt.event.*; public 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
11、=new Button(“Card1“); btn2=new Button(“Card2“); 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) _ (分数:2.00
12、)_正确答案:(正确答案:ActionListener btn2.addActionListener(this); cl.previous(frm);)解析:解析:本题综合考查了对图形用户界面和事件处理的掌握。按钮可以引发动作事件, 当用户单击一个按钮时就引发了一个动作事件,希望相应按钮引发的动作事件的程序必须把按钮注册给实现了ActionListener 接口的动作事件监听者。因此,第 1 空应填入的是 ActionListener。第 2 空的功能是将btn2 注册给当前的监听者。因此,第 2 空应填入的是 btn2.addActionListener(this);。第 3 空需要填入的是响应鼠标事件的处理代码,当单击鼠标时,要显示下一张卡片中的内容,则需要调用next(Container parent)或者 previous(Container parent)方法。因此,第 3 空应填入的是 cl.next(frm);或 cl.previous(frm);。