西北工业大学计算机学院java考试试题答案.docx
《西北工业大学计算机学院java考试试题答案.docx》由会员分享,可在线阅读,更多相关《西北工业大学计算机学院java考试试题答案.docx(16页珍藏版)》请在冰豆网上搜索。
西北工业大学计算机学院西北工业大学计算机学院java考试试题答案考试试题答案西北工业大学java课程考试试卷说明:
1.所有题目做在答卷纸上2.考试完毕后连考卷一起交上一、选择(共25题,每题1分,共25分)1.以下标识符中哪项是不合法的(d)。
A.price_per_mB.SalaryC.myVarD.class2.设原来变量a和n的值分别为7和2,则表达式a+=n-2的结果是(d)。
A.1B.2C.9D.73.Java语言使用的字符集是(c)。
A.ASCIIB.Latin-1C.UnicodeD.ISO-Latin4.设x=2,则表达式(x+)/3的值是(b)。
A.2B.0C.1D.35下面的语句(d)是正确的。
A.charc=abc;B.charcr=12;C.floatf=0.23;D.inti=2;6一个Java字节码文件必须以(bp9)为其扩展名。
A.javaB.classC.htmlD.exe7switch后面的表达式的类型不可以是(cp37)。
A.byteB.charC.longD.short8不允许作为类成员的访问控制符的是(d)。
A.publicB.privateC.protectedD.static9执行代码Strings;后,正确的结论是以下的选项(b)。
A.s为”(空串)B.s为nullC.s为”s”D.s为010为AB类的一个无形式参数、无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,那么该方法的定义形式为(c)。
A.finalvoidmethod()B.publicvoidmethod()C.staticvoidmethod()D.abstractvoidmethod()11在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。
这种特性称为(c)。
AJava不支持此特性B.方法的改写C.方法的名复用D.方法的隐藏12.在方法的改写(override)中,如果超类中的方法被说明为protected,子类中可以重新说明为:
(a)。
A.public或protectedB.private或protectedC.public或privateD.ABC均正确13若在某个类中定义了方法:
abstractvoidmethod();那么该方法属于(d)。
A最终方法B.本地方法C.同步方法D.抽象方法14在某个类中仅说明了一个含有形参的构造器,其子类构造器的设计应该:
(c)。
A.子类无需设计构造器,而用缺省构造器。
B.子类必须设计不含形参的构造器。
C.子类的构造器中第一条语句应以super(实参)调用超类构造器。
D.子类的构造器中可用缺省方式调用超类构造器。
15下面关于类及其修饰符的一些描述,正确的是(d)。
A.abstract类可以用来派生子类,也可以用来创建abstract类的对象。
B.final类不但可以用来派生子类,也可以用来创建final类的对象。
C.abstract能与final同时修饰一个类。
D.abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法。
16类Test1定义如下:
1publicclassTest12publicfloataMethod(floata,floatb)34将以下(b)方法插入标号为3的行是不合法的。
A.publicfloataMethod(floata,floatb,floatc)B.publicfloataMethod(floatc,floatd)C.publicintaMethod(inta,intb)D.privatefloataMethod(inta,intb,intc)17在Java语言中,说法(c)是正确的。
A一个子类可以有多个父类,一个父类也可以有多个子类B一个子类可以有多个父类,但一个父类只可以有一个子类C一个子类只可以有一个父类,但一个父类可以有多个子类D上述说法都不对18.下面说法正确的是(b)。
A.每个try代码块都必须至少有一个catch块和它对应,如果一个try块有多个catch块与之对应,应该将参数为父类异常对象的catch块排在前面。
B.如果程序运行到try块中时,某个语句产生了异常,则程序流程将跳过try块后面的语句,直接进入catch块中。
C.如果catch块后还有一个finally块,程序在运行时,一旦进入catch块后,就不会再进入finally块,只有不产生异常时才跳过catch块进入finally块中运行。
D.catch语句可以是多个。
catch语句中的异常类型不必是Throwable类的子类。
19.在使用interface声明一个接口时,只可以使用(d)修饰符修饰该接口。
A.protectedB.privateprotectedC.privateD.public20.创建一个新的线程对象后,通过使用(a)方法就可以启动该线程。
A.start()B.set()C.main()D.run()21设有下面的一段代码:
publicclassPersonstaticintarr=newint10;publicstaticvoidmain(Stringa);对类Person进行编译、解释运行的结果是:
(c)。
A.编译时报错B.编译时正确,运行时报错C.程序通过编译,解释运行结果为输出0D.程序通过编译,解释运行结果为没有任何输出22.下面程序代码的运行结果是(b)。
classExercise_1publicstaticvoidmain(Stringargs)for(inti=0;i3;i+)if(i2)break;+t);i=+i);A.i=0B.编译出错C.无限循环D.223.下面程序代码的运行结果是(c)。
classStringETpublicstaticvoidmain(Stringargs)Strings1=abc+def;Strings2=newString(s1);if(s1=s2)/boolean=succeeded);if(s1.equals(s2).equals()succeeded);A.没有任何输出B.输出=succeededC.输出.equals()succeededD.输出=succeeded.equals()succeeded24.对于接口,下列叙述错误的是(d):
A.接口是一种完全没有实现的类B.在接口中只包含常量和方法的定义,没有方法的实现C.Java提供一种特别类型-“接口”(interface)来实现多重继承D.一个类最多只能实现一个接口25.已知类ArrayList实现了List接口,欲创建ArrayList类的一个对象,下列哪个方法是正确的(b)。
A.ArrayListmyList=newObject();B.ListmList=newArrayList();C.ArrayListmyList=newList();D.ListmyList=newList();二、填空题(每空1分,共20分)1.接口是一种由_常量_和_抽象方法_组成的类型。
2.在Java中创建有名常量是用_static_和_final_来说明一个变量。
3.若x=5,y=10,则x=y的逻辑值分别为_true_和_false_。
4.Java中有两种多态,一种是使用方法的_名复写_实现多态,另一种是使用方法的_改写_实现多态。
5.一个Java源程序文件名为MyJavaApp.java,如果使用Sun公司的Java开发工具JDK编译该源程序文件,并使用其虚拟机运算这个程序的字节码文件,应该顺序执行如下两个命令:
_javacMyJavaApp.java_javaMyJavaApp.class_。
6.Java中类成员的访问控制符有以下几种:
private,public,_protected_,_缺省_。
其中_public_是类成员的缺省访问控制符。
7.如果在子类中说明了一个与超类相同名字的域,超类的那个域仍然存在,但不能用其名直接访问,这种特性称为域的_隐藏_。
8.Java异常有两种:
检测性异常和非检测性异常。
所谓检测性异常就是编译器要检测以确保该方法只引发自己所说明的一种异常。
标准的RuntimeException类和Error类属于上述两种异常中的_非检测性异常_异常。
9.线程的创建方式有两种,一种是扩展_thread类_,一种是实现_throwable类_。
10.如果有一个类MyFrame是Frame的子类,能够被不同包中的类所使用,同时又能够为线程提供运行代码(run()方法),请写出该类的声明头_publicclassMyFrameextendsFrameimplementsThrowable。
11.Java中的_string_类用于处理字符串常量,而_stringBuffer_类用于处理字符串变量。
三、概念解释(共4题,每题3分,共12分)1.方法的改写
(1)方法的改写:
子类中用相同的基调替代超类中某方法的实现。
2.异常
(2)异常:
提供了一种能检测错误且不会使程序代码变得凌乱的清晰方式。
3.抽象类(3)抽象类:
是其中仅定义了部分实现的类,而留待扩展类去提供这些方法的部分或全部的具体实现。
抽象类不能直接实例化对象,抽象类需用abstract关键字修饰。
4.类和接口之间的关系(4)类和接口之间的关系:
一个类可以实现多个接口,对接口中每个方法都给出具体实现;一个接口可以被多个类所实现;一个接口说明了一种类型,可用接口类型来说明引用变量的类型。
该类型的引用变量可指向实现该接口的任一类的对象。
所以可通过接口来调用不同类的相同方法。
四、写出下列程序完成的功能(共2题,每题4分,共8分)1.publicclassSumpublicstaticvoidmain(Stringargs)doublesum=0.0;for(inti=1;i=100;i+)sum+=1.0/(double)i;sum=+sum);/1/1+1/2+1/3.+1/1002.classCMaxinta=3,4,6,7,8,8,7,9,5,2,21,54,26,89,45,34,87,54,67,23;introw=0,col=0,value=a00;voidfind()for(inti=0;ia.length;i+)for(intj=0;jvalue)value=aij;row=i;col=j;value=+value+row=+row+colum=+col);publicstaticvoidmain(Stringargs)CMaxcm=newCMax();cm.find();/数组最大值五、写出下面程序的运行结果(共2题,每题5分,共10分)1publicclassTestextendsTTpublicstaticvoidmain(Stringargs)Testt=newTest(Tom);publicTest(Strings)super(s);Howdoyoudo?
);publicTest()this(IamTom);classTTpublicTT()Whatapleasure!
);publicTT(Strings)this();Iam+s);2.interfaceMyInterfacevoidFun();classMyClass1implementsMyInterfacepublicvoidFun()调用MyClass1中的方法Fun!
);classMyClass2implementsMyInterfacepublicvoidFun()调用MyClass2中的方法Fun!
);publicclassMyClass3publicvoidCallFunOfClass(MyInterfaceIf)If.Fun();publicstaticvoidmain(Stringargs)MyInterfacef;MyClass1Obj1=newMyClass1();MyClass2Obj2=newMyClass2();f=Obj1;f.Fun();f=Obj2;f.Fun();MyClass3Obj3=newMyClass3();Obj3.CallFunOfClass(Obj1);Obj3.CallFunOfClass(Obj2);六、改错(5分)下面程序中编译错误的原因是_____。
abstractclassMineBaseabstractvoidamethod();staticinti;publicclassMineextendsMineBasepublicstaticvoidmain(Stringargy)intar=newint5;for(i=0;iar.length;i+);七、综合设计(写在答题纸上并注明题号)(20分)为某船运公司设计一个集装箱运输管理软件,依次完成下面设计:
1每个集装箱有唯一的注册号regNumber、重量weight(吨)、货物描述description。
编写一个Container类,包含一组私有域、一组访问方法、一个有参量构造器、一个toString()方法将属性描述为字符串。
2危险品箱是一种特殊的集装箱,每个危险品箱须确定一个危险级别(hazadousLevel,可以是1、2、3等)。
编写一个DangerousContainer类,包含私有域、访问方法、一个有参量构造器、一个toString()方法将属性描述为字符串。
3每条船有一个船名name,最大载重量maxLadenWeight(吨),可加载若干集装箱,集装箱的总重量不能超过该船的最大载重量。
编写一个Ship类,包含一组私有域、一组访问方法、一个有参量构造器、一个toString()方法将该船的属性和所加载的集装箱信息描述为字符串。
另外设计:
方法booleanload(Containercnt):
加载一个集装箱cnt到船上,若返回true,则表示未超重且成功加载;若返回false,则表示因超重而加载失败。
方法booleanunload(StringregNumber):
按注册号regNumber卸载一个集装箱。
若找到该集装箱且卸载,则返回true;若未能找到该集装箱而卸载失败,则返回false。
可根据设计需要增加方法。
参考类库如下:
构造器:
publicArrayList()构建一个空的数组列表对象。
方法:
publicbooleanadd(Objecto)把指定对象o加入列表尾部。
方法:
publicObjectget(intindex)返回数组列表中index位置上的对象。
方法:
publicObjectremove(intindex)撤销数组列表中index位置上的对象并返回。
方法:
publicintsize()返回数组列表中已加入的元素个数。
java6答案一、选择(共25题,每题1分,共25分)110DDCBDBCDBC1120CADCDBCBDA2125CBCDB二、填空题(每空1分,共20分)1.常量抽象方法2.staticfinal3.truefalse4.名复用改写5.javacMyJavaApp.javajavaMyJavaApp6.protectedpackagepackage7.隐藏8.非检测性异常9.Thread类Throwable接口10.publicclassMyFrameextendsFrameimplementsThrowable11.StringStringBuffer三、名词解释(共4题,每题3分,共12分)
(1)方法的改写:
子类中用相同的基调替代超类中某方法的实现。
(2)异常:
提供了一种能检测错误且不会使程序代码变得凌乱的清晰方式。
(3)抽象类:
是其中仅定义了部分实现的类,而留待扩展类去提供这些方法的部分或全部的具体实现。
抽象类不能直接实例化对象,抽象类需用abstract关键字修饰。
(4)类和接口之间的关系:
一个类可以实现多个接口,对接口中每个方法都给出具体实现;一个接口可以被多个类所实现;一个接口说明了一种类型,可用接口类型来说明引用变量的类型。
该类型的引用变量可指向实现该接口的任一类的对象。
所以可通过接口来调用不同类的相同方法。
四、写出下列程序完成的功能(共2题,每题4分,共8分)
(1)实现求解1.0/1.0+1.0/2.0+1.0/3.0+.+1.0/100.0,并输出结果。
(2)求解给定45矩阵中所有元素的最大值,并输出该最大值以及其所在的行号和列号。
五、写出下面程序的运行结果(共2题,每题5分,共10分)
(1)Whatapleasure!
IamTomHowdoyoudo?
(2)调用MyClass1中的方法Fun!
调用MyClass2中的方法Fun!
调用MyClass1中的方法Fun!
调用MyClass2中的方法Fun!
六、改错(5分)类Mine应该被声明为abstract类,因为它没有实现抽象方法amethod()。
七、综合设计(写在答题纸上并注明题号)(20分)publicclassContainer/(6分)privateStringregNumber;privateintweight;publicStringdescription;publicContainer(StringregNumber,intweight,Stringdescription)this.regNumber=regNumber;this.weight=weight;this.description=description;publicStringgetRegNumber()returnregNumber;publicintgetWeight()returnweight;publicStringtoString()returnRegNumber:
+regNumber+Weight:
+weight+Desc:
+description;classDangerousContainerextendsContainer/(6分)privateinthazadousLevel;publicDangerousContainer(StringregNumber,intweight,Stringdescription,inthazadousLevel)super(regNumber,weight,description);this.hazadousLevel=hazadousLevel;publicintgetHazadousLevel()returnhazadousLevel;publicStringtoString()returnsuper.toString()+rnHazadousLevel:
+hazadousLevel;importjava.util.*;/(8分)classShipprivateStringname;privateintmaxLadenWeight;privateArrayListcontainers;publicShip(Stringname,intmaxLadenWeight)this.name=name;this.maxLadenWeight=maxLadenWeight;containers=newArrayList();publicintgetMaxLadenWeight()returnmaxLadenWeight;publicintgetTotalWeight()intn=0;for(inti=0;icontainers.size();i+)Containercon=(Container)containers.get(i);n+=con.getWeight();returnn;publicbooleanload(Containercnt)if(cnt.getWeight()+this.getTotalWeight()=maxLadenWeight)containers.add(cnt);returntrue;elsereturnfalse;publicbooleanunload(StringregNumber)for(inti=0;icontainers.size();i+)Containercon=(Container)containers.get(i);if(con.getRegNumber().equals(regNumber)containers.remove(i);returntrue;returnfalse;publicStringtoString()returnName:
+name+MaximumLadenWeight:
+maxLadenWeight+TotalLadenWeight=+getTotalWeight();publicvoidprint()for(inti=0;icontainers.size();i+)Containercon=(Container)containers.get(i);