Java2实用教程(第4版)课后选择题整理(以下内容可能会出现少量错别字,望见谅)——by[小坏蛋~]第一章选择题(1)下列哪个是JDK提供的编译器?A.java.exeB.javac.exeC.javap.exeD.javaw.exe(2)下列哪个是Java应用程序主类中正确的main方法?A.publicvoidmain(Stringargs[])B.staticvoidmain(Stringargs[])C.publicstaticvoidMain(Stringargs[])D.publicstaticvoidmain(Stringargs[])第二章.选择题(1)下列哪项字符序列可以作为标识符?A.trueB.defaultC._intD.good-class(2)下列哪三项是正确的float变量的声明?A.floatfoo=-1;B.floatfoo=1.0;C.floatfoo=42e1;D.floatfoo=2.02f;E.floatfoo==3.03d;F.floatfoo==0x0123;(3)下列哪一项叙述是正确的?A.char型字符在Unicode表中的位置范围是0至32767B.char型字符在Unicode表中的位置范围是0至65535C.char型字符在Unicode表中的位置范围是0至65536D.char型字符在Unicode表中的位置范围是-32768至32767(4)以下哪两项是正确的char型变量的声明?A.charch=R;B.charch='\\'C.charch='ABCD';D.charch=ABCD;E.charch='\ucafc';F.charch='\u10100'(5)下列程序中哪些[代码]是错误的?publicclassE{publicstaticvoidmain(Stringargs[]){intx=8;byteb=127;//【代码1】b=x;/【代码2】x=12L;//【代码3】longy=8.0;//【代码4】floatz=6.89;//【代码5】}}(6)对于inta[]=newint[3];下列哪个叙述是错误的?A.a.length的值是3。B.a[1]的值是1。C.a[0]的值是0。D.a[a.length-1]的值等于a[2]的值。第三章.选择题(1)下列哪个叙述是正确的?A.5.0/2+10的结果是double型数据。B.(int)5.8+1.0的结果是int型数据。C.’苹’+’果’的结果是char型数据。D.(short)10+'a’的结果是short型数据。(2)用下列哪个代码替换程序标注的[代码]会导致编译错误?A.m--0B.m++0C.m=0D.m100&&truepublicclassE{publicstaticvoidmain(Stringargs[]){intm=10,n=0;while([代码]){n++;}}}(3)假设有intx=1;以下哪个代码导致“可能损失精度,找到int需要char”这样的编译错误?A.shortt=12+'a';B.charc='a'+1;B.C.charm='a'+x;D.byten='a'+1;第四章选择题(1)下列哪个叙述是正确的?A.Java应用程序由若干个类所构成,这些类必须在一个源文件中。B.Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中,其中必须有一个源文件含有主类。C.Java源文件必须含有主类。D.Java源文件如果含有主类,主类必须是public类。(2)下列哪个叙述是正确的?A.成员变量的名字不可以和局部变量的名字相同。B.方法的参数的名字可以和方法中声明的局部变量的名字相同。C.成员变量没有默认值。D.局部变量没有默认值.(3)对于下列Hello类,哪个叙述是正确的?A.Hello类有2个构造方法。B.Helol类的intHello()方法是错误的方法。C.Hello类没有构造方法。D.Hello无法通过编译,因为其中的hello方法的方法头是错误的(没有类型)。classHello{Hello(intm){}intHello(){return20;}hello(){}}(4)对于下列Dog类,哪个叙述是错误的?A.Dog(intm)与Dog(doublem)是互为重载的构造方法。B.intDog(intm)与voidDog(doublem)是互为重载的非构造方法。C.Dog类只有两个构造方法,而且没有无参数的构造方法。D.Dog类有3个构造方法。classDog{Dog(intm){}Dog(doublem){}intDog(intm){return23;}voidDog(doublem){}}(5)下列哪些类声明是错误的?A.classAB.publicclassAC.protectedclassAD.privateclassA(6)下列A类中【代码1】~【代码5】哪些是错误的?classTom{privateintx=120;protectedinty=20;intz=11;privatevoidf(){x=200;System.out.println(x);}voidg(){x==200;System.out.println(x);}}publicclassA{publicstaticvoidmain(Stringargs[]){Tomtom=newTom();tom.x=22;//【代码1】tom.y=33;//【代码2】tom.z=55;//【代码3】tom.f();//【代码4】tom.g();/【代码5】}}(7)下列E类的类体中哪些【代码】是错误的。classE{intx;//【代码1】longy=x;//【代码2】publicvoidf(intn){intm;//【代码3】intt=n+m;//【代码4】}}第五章.选择题(1)下列哪个叙述是正确的?A.子类继承父类的构造方法B.abstract类的子类必须是非abstract类C.子类继承的方法只能操作子类继承和隐藏的成员变量D.子类重写或新增的方法也能直接操作被子类隐藏的成员变量.(2)下列哪个叙述是正确的?A.final类可以有子类B.abstract类中只可以有abstract方法C.abstract类中可以有非abstract方法,但该方法不可以用final修饰D.不可以同时用final和abstract修饰同一个方法E.允许使用static修饰abstract方法(3)下列程序中注释的哪两个代码(A,B,C,D)是错误的(无法通过编译)?classFather{privateintmoney=12;floatheight;intseeMoney(){returnmoney;//A}}classSonextendsFather{intheight;intlookMoney(){intm=seeMoney();//Breturnm;}}classE{publicstaticvoidmain(Stringargs[]){Sonerzi=newSon();erzi.money=300;//Cerzi.height=1.78F;//D}}(4)假设C是B的子类,B是A的子类,cat是C类的一个对象,bird是B类的一个对象,下列哪个叙述是错误的?A.catinstanceofB的值是trueB.B.birdinstanceofA的值是trueC.catinstanceofA的值是trueD.birdinstanceofC的值是true(5)下列程序中注释的哪个代码(A,B,C,D)是错误的(无法通过编译)?classA{staticintm;staticvoidf(){m=20;//A}}classBextendsA{voidf()//B{m=222;//C}}classE{publicstaticvoidmain(Stringargs[]){A.f();//D}}(6)下列代码中标注的(A,B,C,D)中,哪一个是错误的?abstractclassTakecare{protectedvoidspeakHello(){}//Apublicabstractstaticvoidcry();//Bstatisintf(){return0;}//Cabstrac七floatg();//D}(7)下列程序中注释的哪个代码(A,B,C,D)是错误的(无法通过编译)?abstractclassA{abstractfloatgetFloat();//Avoidf(){}//B}publicclassBextendsA{privatefloatm=1.Of;//CprivatefloatgetFloat()//D{returnm;}}(8)将下列哪个代码(A,B,C,D)放入程序中标注的【代码】处将导致编译错误?A.publicfloatgetNum(){return4.0f;}B.publicvoidgetNum(){}C.publicvoidgetNum(doubled){}D.publicdoublegetNum(floatd){return4.0d;}classA{publicfloatgetNum(){return3.0f;}}publicclassBextendsA{【代码】}(9)对于下列代码,下列哪个叙述是正确的?A.程序提示编译错误(原因是A类没有不带参数的构造方法)。B.编译无错误,[代码]输出结果是0。C.编译无错误,[代码]输出结果是1。D.编译无错误,[代码]输出结果是2。classA{publicinti=0;A(intm){i=1;}}publicclassBextendsA{B(intm){i=2;}publicstaticvoidmain(Stringargs[]){Bb=newB(100);System.out.println(b.i);//【代码】.}}第六章选择题(1)下列哪个叙述是正确的?A.一个类最多可以实现两个接口。B.如果一个抽象类实现某个接口,那么它必须要重写接口中的全部方法。C.如果一个非抽象类实现某个接口,那么它可以只重写接口中的部分方法。D.允许接口中只有一个抽象方法。(2)下列接口中标注的(A,B,C,D)中,哪两个是错误的?interfaceTakecare{protectedvoidspeakHello();//Apublicabstractstaticvoidcry();//Bintf();//Cabstractfloatg();//D}(3)将下列(A,B,C,D)哪个代码替换下列程序中的【代码】不会导致编译错误。A.publicintf(){return100+M;}B.intf(){return100;}C.publicdoublef(){return2.6;}。D.publicabstractintf();interfaceCom{intM=200;intf();}classImpComimplementsCom{【代码】}第七章选择题(1)下列代码标注(A,B,C,D)中哪一个是错误的?classOutClass{intm=1;Statisfloatx;//AclassInnerClass{intm=12;//Bstaticfloatn=20.89f;//CInnerClass(){}voidf(){m=100;}}voidcry(){InnerClasstom=newInnerClass();//D}}(2)下列哪一个叙述是正确的?A.和接口有关的匿名类可以是抽象类。B.和类有关的匿名类还可以额外地实现某个指定的接口。C.和类有关的匿名类一定是该类的一个非抽象子类。D.和接口有关的匿名类的类体中可以有static成员变量。第八章选择题(1)下列哪个叙述是正确的?A.String类是final类,不可以有子类B.String类在java.util包中C.abc==abc的值是falseD.ab