2010年——2011年Java期末考试题一、判断题。1.Java语言是平台无关的语言。T2.类的静态方法中可以访问该类的非静态数据成员.F3.Java中方法调用时参数传递都是按值传递的,因此从方法中退出时,参数的值是不会变的。T4.覆盖方法所抛出的异常不能比原方法更多。T5.Final方法不能被覆盖。T6.抽象类中一定包含抽象方法。F7.接口中的方法必须是抽象方法。T8.在方法定义中,所以可能发生的异常都必须用try{}catch(){}捕捉。F9.Java支持多重继承。F10.Final修饰的类不能派生子类。T11.覆盖的同名方法中,子类方法不能比父类方法的访问权限更严格。T12.不能在静态方法中使用this.T13.抽象类中不能创建对象。T14.一个类可以实现多接口。T15.接口中可以包含非静态成员。F16.不论是否捕捉到异常try{}catch(){}final{}语句中finally块中的代码总要被执行。T17.一个类实现一个接口,则该类必须实现接口中的所有方法。F18.线程使用sleep方法去休眠后可以使用notify方法唤醒。F19.线程使用sleep方法休眠是会释放该线程同步锁定的对象。F20.Final类中的属性和方法都必须是final的。F二、选择题1、Java中复合数据类型不包括(D)A.类类型B.数组C.接口类型D.指针2、请从四个选项中选择答案,下列代码的执行结果是:(C)PublicclassTest{Publicstaticvoidmain(Stringargs[]){Floatt=9.0f;Intq=6;System.out.println((t++)*(--q));}}A.40B.40.0C.45.0D.36.03、下列关于修饰符混用的说法,错误的是(D)A.abstract不能与final并列修饰同一个类B.abstract类中可以有非abstract的方法C.普通类(非abstract类)中不能有abstract方法D.static方法中能处理非static的属性4、关于被保护访问控制符protected修饰的成员变量,以下说法正确的是(A)A.可以被该类自身、与它在同一个包中的其它类、在其它包中的该类的子类所访问B.只能被该类本身和该类的所有的子类访问C.只能被该类自身所访问D.只能被同一个包中的类访问5、x=2,y=3,z=4,则表达式z*=y++*--x的值是(A)A.12B.24C.16D.36、以下赋值语句正确的是(D)A.charc1=”a”B.floatf1=3.22C.byteb1=266D.longL1=0xAC8L7、Java不支持多重继承,但我们可以通过(B)实现A.多态B.接口C.覆盖D.抽象类8.已知类person是类student的父类,以下数组定义和赋值哪些是正确的(A)A.personp[]=newperson[3];p[1]=newstudent();B.students[]=newperson[3];s[1]=newperson();C.personp[]=newstudent[3];p[1]=newperson();D.students[]=newstudent[3];s[1]=newperson;9编译MyClass.java之后,得到了三个字节码文件:MyClass.class,MyClasslittle$.classMyClass$1.class.这表明(C)A.MyClass类中的两个方法:little和1B.MyClass.Java中有三个类:MyClass、little和1C.MyClass类中有两个内部类:一个是命名的little,另一个是匿名的1D.MyClass、little和1,这三者没什么关系10、main方法是javaApplication程序执行的入口点,关于main方法的方法头以下(B)是合法的。A.publicstaticvoidmain()B.publicstaticvoidmain(Stringarg[])C.publicstaticintmain(String[]arg)D.B.publicvoidmain(Stringarg[])11、当编译和运行下面的代码会出现什么情况?(A)Importjava.io.*;ClassExBase{Abstractpublicvoidmartley()}PublicclassMyExextendsExBase{Publicstaticvoidmain(Stringargv[]){DataInputStreamfi=newDataInputStream(System.in);Try{Fi.readChar();}Catch(IOEceptione){System.exit(0);}Finally{System.out.println(“Doingfinally”);}}}A.编译错误B.可以运行,没有打印出”Doingfinally”C.可以运行,在打印出”Doingfinally”后退出D.在运行之后立即退出12、当编译和运行下面的代码会出现什么情况?(D)PublicclassSandys{Privateintcourt;Publicstaticvoidmain(Stringargv[]){Sandyss=newSandys(99);System.out.println(s.court);}Sandys(intballeount){court=ballcount;}}A.编译错误,变量court被定义为privateB.编译错误,System.out调用的s没有被初始化C.可以编译和运行,没有输出结果D.可以编译和运行,输出结果为9913、给出下面的代码:ClassBase{}ClassAggextendsBase{PublicStringgetFields(){Stringname=”Agg”;Returnname;}}PublicclassAvf{Publicstaticvoidmain(Stringargv[]){Basea=newAgg();//Here}}当把下面的代码添加到注释“/Here”后面,程序的输出结果是”Agg”(D)A.System.out.println(a.getFields())B.System.out.println(a.name)C.System.out.println((Base)a.getFields())D.System.out.println(((Agg)a).getFields())14、当编译和运行下面的代码会出现什么情况?(A)AbstractclassBase{Abstractpublicvoidmyfunc();Publicvoidanother(){Systern.out.println(“Anothermethod”);}}PublicclassAbsextendsBase{}Publicstaticvoidmain(Stringargv[]){Absa=newAbs();a.amethod();}Publicvoidmyfunc(){System.out.println(“MyFunc”)}A.可以编译和运行,输出的结果是”Myfunc”B.出现编译错误:Base类中没有抽象方法C.可以编译,但运行是提示Base类中没有抽象方法D.出现编译错误,Base类中的方法myfunc没有方法体15、编译和运行下面的代码会出现(D)Importjava.io.*;ClassBase{Publicvoidamethod()throwsFileNotFoundException{}}PublicclassExcepDemoextendsBase{Publicstaticvoidmain(Stringargv[]){NewExcepDemo();}Publicvoidamethod(){}ProtectedExcepDemo(){try{BufferedReaderinputStream=newBufferedReader(newInputStreamReader);System.out.println(“Pausing”);inputStream.readLine();System.out.println(“Contimuing”);This.amethod();}catch(IOExceptionioe){}}A.编译错误,因为构造方法被声明为protectedB.编译错误,因为方法amethod没有抛出异常C.运行时错误,因为方法amthod没有抛出异常D.可以编译和运行,输出的结果是:Pausing…Continuing其中…表示等待用户的键盘输入17、以下程序的输出结果是(C)classAclass{voidgo(){System.out.println(“Aclass”);}}publicclassBclassextendsAclass{Voidgo{System.out.println(“Bclass”);}Publicstaticvoidmain(Stringargs[]){Aclassa=newAclass();Aclassal=newBclass();a.go();al.go();}}A、AclassAclassB、BclassBclassC、AclassBclassD、BclassAclass18、看以下程序Booleana=false;Booleanb=true;Booleanc=(a&&b)&&(!b);Intresult=c==false?1:2;这段程序执行完后,c与result的值是:(A)A.c=false;result=1;B.c=true;result=2;C.c=true;result=1;D.c=false;result=2;19、下面哪个单词是Java语言的关键字(B)A.FloatB.thisC.stringD.unsigned20、switch语句(A)A.都可以用if-elseif结构实现B.都不可以用if-elseif结构实现C.有的可以用if-elseif结构实现D.大部分不可以用if-elseif结构实现21、在异常处理中,如释放资源、关闭文件等善后操作由(C)来完成。A.try子句B.catch子句C.finally子句D.throw子句22、下面哪个是Java语言中正确的标识符(C)A.3comB.importC.thatD.this23、下面哪个修饰符修饰的方法只能被本类中的其他方法使用(C)A.protectedB.staticC.privateD.24、下面哪条语句定义了5个元素的数组(A)A.int[]a={22,23,24,25,12};B.inta[]=newint(5);C.int[5]array;D.int[]arr;25、下面哪项可以得到数组元素的个数,Java中定义数组名为abc。(B)A.abc.length()B.abc.lengthC.len(abc)D.ubound(abc)26、下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的(C)A.publicB.privateC.staticD.final27、下面关于构造方法的说法不正确的是(B)A、构造方法也属于类的方法,用于创建对象的时候给成员变量赋值。B、构造方法不可以重载。C、构造方法没有返回值D、构造方法一定要和类名相同28、监听事件和处理事件(A)A、都由Listener完成B、都由相应事件Listener处登记过的构件完成C、由Listener和构件分别完成D、由Listener和窗口分别完成29、如果希望所有的控件在界面上均匀排列,应使用下列那种布局管理器?(B)A.BoxLayoutB.GridLayoutC.BorderLayoutD.FlowLouLayout30、给出如下代码:ClassTest{Privateintm;Publicstaticvoidfun(