1、程序员-Java 程序设计(一)及答案解析(总分:23.00,做题时间:90 分钟)一、试题一(总题数:1,分数:5.00)说明java.util库中提供了 Vector模板类,可作为动态数组使用,并可容纳任意数据类型。该类的部分方法说明如下所示:方法名 含义add(k) 向 vector对象的尾部添加一个元素 kremoveElementAt(i) 删除序号为 i的元素(vector 元素序号从 0开始)isEmpty( ) 判断 vector对象是否含有元素size( ) 返回 vector对象中所包含的元素个数Java代码Import (1) ; public class JavaMai
2、n static private final int (2) =6; public static void main(Stringargs) Vector theVector=new Vector (3) ( ); /初始化 theVector,将 theVector的元素设置为 0至 5for(int cEachItem=0; cEachItemARRAY_SIZE; cEachItem+)theVector. add( (4) ); showVector(theVector); /依次输出 theVector巾的元素theVector. removeElementAt(3); showVe
3、ctor(theVector); public static void showVector(Vector theVector)if(theVector. isEmpty( )System.out.printin(“theVector is empty.“); return; for(int loop=0; looptheVector.size( ); loop+) System.out.print(theVector.get(loop); System.out.print(“,“); System.out.printin( ); 该程序运行后的输出结果为:0, 1, 2, 3, 4, 5(5
4、) (分数:5.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_二、试题二(总题数:2,分数:5.00)请指出错误所在行号并给出该行修改后的完整结果。(分数:4.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_1.请补齐第 21行代码中的空缺。(分数:1.00)填空项 1:_三、试题三(总题数:1,分数:5.00)说明已知对某载客车辆(Car)进行类建模,如图 13-2所示,其中类 Engine表示发动机引擎,类 Wheel表示车轮,类 Body表示车身,类 Driver表示司机,类 Passenger表示乘客。(分数:5.00)填空项 1:_填空项
5、1:_填空项 1:_填空项 1:_填空项 1:_四、试题四(总题数:3,分数:8.00)2.关于上述 Java代码中 sh和 tr的以下叙述中,哪两个是正确的(写出编号)?sh 和 tr分别引用同一个对象;sh 和 tr分别引用同一类型的不同的对象;sh 和 tr分别引用不同类型的不同对象;sh 和 tr分别引用同一个对象的不同复制;sh 和 tr所引用的内存空间是相同的。(分数:1.00)填空项 1:_写出下面消息对应的方法编号(如果该消息错误或者没有对应的方法调用,请填写“无”)。(分数:6.00)(1).tr.height( )(分数:1.00)填空项 1:_(2).sh.perimet
6、er( )(分数:1.00)填空项 1:_(3).sq.height( )(分数:1.00)填空项 1:_(4).sq.perimeter( )(分数:1.00)填空项 1:_(5).sh.height( )(分数:1.00)填空项 1:_(6).tr.perimeter( )(分数:1.00)填空项 1:_3.下列赋值语句中哪两个是合法的(写出合法赋值语句的编号)?(分数:1.00)填空项 1:_程序员-Java 程序设计(一)答案解析(总分:23.00,做题时间:90 分钟)一、试题一(总题数:1,分数:5.00)说明java.util库中提供了 Vector模板类,可作为动态数组使用,并
7、可容纳任意数据类型。该类的部分方法说明如下所示:方法名 含义add(k) 向 vector对象的尾部添加一个元素 kremoveElementAt(i) 删除序号为 i的元素(vector 元素序号从 0开始)isEmpty( ) 判断 vector对象是否含有元素size( ) 返回 vector对象中所包含的元素个数Java代码Import (1) ; public class JavaMain static private final int (2) =6; public static void main(Stringargs) Vector theVector=new Vector (
8、3) ( ); /初始化 theVector,将 theVector的元素设置为 0至 5for(int cEachItem=0; cEachItemARRAY_SIZE; cEachItem+)theVector. add( (4) ); showVector(theVector); /依次输出 theVector巾的元素theVector. removeElementAt(3); showVector(theVector); public static void showVector(Vector theVector)if(theVector. isEmpty( )System.out.p
9、rintin(“theVector is empty.“); return; for(int loop=0; looptheVector.size( ); loop+) System.out.print(theVector.get(loop); System.out.print(“,“); System.out.printin( ); 该程序运行后的输出结果为:0, 1, 2, 3, 4, 5(5) (分数:5.00)填空项 1:_ (正确答案:java.util.Vector 或 java.util.*)解析:填空项 1:_ (正确答案:ARRAY_SIZE)解析:填空项 1:_ (正确答案
10、:Integer)解析:填空项 1:_ (正确答案:cEachItem)解析:填空项 1:_ (正确答案:0,1,2,4,5)解析:解析 本题考查的是 Java语言的基本应用。在使用 Java库中的类时,要导入类所在的包,(1)处应为 java.util.Vector或 java.util.*。(2)处考查的是变量的定义,此处应为 ARRAY_SIZE。(3)处是考察 Vector模板类存储的数据类型,所以此处应为 Integer类型,(4)处代码主要是将循环变量的值存入cEachItern中,因此应为 cEachItem。程序开始会输出 0,1,2,3,4,5,再次输出时则没有 3,应为0,
11、1,2,4,5。二、试题二(总题数:2,分数:5.00)请指出错误所在行号并给出该行修改后的完整结果。(分数:4.00)填空项 1:_ (正确答案:第 1行,去掉 public)解析:填空项 1:_ (正确答案:第 2行,去掉 static)解析:填空项 1:_ (正确答案:第 4行,share val=0)解析:填空项 1:_ (正确答案:第 7行,去掉“=0”)解析:1.请补齐第 21行代码中的空缺。(分数:1.00)填空项 1:_ (正确答案:new Stock( ),或者 new Stock(0,0))解析:解析 Java 代码中,一个文件只能有一个与文件同名的公共类,所以问题 1中第
12、一行 Stock类前面的 public修饰符要去掉。静态的初始化区域只能对类的静态变量进行初始化,而 shares和 share val不是静态变量,所以需要去掉第 2行的 static。第 16行将 share val定义为 int型,所以第 4行赋值有误,需要改为 0。第 7行 Stock类的构造函数没有默认参数的用法,所以需要将默认值去掉。对于问题 2由于程序输出的第一行为 0:0,所以直接调用构造函数 Stock( ),因为默认参数均已为 0,或者调用构造函数 Stock(0,0)也可实现。三、试题三(总题数:1,分数:5.00)说明已知对某载客车辆(Car)进行类建模,如图 13-2
13、所示,其中类 Engine表示发动机引擎,类 Wheel表示车轮,类 Body表示车身,类 Driver表示司机,类 Passenger表示乘客。(分数:5.00)填空项 1:_ (正确答案:MAX_PASSENGERS)解析:填空项 1:_ (正确答案:this)解析:填空项 1:_ (正确答案:driver=null)解析:填空项 1:_ (正确答案:driver)解析:填空项 1:_ (正确答案:new)解析:解析 根据题意可得,程序代码中空(1)处定义最多载客数目,从后面的程序代码可得MAX_PASSENGERS用来定义最多载客数目,所以空(1)处应该为 MAX_PASSENGERS。
14、由于参数的名称 driver与成员变量的名称相同,因此需要加上 this,所以空(2)处为 this。空(3)处主要用于判断司机是否上车,可以通过 driver是否等于 null进行判断。空(4)处用于新建一个汽车对象,其构造方法中需要一个司机对象 driver,所以空(4)处应为 driver。函数 getOnPassenger的参数应该是乘客对象,因此要构造一个乘客对象,所以空(5)处为 new。四、试题四(总题数:3,分数:8.00)2.关于上述 Java代码中 sh和 tr的以下叙述中,哪两个是正确的(写出编号)?sh 和 tr分别引用同一个对象;sh 和 tr分别引用同一类型的不同的
15、对象;sh 和 tr分别引用不同类型的不同对象;sh 和 tr分别引用同一个对象的不同复制;sh 和 tr所引用的内存空间是相同的。(分数:1.00)填空项 1:_ (正确答案:)解析:写出下面消息对应的方法编号(如果该消息错误或者没有对应的方法调用,请填写“无”)。(分数:6.00)(1).tr.height( )(分数:1.00)填空项 1:_ (正确答案:3)解析:(2).sh.perimeter( )(分数:1.00)填空项 1:_ (正确答案:5)解析:(3).sq.height( )(分数:1.00)填空项 1:_ (正确答案:无)解析:(4).sq.perimeter( )(分数
16、:1.00)填空项 1:_ (正确答案:4)解析:(5).sh.height( )(分数:1.00)填空项 1:_ (正确答案:无)解析:(6).tr.perimeter( )(分数:1.00)填空项 1:_ (正确答案:5)解析:3.下列赋值语句中哪两个是合法的(写出合法赋值语句的编号)?(分数:1.00)填空项 1:_ (正确答案:)解析:解析 根据题中代码可知,tr 引用一个 Triangle对象,sq 引用一个 Square对象,sh 和 tr引用同一个 Triangle对象。所以问题 1中正确,由于 sh和 tr引用同一个对象,其引用的内存空间也必然相同,错误。对于问题 2中的消息,tr 引用 Triangle对象,所以 tr.height( )调用 Triangle类的 height方法;sq 引用 Square对象,但 Square没有 height方法,所以 sq.height( )没有对应任何方法调用,但 Square类有 perimeter方法,所以 sq.perimeter( )调用 Square类的 perimeter方法,其他几项同上。问题 3中,赋值运算的左边应该是右边的父类或同一类型才可以正确赋值。所以正确的是。