1、二级 JAVA 机试-11 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下列程序中,指定变量 b=20 为字节类型,变量 f=0.34F 为单精度类型,变量 1=0xeefL 为 64 位长整型,并将该三个变量打印输出。请将程序补充完整。注意:不改动程序结构,不得增行或删行。import java.io.*;public class Assignpublic static void main(String args )_b=20;_f=0.34F;_l=0xeefL;System.out.println(“b=“+b);System
2、.out.println(“f=“+f);System.out.println(“l=“+1);(分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.请完成下列 Java 程序:创建一个具有 2 行 3 列的 GridLayout 管理器,包括 Choice,Label,Button 构件,布局为第 1 行包括一个 Choice 构件(包括 2 个选项 item1 和 item2),一个 Label 构件(当选择 Choice 构件中的选项时,Label 构件显示相应的名称,即如果单击 item1 则 Label 中显示 item1),和一个 exit 按钮(单击则退出应用
3、程序),第 2 行包括 3 个 Button 构件。程序运行结果如下:(分数:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.如下程序是为变量 i 赋值。若程序的输出结果是 180。请将程序补充完整。注意:不改动程序结构,不得增行或删行。class Baseint i;Base()add(10);void add(int v)i+=v;void print()System.out.println(i);class Extension extends BaseExtension()add(_);void add(int v)i+=v*2;public class Constru
4、ctTest3public static void main(String args)bogo(new Extension();static void bogo(Base b)b.add(60);b.print();(分数:30.00)_二级 JAVA 机试-11 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下列程序中,指定变量 b=20 为字节类型,变量 f=0.34F 为单精度类型,变量 1=0xeefL 为 64 位长整型,并将该三个变量打印输出。请将程序补充完整。注意:不改动程序结构,不得增行或删行。import java.i
5、o.*;public class Assignpublic static void main(String args )_b=20;_f=0.34F;_l=0xeefL;System.out.println(“b=“+b);System.out.println(“f=“+f);System.out.println(“l=“+1);(分数:30.00)_正确答案:(bytefloatlong)解析:讲解 本题考查处理基本数据类型的声明。定义一个变量需要有一个类型,一个标识,如果需要,还可以加上一个初始值。本题涉及到三种类型:字节整型、单精度浮点型和 64 位的长整型,分别用关键字 byte、fl
6、oat 和 long 标识。二、2简单应用题(总题数:1,分数:40.00)2.请完成下列 Java 程序:创建一个具有 2 行 3 列的 GridLayout 管理器,包括 Choice,Label,Button 构件,布局为第 1 行包括一个 Choice 构件(包括 2 个选项 item1 和 item2),一个 Label 构件(当选择 Choice 构件中的选项时,Label 构件显示相应的名称,即如果单击 item1 则 Label 中显示 item1),和一个 exit 按钮(单击则退出应用程序),第 2 行包括 3 个 Button 构件。程序运行结果如下:(分数:40.00)
7、_正确答案:(new GridLayout(2,3)addltemlistener(this)解析:讲解 本题主要考查 Java 常用构件 Choice 和高级事件 ItemEvent 以及 GridLayout 布局管理器的用法。解题关键是,熟悉 GridLayout 布局管理器和 ItemEvent 的用法。ItemEvent 在教材中并没有给出确切的用法,但是可以根据 ActionEvent 的 addActionEvent()方法和重载 actionPerformed()方法来完成对动作事件监听的用法来类推 ItemEvent 事件的监听方法,这里要求有根据已有知识进行单一反三的能力。
8、三、3综合应用题(总题数:1,分数:30.00)3.如下程序是为变量 i 赋值。若程序的输出结果是 180。请将程序补充完整。注意:不改动程序结构,不得增行或删行。class Baseint i;Base()add(10);void add(int v)i+=v;void print()System.out.println(i);class Extension extends BaseExtension()add(_);void add(int v)i+=v*2;public class ConstructTest3public static void main(String args)bog
9、o(new Extension();static void bogo(Base b)b.add(60);b.print();(分数:30.00)_正确答案:(20)解析:讲解 本题综合考查了几个知识点,如调用子类的构造函数时,会先调用父类的构造函数;如果在子类的构造函数中没有显示调用父类的构造函数,那么创建子类的实例时,会先调用父类的缺省构造函数;方法的动态绑定。这些知识是考试的难点。以上代码创建的是 Extension 类的实例,所以,在运行时,所有调用 add()方法的过程,将始终和 Extension 类的 add()方法动态绑定。以下是程序依次对变量 i 的改变过程。初始值:i=0Step1:创建实例 new Extension()先调用父类的缺省构造函数 Base(),注意,父类中的 add 方法已被子类重写。父类的缺省构造函数中执行 add(10),i=0+10*2 得到 i=20,再调用子类的缺省构造函数 Extension(),假设横线处应填入的数是x,子类的缺省构造函数中执行 add(x),i=20+x*2。step2:执行 add(60)i=20+x*2+60*2=180 得到 x=20