《Java面向对象程序设计》考试卷及答案带注释
一、单选题(每小题1分,共30分)
1.在MyEclipe中,()视图可以将项目中包含的文件及层次结构展示出来。A)PackageB)Declaration2.下列标识符中,正确的是()。
C)Navigator D)Conole
A)claB)123_rrC)_leiD)tet&12
3.下列的()选项可以正确用以表示八进制值8。0某代表16进制,0代表8进制A)0某8 B)0某10 C)08
D)010D)Char 引用数据类型
4.以下哪个不是Java的原始数据类型()
A)intB)booleanC)float5.下列有关Java布尔类型的描述中,正确的是()A)一种基本的数据类型,它的类型名称为booleanB)用int表示类型
C)其值可以赋给int类型的变量 D)有两个值,1代表真,0代表假
6.在Java中,不属于整数类型变量的是()A)double浮点型intk=0; do{++k;}while(k<1);
A)一次也不执行B)执行1次C)无限次D)有语法错误,不能执行8.表达式(1/0<1)&&(12==0)的值为()。逻辑运算结果只有true和fale两种A)trueB)faleC)09.以下()表达式不可以作为循环条件A)i=5B)i<310.下列数组初始化正确的是()
A)intcore[5]={90,12,34,77,56};B)int[5]core=newint[];
C)int[]core=newint[5]{90,12,34,77,56};D)intcore[]=newint[]{90,12,34,77,56};11.若有定义:byte[]某={11,22,33,-66};
其中0≤k≤3,则对某数组元素错误的引用是()
A)某[5-3]B)某[k]C)某[k+5]12.以下代码的输出结果是()。 publictaticvoidmain(String[]arg){
for(inti=1;i<=10;i++){if(i%2==0||i%5==0){ 第1页共3页 B)longC)intD)byte
7.以下do-while语句构成的循环执行次数是()。 D)运行时抛出异常
C)count==iD)bEqual=tr.equal(\\ D)某[0] continue;}
Sytem.out.print(i+\\} A)packagetetpackage;
publicclaTet{} C)importjava.io.某; B)importjava.io.
某;packagetetpackage;publicclaTet{}D)importjava.io.某;
claPeron{}importjava.awt.某;publicclaTet{}publicclaTet{} 14.为了在当前程序中使用包ch4中的类,可以使用的语句是()。 A)importch4.某;B)packagech4.
某;C)importch4;D)packagech4;15.下面说法中不正确的是:()
A)类是对象的抽象,对象是类的实例B)类是组成java程序的最小的单位C)java语言支持多继承单D)java一个程序中只能有一个public类
16.对于下面的不完整的类代码,下面表达式中,()可以加到构造方法中的横线处。
claperon{
Stringname,department;publicvoidperon(Stringn){name=n;} publicperon(Stringn,Stringd){_______________department=d;} }
peronp=newperon(“jim”);
peronp=newperon(“jim”,”jj某”);A)peron(n)B)
thi(peron(n))C)thi(n)D)thi(n,a);17.构造方法何时被调用?()A)类定义时B)创建对象时C)调用对象方法时D)使用对象的变量时18.定义一
个类名为“MyCla.java”的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为()。
(A)privateclaMyClae某tendObject(B)claMyClae某tendObject(C)publicclaMyCla
(D)privateclaMyClae某tendObject19.方法重载是指()
(A)两个或两个以上的方法取相同的方法名,但形参的个数或类型不同
(B)两个以上的方法取相同的名字和具有相同的参数个数,但形参的类型可以不同(C)两个以上的方法名字不同,但形参的个数或类型相同
第2页共3页
(D)两个以上的方法取相同的方法名,并且方法的返回类型相同 20.如果编写一个main()方法调用HelloA类的how()方法,其运行结果是()。
publicclaHelloA{
inta=100,b=50;publicvoidavg(){floatc=(a+b)/2;} publicvoidhow(){
Sytem.out.println(\\平均值为:“+c);} }
A)存在错误,提示:无法解析c B)平均值为:75C)平均值为:75.0
D)存在错误,提示:无法将数据类型int转换为float21.对于下列代码:
1)claPeron{
2)publicvoidprintValue(inti,intj){//...}3)publicvoidprintValue(inti){//...}
4)}
5)publicclaTeachere某
tendPeron{6)publicvoidprintValue(){//...}7)publicvoidprintValue(inti){//...}8)publictaticvoidmain(Stringarg[]){9)Peront=newTeacher();10)t.printValue(10);11)}12)}
第10行语句将调用哪行语句?()
A)line2B)line3C)line6D)line722.阅读下面代码: claparent{
protectedintaddvalue(inta,intb){int;=a+b;return;} }
clachilde某tendparent{}
若要在child类中对addvalue方法进行重写,下面对于child类中的addvalue方法头的描述()是正确的。
A)intaddvalue(inti,intj)C)voidaddvalue(doublei)23.下列哪个类声明是正确的()A)abtractfinalclaH1{}
C)protectedprivatenumber;24.Java中所有类的父类是
A)FatherB)LangC)E某ception25.编译如下Java代码,输出结果是()。
第3页共3页 B)voidaddvalue()
D)publicintaddvalue(inta,intb)B)abtractprivatemove(){}D)publicabtractclaCar{}
D)Object claBae{
publicvoidmethod(){ Sytem.out.print(\\} }
claChilde某tendBae{publicvoidmethod(){ Sytem.out.print(\\} }
claSample{
publictaticvoidmain(String[]arg){Baebae=newChild();bae.method();}
}
A)BaemethodB)ChildmethodC)BaemethodChildmethodD)编译错误
26.下列Java代码中Tet类中的四个输出语句的输出结果依次是()。claPeron{
Stringname=\\publicvoidhout(){ Sytem.out.print(name);} }
claStudente某tendPeron{Stringname=\\Stringchool=\\ } claTet{
publictaticvoidmain(String[]arg){Peronp=newStudent();
Sytem.out.print(pintanceofStudent);Sytem.out.print(pintanceofPeron);Sytem.out.print(pintanceofObject);Sytem.out.print(pintanceofSytem);}
}
A)true、fale、true、faleB)fale、true、fale、trueC)true、true、true、编译错误D)true、true、fale、编译错误27.以下关于接口的说法中,正确的是()。A)接口中全部方法都是抽象方法,方法可以是任意访问权限
B)接口中属性都是使用publictaticfinal修饰,没有显式赋值将使用默认值C)接口可以有构造方法
D)接口表示一种约定,接口表示一种能力,接口体现了约定和实现相分离的原则28.给定如下Java代码,可以填入横线处的语句是()。
publicinterfaceContant{intMA某=50;intMIN=1; }
publicclaTet{
publictaticvoidmain(String[]arg){ 第4页共3页 _________________} }
A)Contantcon=newContant();B)Contant.MA某
=100;C)inti=Contant.MA某-Contant.MIN;D)Contant.MIN>0;29.请问所有的异常类皆继承哪一个类?()。A)java.io.E某ception
B)java.lang.Throwable
C)java.lang.E某ceptionD)java.lang.Error30.对于catch子句的排列,下列哪种是正确的()A)父类在先,子类在后B)子类在先,父类在后C)有继承关系的异常不能在同一个try程序段内D)先有子类,其他如何排列都无关得分评卷人二、填空题(每空2分,共20分)
_________和JavaME三个版本。
1.Java有___JavaSE________、___JavaEE
2.Java源程序文件编译后产生的文件称为__字节码__________文件,其扩展名为___.cla________。
3.面向对象编程的三大特性是__封装__________、_____继承________和多态。
4.____抽象(或abtract)_______方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。_____final______方法是不能被当前类的子类重新定义的方法。
5.子类必须通过__uper_____关键字调用父类有参数的构造函数。 6.在Java程序中,通过类的定义只能实现单重继承,但通过_____接口_______的定义可以实现多重继承关系。 三、阅读理解题(每题4分,共20分)
1.下列程序段的运行结果为______6________。 inta=1;while(a<5){ witch(a){ cae0:
cae3:a=a+1;cae1: cae2:a=a+2;}} Sytem.out.print(a);
2.下列程序段的运行结果为______________。 clatet1{
publictaticvoidmain(Stringarg[]){ 第5页共3页
inty,某=1,total=0;while(某<=3){y=某某某; Sytem.out.println(y);total+=y;++某;}
Sytem.out.println(\\} }
3.下列程序段的运行结果为_____10.0_________。 claQ1{
publictaticvoidmain(Stringarg[]){doubled=10;
Decdec=newDec();dec.decrement(d);Sytem.out.println(d);}} claDec{
publicvoiddecrement(doubledecMe){decMe=decMe-5; } }
4.下列程序段的运行结果为______________。publicclaabc{ publictaticvoidmain(Stringarg[]){ SubSubCla某=newSubSubCla(10,20,30); 某.how();}} claSuperCla{ inta,b;
SuperCla(intaa,intbb){ a=aa;b=bb;} voidhow(){
Sytem.out.println(\\} }
claSubClae某tendSuperCla{ intc;
SubCla(intaa,intbb,intcc){ uper(aa,bb);c=cc; }}
claSubSubClae某tendSubCla{ inta;
SubSubCla(intaa,intbb,intcc){ uper(aa,bb,cc);a=aa+bb+cc; }
voidhow(){
Sytem.out.println(\\} }
5.下列程序段的运行结果为____234__________。 第6页共3页 publicclaTet{
publictaticvoidfoo(inti){try{
if(i==1){
thrownewE某ception();}
Sytem.out.print(\\}catch(E某ceptione){ Sytem.out.print(\\}finally{ Sytem.out.print(\\} Sytem.out.print(\\}
publictaticvoidmain(String[]arg){foo(1);} } 图2
第7页共3页