Java面向对象测试题一.docx
《Java面向对象测试题一.docx》由会员分享,可在线阅读,更多相关《Java面向对象测试题一.docx(16页珍藏版)》请在冰点文库上搜索。
Java面向对象测试题一
Java面向对象
测试题
(一)
注:
测试时间:
3小时
编程题在电脑上编写,保存在已学生名字为文件名的文件夹中
一、选择题
(共30分,每题1分<多选、少选、错选不得分>)
1、下面有关Java异常处理模型的说法错误的是()。
a)一个try块只能有一条catch语句
b)一个try块中可以不使用catch语句
c)Catch块不能单独使用,必须始终与try块在一起
d)Finally块不能单独使用,必须始终与try块在一起
2、下列选项中关于Java中super关键字的说法错误的是()。
a)super关键字是在子类对象内部指代其父类对象的引用
b)super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
c)子类可以通过super关键字调用父类的方法
d)子类可以通过super关键字调用父类的属性
3、下列选项中关于Java中this关键字的说法错误的是()。
a)this是在对象内部指代对象自身的引用
b)this关键字可以在类中的任何位置使用
c)this只和特定的对象关联,而不和类关联
d)同一个类的不同对象有不同的this
4、在Java中,Object类是所有类的父亲,用户自定义类默认扩展自Object类,下列选项中的()方法不属于Object类的方法。
a)equals(Objectobj)
b)getClass()
c)toString()
d)trim()
5、给定如下Java代码,关于super的用法,以下描述正确的是()。
classCextendsB{
publicC(){
super();
}
}
a)用来调用类B中定义的super()方法
b)用来调用类C中定义的super()方法
c)用来调用类B的无参构造方法
d)用来调用类B中第一个出现的构造方法
6、在Java中,有如下两个类Student和Person。
如果Student是Person的子类,则下列声明对象x的语句中错误的是()。
a)Personx=newStudent()
b)Personx=newPerson()
c)Studentx=newPerson()
d)Studentx=newStudent()
7、下列对Java中的继承描述错误的说法是()。
a)子类至少有一个基类
b)子类可作为另一个子类的基类
c)子类可以通过this关键字来访问父类的私有属性
d)子类继承父类的方法访问权限保持不变
8、Try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行
a)不会执行
b)会执行,在return前执行
c)会执行,在return后执行
d)会执行,可能在return前执行,也可能在return后执行
9、下列属于方法重载好处的是()。
<选择两项>
a)实现多态
b)方法名的复用
c)提高程序运行速度
d)使用方便,提高可读性
10、面向对象方法的多态性是指()。
a)一个类可以派生出多个特殊类
b)一个对象在不同的运行环境中可以有不同的变体
c)拥有相同父类或接口的不同对象可以以适合自身的方式处理同一件事
d)一个对象可以是由多个其他对象组合而成的
11、Dog是Animal的子类,下面代码错误的是()。
a)Animala=newDog();
b)Animala=(Animal)newDog();
c)Dogd=(Dog)newAnimal();
d)Objecto=newDog();
12、下面定义Java的常量,正确的是()。
<多选>
a)publicstaticfinaldoublePI=;
b)publicfinalstaticdoublePI=;
c)finalpublicstaticdoublePI=;
d)staticpublicfinaldoublePI=;
13、这段代码的输出结果是()。
try{
return;
}catch(Exceptione){
14、这个方法的返回值是()。
Publicintcount(){
try{
return5/0;
}catch(Exceptione){
return2*3;
}finally{
return3;
}
}
a)0
b)6
c)3
d)程序错误
15、下面代码的运行结果是()。
publicclassCar{
publicvoidrun(){
汽车在跑”);
}
}
publicclassBenzextendsCar{
publicvoidrun(){
奔驰在跑”);
}
}
publicstaticvoidmain(String[]args){
Carcar=(Car)(newBenz());
();
}
a)汽车在跑
b)奔驰在跑
c)无法编译
d)运行时将抛出异常
16、下面的异常处理代码的输出结果是()
publicstaticvoidmain(String[]arg){
try{
intresult=6/0;
"try,");
}catch(ArithmeticExceptione1){
"ArithmeticException异常,");
thrownewException();
}catch(Exceptione2){
"Exception异常,");
}finally{
"finally");
}
}
a)程序编译错误
b)ArithmeticException异常,finally
c)ArithmeticException异常,Exception异常,finally
d)try,ArithmeticException异常,Exception异常,finally
17、关于Java的接口,下面说法错误的是()
a)可以被继承
b)可以只定义常量,而没有任何方法
c)可以这样定义常量:
publicintEVEREST=8848;
d)方法的参数不可以是接口
18、能与publicvoidmethodA(){}方法形成重载的有()。
a)privatevoidmethodA(){}
b)privateintmethodA(){return1;}
c)publicvoidmethodA(inta){}
d)publicvoidmethodA()throwsException{}
19、子类中能与父类publicvoidmethodA(inta){}方法形成重写的有()。
a)publicintmethodA(inta){return1;}
b)publicvoidmethodA(inta)throwsException{}
c)privatevoidmethodA(inta){}
d)publicvoidmethodA(intb){}
20、关于构造方法,下面说法错误的是()<选择两项>
a)父类只有一个带参的构造方法,子类必须显示声明带参构造方法
b)子类无参构造方法中没有写super();不会调用父类无参构造方法
c)子类无参构造方法不可以用super(inta);调用父类对应的带参构造方法
d)实例化一个类的对象时,一定会先调用的构造方法
21、关于Java的异常和异常处理,下面说法错误的是()。
<多选>.
a)try/catch/finally块里都可以嵌套try/catch/finally
b)一个try可以对应多个catch
c)如果发生的异常没有被捕捉,异常将被系统忽略
d)异常处理时可以只用try块。
22、关于Java的继承,下面说法错误的是()<多选>
a)接口可以继承接口
b)子类不可以继承父类的私有属性和私有方法
c)所有类都是的子类,但是不可以这样写:
publicclassEarthextendsObject{}
d)一个类不可以继承(extends)另一个类,同时又实现(implements)一个接口
23、阅读下面的代码,正确的说法是()
ClassFoo{
intnum;
Bazcomp=newBaz();
}
classBar{
Booleanflag;
}
classBazextendsFoo{
Barthing=newBar();
doublelimit;
}
a)Bar是Baz子类
b)Foo包含Bar
c)Baz是Foo子类
d)Foo是Baz子类
e)Baz包含Bar
24、作为Java应用程序入口的main方法,其声明格式是()
A.publicstaticintmain(Stringargs[])
B.publicstaticvoidmain(Stringargs[])
C.publicvoidmain(Stringargs[])
D.publicintmain(Stringargs[])
25、下面命令正确的是()
A.javaB.javaAppFirst
C.javaD.javacAppFirst
26、下面哪个单词是Java语言的关键字()
A.FalseB.FORC.ForD.for
27、执行下面程序后,哪个结论是正确的()
inta,b,c;
a=1;b=3;c=(a+b>3++a:
b++);
A.a的值为2,b的值为3,c的值为1
B.B.a的值为2,b的值为4,c的值为2
C.a的值为2,b的值为4,c的值为1
D.a的值为2,b的值为3,c的值为2
28、设有定义语句“inta[]={66,88,99};”,则以下对此语句的叙述错误的是()
A.定义了一个名为a的一维数组B.a数组有3个元素
C.a数组的元素的下标为1~3 D.数组中的每个元素是整数
29、下列类的声明中不合法的是。
A.classPeople(){…}
B.class植物{…}
C.classA{…}
D.publicclass共有类{…}
30、在JAVA中,下列说法正确的是:
。
A.一个子类可以有多个父类,一个父类也可以有多个子类
B.一个子类可以有多个父类,但一个父类只可以有一个子类
C.一个子类只可以有一个父类,但一个父类可以有多个子类
D.上述说法都不对
2、分析下列程序
(共20分,每题2分)
1、classAclass{
Aclass(){
classBclassextendsAclass{
publicBclass(){
super();
publicstaticvoidmain(String[]args){
Aclassa=newAclass();
Aclassa1=newBclass();
}
该程序的运行结果()
2、ClassSuper{
publicinti=0;
//有参数构造方法,无参数构造方法自动消失
publicSuper(Stringtext){
i=1;
}
}
publicclassSubextendsSuper{
publicSub(Stringtext){
i=2;
}
publicstaticvoidmain(String[]args){
Subsub=newSub(“Hello”);
该程序的结果是()。
3、分析下列程序:
publicclassSuper{
publicintgetLength(){
return4;
}
}
publicclassSubextendsSuper{
publicintgetLength(){
return5;
}
publicstaticvoidmain(String[]args){
Supersooper=newSuper();
Subsub=newSub();
、分析下列程序:
classA{
publicintgetNumber(){
return1;
}
}
classBextendsA{
publicintgetNumber(){
return2;
}
publicstaticvoidmain(Stringargs[]){
Ab=newB();
该程序的结果是()。
5、publicclassExamA{
privatestaticintarr[]=newint[5];
publicstaticvoidmain(Stringargs[]){
for(inti=;i>=0;i--)
arr[i]=2*i+1;
Stringoutput="0";
intsum=0;
for(inti=0;i<;i++){
sum+=arr[i];
output+="+"+arr[i];
}
output+="="+sum;
(0);
}
}
该程序的运行结果()
6、classBase{
inti=1;
publicvoidamethod(){
amethod();
}
}
publicclassDescendextendsBase{
inti=-1;
publicstaticvoidmain(String[]args){
Baseb=newDescend();
voidamethod(){
该程序的执行结果是()。
7、publicclassTest{
publicstaticvoidaMethod()throwsException{
try{
thrownewException();
}finally{
staticvoidmain(String[]args){
try{
aMethod();
}catch(Exceptione){
该程序的执行结果是()。
8、publicclassA{
static{
"1");
}
publicA(){
"2");
}
}
publicclassBextendsA{
static{
"a");
}
PublicB(){
"b");
}
}
publicclassHello{
publicstaticvoidmain(String[]arge){
"");
Aab=newB();
"");
ab=newB();
}
}的输出结果:
9、publicclassCar{
publicvoidrun(){
汽车在跑”);
}
}
publicclassBenzextendsCar{
publicvoidrun(){
奔驰在跑”);
}
}
publicstaticvoidmain(String[]args){
Carcar=(Car)(newBenz());
();
}
该程序的运行结果:
10、publicstaticvoidmain(String[]arg){
try{
intresult=6/0;
"try,");
}catch(ArithmeticExceptione1){
"ArithmeticException异常,");
thrownewException();
}catch(Exceptione2){
"Exception异常,");
}finally{
"finally");
}
}
该程序的运行结果:
3、简答题
(共30分,每题3分)
1、java中构造方法的功能和特点,构造方法和一般方法的区别
2、java中的访问控制符包含哪些各访问控制符的作用
3、构造方法可以重载,重写吗
4、方法的重载和方法的重写的区别
5、this和super的作用以及this()和super()的区别
6、接口是否可继承接口抽象类是否可实现(implements)接口抽象类是否可继承实体类(concreteclass)
7、是否可以继承String类为什么
8、Strings=newString(“abc”);创建了几个对象
9、说出一些常用的类,包,接口,请各举5个
10、静态变量和实例变量的区别
四、编程题
(共20分,每题10分)
1、使用冒泡排序对{22,45,32,1,45,78,2,45,36,55,12,3}组数进行排序
2、编程计算下列式子的结果(使用递归算法):
1!
+2!
+3!
+4!
+…+10!