西北工业大学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.exe7.switch后面的表达式的类型不可以是(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()第4页共4页C.staticvoidmethod()D.abstractvoidmethod()11.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种特性称为(c)。A.Java不支持此特性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定义如下:1.publicclassTest1{2.publicfloataMethod(floata,floatb){}3.4.}将以下(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.设有下面的一段代码:publicclassPerson{staticintarr[]=newint[10];publicstaticvoidmain(Stringa[]){System.out.println(arr[1]);}}对类Person进行编译、解释运行的结果是:(c)。A.编译时报错B.编译时正确,运行时报错C.程序通过编译,解释运行结果为输出0D.程序通过编译,解释运行结果为没有任何输出22.下面程序代码的运行结果是(b)。第4页共4页classExercise_1{publicstaticvoidmain(String[]args){for(inti=0;i3;i++){if(i2)break;System.out.println(i+\t);}System.out.println(i=+i);}}A.i=0B.编译出错C.无限循环D.223.下面程序代码的运行结果是(c)。classStringET{publicstaticvoidmain(String[]args){Strings1=abc+def;Strings2=newString(s1);if(s1==s2)//booleanSystem.out.println(==succeeded);if(s1.equals(s2))System.out.println(.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,则xy和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)类和接口之间的关系:一个类可以实现多个接口,对接口中每个方法都给出具体实现;一个接口可以被多个类所实现;一个接口说明了一种类型,可用接口类型来说明引用变量的类型。该类型的引用变量可指向实现该接口的任一类的对象。所以可通过接口来调用不同类的相同方法。第4页共4页四、写出下列程序完成的功能(共2题,每题4分,共8分)1.publicclassSum{publicstaticvoidmain(Stringargs[]){doublesum=0.0;for(inti=1;i=100;i++)sum+=1.0/(double)i;System.out.println(sum=+sum);}}//1/1+1/2+1/3…..+1/1002.classCMax{int[][]a={{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=a[0][0];voidfind(){for(inti=0;ia.length;i++)for(intj=0;ja[0].length;j++)if(a[i][j]value){value=a[i][j];row=i;col=j;}System.out.println(value=+value+row=+row+colum=+col);}publicstaticvoidmain(String[]args){CMaxcm=newCMax();cm.find();}}//数组最大值五、写出下面程序的运行结果(共2题,每题5分,共10分)1.publicclassTestextendsTT{publicstaticvoidmain(Stringargs[]){Testt=newTest(Tom);}publicTest(Strings){super(s);System.out.println(Howdoyoudo?);}publicTest(){this(IamT