1、国家二级( JAVA)机试模拟试卷 78及答案与解析 一、基本操作题( 30分) 1 下面是一个类的定义程序,请将程序补充完整。 注意:不改动程序结构,不得增行或删行。 public class_ int x,y; My Class (int i,_) x=i; y=j; 二、简单应用题( 40分) 2 请完成 下列 Java程序:创建一个二维整形数组,并将其以 5行 4列对齐的格式输出。请将程序填写完整。 注意:不改动程序结构,不得增行或删行。 public class ex2 public static void main(String args) Int aMatrix=1,1,1,1,
2、2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5; int i=0; int j=0; for(i=0;i aMatrix.length;i+) For (j=0; _; j+) System.out.print(_+“ “); System.out.println( ); 三、综合应用题( 30分) 3 如下程序是为变量 i赋值。 若程序的输出结果是 180。请将程序补充完整。 注意:不改动程序结构,不得增行或删行。 class Base int i; Base() add(10); void add(int v) i+=v; void print() System.out.p
3、rintln(i); class Extension extends Base Extension() add(_); void add(int v) i+=v*2; public class ConstructTest3 public static void main(String args) bogo(new Extension(); static void bogo(Base b) b.add(60); b.print(); 国家二级( JAVA)机试模拟试卷 78答案与解析 一、基本操作题( 30分) 1 【正确答案】 MyClass Int j 【试题解析】 本题是基本操作题,主要考
4、核对构造函数的掌握。构造函数的名字必须与类名一致,因此,第 1空填写 MyClass。此构造函数的功能是为类内的成员变量 x,y通过参数 i和 j来赋值,把 i的值传给 x,我们定义把 j的值传给 y,因此,第 2空填写 int j. 二、简单应用题( 40分) 2 【正确答案】 j aMatrixi.length aMatrixij 【试题解析】 本题主要考查二维数组的循环输出。程序中,变量 i控制数组中元素排列的行数,变量 j控制每一行中元素的个数。第 1空填写 aMatrixi.length。因为循环输出每一行元素的时候不能超出范围,所以变量 j的最大值要控制在数组每行元素最大值之内,即
5、小于 aMatrixi的长度。第 2空填写 aMatrixij。此处就是用变量 i和变量 j为下标,表示该元素为第 i行的第 j个元素,控制数组内的元素输出。 三、综合应用题( 30分) 3 【正确答案】 20 【试题解析】 本题综合考查了几 个知识点,如调用子类的构造函数时,会先调用父类的构造函数;如果在子类的构造函数中没有显示调用父类的构造函数,那么创建子类的实例时,会先调用父类的缺省构造函数;方法的动态绑定。这些知识是考试的难点。以上代码创建的是 Extension类的实例,所以,在运行时,所有调用 add()方法的过程,将始终和 Extension类的 add()方法动态绑定。以下是程序依次对变量 i的改变过程。 初始值: i=0 Step1:创建实例 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