Java初级阶段测试3一、选择题(每题2分,共50分)1.整型数据类型中,需要内存空间最少的是()A)shortB)longC)intD)byte2.Java语言中()A)一个子类可以有多个父类,一个父类也可以有多个子类B)一个子类可以有多个父类,但一个父类只可以有一个子类C)一个子类可以有一个父类,但一个父类可以有多个子类D)上述说法都不对3.以下声明合法的是()A、defaultStrings;B、publicfinalstaticnativeintw();C、abstractdoubled;D、abstractfinaldoublehyperbolicCosine();4.在JAVA中,以下()类的对象以键-值的方式存储对象A、java.util.ListB、java.util.ArrayListC、java.util.HashMapD、java.util.LinkedList5.关于以下程序代码的说明正确的是()1)classHasStatic{2)privatestaticintx=100;3)publicstaticvoidmain(Stringargs[]){4)HasStatichs1=newHasStatic();5)hs1.x++;6)HasStatichs2=newHasStatic();7)hs2.x++;8)hs1=newHasStatic();9)hs1.x++;10)HasStatic.x--;11)System.out.println(“x=”+x);12)}13)}A、5行不能通过编译,因为引用了私有静态变量B、10行不能通过编译,因为x是私有静态变量C、程序通过编译,输出结果为:x=103D、程序通过编译,输出结果为:x=1026.以下选项中循环结构合法的是()A、while(inti7){i++;System.out.println(“iis“+i);}B、intj=3;while(j){System.out.println(“jis“+j);}C、intj=0;for(intk=0;j+k!=10;j++,k++){System.out.println(“jis“+j+“kis”+k);}D、intj=0;do{System.out.println(“jis“+j++);if(j==3){continueloop;}}while(j10);7.类Test1定义如下:1)publicclassTest1{2)publicfloataMethod(floata,floatb){}3)4)}将以下哪种方法插入行3是不合法的。()A、publicfloataMethod(floata,floatb,floatc){}B、publicfloataMethod(floatc,floatd){}C、publicintaMethod(inta,intb){}D、privatefloataMethod(inta,intb,intc){}8.类Test1、Test2定义如下:1)publicclassTest12){publicfloataMethod(floata,floatb)throws3)IOException{}4)}5)publicclassTest2extendsTest1{6)7)}将以下哪种方法插入行6是不合法的。()A、floataMethod(floata,floatb){}B、publicintaMethod(inta,intb)throwsException{}C、publicfloataMethod(floatp,floatq){}D、publicintaMethod(inta,intb)throwsIOException{}9.以下关于构造函数的描述错误的是()。A、构造函数的返回类型只能是void型。B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。C、构造函数的主要作用是完成对类的对象的初始化工作。D、一般在创建新对象时,系统会自动调用构造函数。10.有以下方法的定义,请选择该方法的返回类型()。ReturnTypemethod(bytex,doubley){return(short)x/y*2;}A、byteB、shortC、intD、double11.A派生出子类B,B派生出子类C,并且在Java源代码中有如下声明:1)Aa0=newA();2)Aa1=newB();3)Aa2=newC();问以下哪个说法是正确的?()A、只有第1行能通过编译B、第1、2行能通过编译,但第3行编译出错C、第1、2、3行能通过编译,但第2、3行运行时出错D、第1行、第2行和第3行的声明都是正确的12.假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?()classA{inti;staticStrings;voidmethod1(){}staticvoidmethod2(){}}A、System.out.println(a.i);B、a.method1();C、A.method1();D、A.method2()13.有如下代码段:1)2){if(unsafe()){//dosomething…}3)elseif(safe()){//dotheother…}4)}其中,方法unsafe()将抛出IOException,请问可将以下哪项填入第1行?()A、publicIOExceptionmethodName()B、publicvoidmethodName()C、publicvoidmethodName()throwIOExceptionD、publicvoidmethodName()throwsIOException14.给出下面代码,关于该程序以下哪个说法是正确的?()publicclassPerson{staticintarr[]=newint[5];publicstaticvoidmain(Stringa[]){System.out.println(arr[0]);}}}A、编译时将产生错误B、编译时正确,运行时将产生错误C、输出零D、输出空15.在使用interface声明一个接口时,只可以使用()修饰符修饰该接口。A、privateB、protectedC、privateprotectedD、public16.关于被私有访问控制符private修饰的成员变量,以下说法正确的是()A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B.可以被两种类访问和引用:该类本身、该类的所有子类C.只能被该类自身所访问和修改D.只能被同一个包中的类访问17.下列关于for循环和while循环的说法中哪个是正确的?()A.while循环能实现的操作,for循环也都能实现B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果C.两种循环任何时候都可替换D.两种循环结构中都必须有循环体,循环体不能为空18.阅读以下代码:importjava.io.*;importjava.util.*;publicclassfoo{publicstaticvoidmain(String[]args){Strings;System.out.println(s=+s);}}输出结果应该是:()A.代码得到编译,并输出“s=”B.代码得到编译,并输出“s=null”C.由于Strings没有初始化,代码不能编译通过D.代码得到编译,但捕获到NullPointException异常19.编译运行以下程序后,关于输出结果的说明正确的是()publicclassConditional{publicstaticvoidmain(Stringargs[]){intx=4;System.out.println(“valueis“+((x4)?99.9:9));}}A.输出结果为:valueis99.9B.输出结果为:valueis9C.输出结果为:valueis9.0D.编译错误20.下面哪一个循环会导致死循环?()A、for(intk=0;k0;k++)B、for(intk=10;k0;k--)C、for(intk=0;k10;k--)D、for(intk=0;k0;k++)21.有如下程序段:inta=b=5;Strings1=祝你今天考出好成绩!;Strings2=s1;则表达式a==b与s2==s1的结果分别是:()。A、true与trueB、false与trueC、true与falseD、false与false22.System.out.println(5+2);的输出结果应该是()。A、52B、7C、2D、523.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。A.staticvoidmethod()B.publicvoidmethod()C.finalvoidmethod()D.abstractvoidmethod()24.设x为float型变量,y为double型变量,a为int型变量,b为long型变量,c为char型变量,则表达式x+y*a/x+b/y+c的值为()类型。AintBlongCdoubleDchar25.list是一个ArrayList的对象,哪个选项的代码填写到//tododelete处,可以在Iterator遍历的过程中正确并安全的删除一个list中保存的对象?()Iteratorit=list.iterator();intindex=0;while(it.hasNext()){Objectobj=it.next();if(needDelete(obj)){//needDelete返回boolean,决定是否要删除//tododelete}index++;}A)list.remove(obj);B)list.remove(index);C)list.remove(it.next());D)it.remove();二、程序分析题(每题2分,共8分)1.写出下面程序的输出结果classC0{publicC0(intx){System.out.println(C0+x);}C0(){System.out.println(C0);}}classC1extendsC0{publicC1(intx){System.out.println(C1+x);}publicstaticvoidmain(Stringargs[]){newC1(1);}}C0C112.试写出下面这个程序的执行结果.classExceptionTest{staticStringa[]={123,abc,null};publicstaticvoidmain(Stringargs[]){for(inti=0;i3;i++){try{intx=Integer.parseInt(a[i]);System.out.println(Result:+x);}catch(NullPointerExceptione){System.out.println(errornull:);}catch(NumberFormatExceptione){System.out.println(error:abc);}finally{System.out.println(In+i+th);}}//endfor}}Result:123In0therror:abcIn1therror:abcIn2th3.查看下面程序,指出它的语法错误:importjava.io.*;packagemyPackage;publicclassOne{publicvoiddisplay(){System.out.println(“aa”);}}publicclassTwo{Publicvoiddisplay(){System.out.println(“bbb”);}}4.Math.round(11.5)等於多少?Mat