1、二级 JAVA 机试-175 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下面是一个类的定义程序,请将程序补充完整。注意:不改动程序结构,不得增行或删行。public class_int x,y;My Class (int i,_)x=i;y=j;(分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.下列程序的功能是为变量赋值,程序运行后,输出 i=51。请改动 main 方法中的错误,使程序能够正确编译、运行并输出正确的结果。注意:不改动程序结构。class Aprivate int a;public void
2、 setA (int x)a=x;public int getA()return a;public class MethodTestpublic static void main(String args)A a=A();a.getA(51);int i=a.getA();System.out.println (“i=“+i);(分数:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.下列程序使用 CardLayout 管理了 2 张卡片,每张都是一个 Panel,每个 Panel 有一个 Button,单击按钮,显示下一张卡片中的内容。请将程序补充完整。注意:不改动程序结构,不
3、得增行或删行。import 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=
4、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)_(分数:30.00)_二级 JAVA 机试-17
5、5 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下面是一个类的定义程序,请将程序补充完整。注意:不改动程序结构,不得增行或删行。public class_int x,y;My Class (int i,_)x=i;y=j;(分数:30.00)_正确答案:(MyClassInt j)解析:讲解 本题是基本操作题,主要考核对构造函数的掌握。构造函数的名字必须与类名一致,因此,第 1 空填写 MyClass。此构造函数的功能是为类内的成员变量 x,y 通过参数 i 和 j 来赋值,把 i 的值传给x,我们定义把 j 的值传给 y,因此,第
6、2 空填写 int j.二、2简单应用题(总题数:1,分数:40.00)2.下列程序的功能是为变量赋值,程序运行后,输出 i=51。请改动 main 方法中的错误,使程序能够正确编译、运行并输出正确的结果。注意:不改动程序结构。class Aprivate int a;public void setA (int x)a=x;public int getA()return a;public class MethodTestpublic static void main(String args)A a=A();a.getA(51);int i=a.getA();System.out.println
7、 (“i=“+i);(分数:40.00)_正确答案:(改正后的 main 方法如下:public static void main(String args)A a=new A();a.getA(51);int i=a.getA();System.out.println(“i=“+i);)解析:讲解 本题综合考查类及类成员的定义与使用方面的知识。该程序中定义了两个类:A 和MethodTest,类 A 中封装了一个私有的成员变量 a 和两个公有的方法 setA 和 getA。在类 MethodTest 中包含了 main 方法。创建对象应使用 new 操作符来实例化对象,程序在创建对象 a 时未
8、使用 new,故存在错误。由于 a 是对象 a 的私有变量,在 main 方法中不能直接访问,只能通过对象 a 的公有方法 setA 和getA 来访问。公有方法 setA 的功能是将传递回来的参数值赋给 a,所以应当调用 setA 方法来为变量 a 赋值。三、3综合应用题(总题数:1,分数:30.00)3.下列程序使用 CardLayout 管理了 2 张卡片,每张都是一个 Panel,每个 Panel 有一个 Button,单击按钮,显示下一张卡片中的内容。请将程序补充完整。注意:不改动程序结构,不得增行或删行。import java.awt.*;import java.awt.event
9、.*;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=new Button(“Card1“);btn2=new Button(“Card2“);p
10、l=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)_(分数:30.00)_正确答案:(ActionListenerbtn2.addActionListener(this);cl.previou
11、s(frm);)解析:讲解 本题综合考查了对图形用户界面和事件处理的掌握。按钮可以引发动作事件, 当用户单击一个按钮时就引发了一个动作事件,希望相应按钮引发的动作事件的程序必须把按钮注册给实现了ActionListener 接口的动作事件监听者。因此,第 1 空应填入的是 ActionListener。第 2 空的功能是将btn2 注册给当前的监听者。因此,第 2 空应填入的是 btn2.addActionListener(this);。第 3 空需要填入的是响应鼠标事件的处理代码,当单击鼠标时,要显示下一张卡片中的内容,则需要调用next(Container parent)或者 previous(Container parent)方法。因此,第 3 空应填入的是 cl.next(frm);或 cl.previous(frm);。