1期末复习题(二)一、选择题:1、下列叙述中,正确的是:()A声明变量时必须指定一个类型B、Java认为变量number和Number相同C、Java中唯一的注释方式是“//”D、源文件中public类可以有0或多个2、在switch(expression)语句中,expression的数据类型不能是:AA、doubleB、charC、byteD、short3、已知int[]a=newint[100];,在下列给出的数组元素中,非法的是:DA、a[0]B、a[1]C、a[99]D、a[100]4、下列语句序列执行后,x的值是(A)。inta=3,b=4,x=5;if(++ab)x=x+1;A、5B、3C、4D、65、设x,y均为已定义的类名,下列声明对象x1的语句中正确的是(C)。A、publicxx1=newy();B、xx1=x();C、xx1=newx();D、intxx1;6、有一个类A,以下为其构造函数的声明,其中正确的是(B)。A、voidA(intx){...}B、A(intx){...}C、a(intx){...}D、voida(intx){...}7.Java语言的类间的继承关系是(B)。A、多重的B、单继承C、线程的D、不能继承8、下面说法正确的是(A)。A、final可修饰类、属性、方法。B、abstract可修饰类、属性、方法。abstract可修饰类、方法。C、定义抽象方法需有方法的返回类型、名称、参数列表和方法体(没有方法体)。D、用final修饰的变量(常量),在程序中可对这个变量的值进行更改。9、对于下列代码:1)classPerson{2)publicvoidprintValue(inti,intj){//...}3)publicvoidprintValue(inti){//...}4)}5)publicclassTeacherextendsPerson{6)publicvoidprintValue(){//...}7)publicvoidprintValue(inti){//...}8)publicstaticvoidmain(Stringargs[]){9)Persont=newTeacher();//赋值兼容规则10)t.printValue(10);11)}第10行语句将调用哪行语句?(D)A、line2B、line3C、line6D、line710下面关于java中类的说法哪个是不正确的(c)A、类体中只能有变量定义和成员方法的定义,不能有其他语句。2B、构造函数是类中的特殊方法。C、类一定要声明为public的,才可以执行。D、一个java文件中可以有多个class定义(但只能有一个Public修饰的类)。11、给出一段程序,选择运行结果()publicclasssss{publicstaticvoidmain(Stringargs[]){Strings1=args[1];Strings2=args[2];Strings3=args[3];Strings4=args[4];System.out.println(“args[2]=”+s2);}}命令行执行:javasss1234结果是下面哪一个?A、args[2]=2B、args[2]=nullC、args[2]=1D、运行出现异常12、下面的是关于类及其修饰符的一些描述,正确的是:()。A、abstract类只能用来派生子类,不能用来创建abstract类的对象(可以用赋值兼容规则)。B、final类不但可以用来派生子类,也可以用来创建final类的对象。C、abstract不能与final同时修饰一个类。D、abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法。13、在浏览器中执行applet程序,以下选项中的哪个方法将被最先执行()。A.init()B.start()C.destroy()D.stop()publicclassT1{publicstaticvoidmain(String[]args){T1a=newT1();a.method(8);a.method(1.2f);}voidmethod(floati){System.out.println(float:+i);}voidmethod(longi){System.out.println(long:+i);}}A、程序有编译错误,因为两个method()方法必须定义为静态(static)的。B、程序可以编译运行,输出结果为:long:8float:1.2C、程序可以编译运行,输出结果为:float:1.2long:8D、程序中定义的两个参数不同的method方法称为方法重栽。15、编译并运行下面的程序,运行结果为().3publicclassA{publicstaticvoidmain(String[]args){Aa=newB();a.test();}voidtest(){System.out.print(A);}}classBextendsA{voidtest(){super.test();System.out.println(B);}}A、子类B定义了与父类A中同名的方法test,java中称为方法的覆盖。B、代码可以编译运行,并输出结果:ABC、代码可以编译运行,并输出结果:A。D、子类B定义了与父类A中同名的方法test,java中称为方法的重载16、下面哪个说法正确()A、如果某公共的接口被声明在一个源文件中,则接口必须与源文件具有相同的名字。B、如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语句行。C、如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。D、接口中的方法必定是抽象方法,但可以不用关键字abstract修饰。17、类的设计要求它的某个成员变量不能被外部类直接访问。应该使用下面的哪些修饰符获得需要的访问控制?A、publicB、nomodifierC、protected(权限仅次于public)D、private18、哪些返回true?[多选]Strings=hello;Stringt=hello;charc[]={'h','e','l','l','o'};A、s.equals(t);B、t.equals(c);C、s==t;D、t.equals(newString(hello));E、t==c.19、类Teacher和Student都是类Person的子类Personp;Teachert;Students;p,tandsareallnon-null.4if(tinstanceofPerson){s=(Student)t;}这个语句导致的结果是什么?A、将构造一个Student对象。B、表达式合法。C、编译时非法。D、编译时合法而在运行时可能非法。20、给出下面的代码:classPerson{Stringname,department;publicvoidprintValue(){System.out.println(nameis+name);System.out.println(departmentis+department);}}publicclassTeacherextendsPerson{intsalary;publicvoidprintValue(){//doingthesameasintheparentmethodprintValue()//includingprintthevalueofnameanddepartment.System.out.println(salaryis+salary);}}下面的哪些表达式可以加入printValue()方法的doingthesameas...部分?A、printValue();B、this.printValue();C、person.printValue();D、super.printValue().21、请说明程序的运行结果classTest{publicstaticvoidmain(String[]args){charmyChar='c';switch(myChar){default:case'a':System.out.println(a);break;case'b':System.out.println(b);break;}}}22、请写出程序的运行结果classTester{intvar;5Tester(doublevar){this.var=(int)var;}Tester(intvar){this(hello);}Tester(Strings){this();System.out.print(s);}Tester(){System.out.print(goodbye);}publicstaticvoidmain(String[]args){Testert=newTester(5);}}23.java程序的执行过程中用到一套JDK工具,其中javac.exe指(A)A.java语言编译器B.java字节码解释器C.java文档生成器D.java类分解器24.关于Applet和Application,下列说法错误的是(B)A.Applet自身不能运行B.Applet可以嵌在Application中运行C.Application以main()方法为入口D.Applet可嵌在浏览器中运行25.整型数据类型中,需要内存空间最少的是(D)。A.shortB.longC.intD.byte26.下面的代码段,输出结果是(B)。intx=015;System.out.println(x);A.015B.13C.15D.编译错误27.若有以下程序段:inta=1,b=2,c;c=1/b*a;执行后,c的值是(A)。A.0B.0.5C.1D.228.下列关于数组的定义中,不正确的是(C)A.int[]a=newint[5];B.inta[]={1,2,3,4};C.inta[][]=newint[][9];D.inta[][]={{1}{1,2}{1,2,3}};29.已知x=5;y=7;经过表达式(x++5)&&(++y0)的运算,x和y的值分别是(D)A.5和7B.5和8C.6和7D.6和830.下面描述正确的是:(D)A.声明变量时必须指定一个类型B.java认为变量number和Number相同C.java中唯一的注释方式是“//”D.源文件中public类可以有0个或多个631.下面有关抽象类定义合法的是(D)。A.classAnimal{abstractvoidgrowl();}B.abstractAnimal{abstractvoidgrowl();}C.classabstractAnimal{abstractvoidgrowl();}D.abstractclassAnimal{abstractvoidgrowl();}32.根据下面的代码if(x0){System.out.println(第一);}elseif(x-3){System.out.println(第二);}else{System.out.println(第三);}判断x的取值在(D)范围内时将打印字符串“第二”?A.x0B.x-3C.x=-3D.x=0&x-333.要使某个类能被同一个包中的其他类访问,但不能被这个包以外的类访问,则(A)。A.该类不使用任何关键字B.使用private关键字C.使用final关键字D.使用protected关键字34.以下关于接口不正确的说法是(D)。A.一个类可以实现多个接口类似于多重继承B.接口没有构造函数和析构函数C.接口可以继承D.接口包含的方法既可以有实现,也可以没有实现35.对于可以独立运行的Java应用程序,下列(D)说法是正确的。A.无须main方法B.必须有两个main方法C.可以有多个或零个main方法D.必须有一个main方法