Java面向对象测试汇编.docx
- 文档编号:28659263
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:16
- 大小:20.42KB
Java面向对象测试汇编.docx
《Java面向对象测试汇编.docx》由会员分享,可在线阅读,更多相关《Java面向对象测试汇编.docx(16页珍藏版)》请在冰豆网上搜索。
Java面向对象测试汇编
Java基础知识单元测试
一、选择题(30分)
1.下列程序段执行后的输出结果为( )
intx=3;inty=10;
System.out.println(y%x);
A.0
B.1
C.2
D.3
2.下列程序的输出结果是 ( )
publicclassTest
{
voidprintValue(intm)
{
do{
System.out.println("Thevalueis"+m);
}while(--m>10);
}
publicstaticvoidmain(Stringarg[])
{
inti=10;
Testt=newTest();
t.printValue(i);
}
}
A.8
B.9
C.10
D.113
3.执行完语句int[]x=newint[25];后,则下列哪项说法是正确的( )
A.x[24]值为0
B.x[24]值未定义
C.x[25]值为0
D.x[0]值为空
4.下列哪个选项是合法的标识符 ( )
A)123
B)_name
C)class
D)1first
5.下列的哪个赋值语句是不正确的 ( )
A)floatf=11.1;
B)doubled=5.312;
C)floatd=3.14f;
D)doublef=11.110f;
6.下列关于继承的哪项叙述是正确的?
( )
A)在java中允许多重继承
B)在java中一个类只能实现一个接口
C)在java中一个类不能同时继承一个类和实现一个接口
D)java的单一继承使代码更可靠
7.有一个类A,对于其构造函数的声明正确的是()。
A)voidA(intx){...}B)A(intx){...}
C)AA(intx){...}D)intA(intx){...}
8.一个可以独立运行的Java应用程序( )
A、可以有一个或多个main方法
B、最多只能有两个main方法
C、可以有一个或零个main方法
D、只能有一个main方法
9.以下对Java中对数组的声明正确的是()
Aint[]sample;
Bintsample[];
Cint()sample;
Dintsample();
10.设intx=3,y=2,z=5;
则表达式y+=z--/++x的值是()。
A.3
B.4.5
C.3.5
D.4
11.类Test1定义如下:
(1)publicclassTest1{
(2)publicvoidaMethod(floata,floatb){};
(3)
(4)}
将以下哪种方法插入第3行是不合理的?
( )
A.publicvoidaMethod(inta,intb){};
B.publicvoidaMethod(floata,floatb,floatc){};
C.publicvoidaMethod(floatc,floatd){};
D.privatevoidaMethod(inta,intb,intc){};
12.JDK中运行Java小程序的命令是()。
A.javadocB.appletviewer
C.javacD.Java
13.下列叙述中,正确的是:
()
A声明变量时必须指定一个类型B、Java认为变量number和Number相同
C、Java中唯一的注释方式是“//”D、源文件中public类可以有0或多个
14.在switch(expression)语句中,expression的数据类型不能是:
A、doubleB、charC、byteD、short
15.已知int[]a=newint[100];,在下列给出的数组元素中,非法的是:
A、a[0]B、a[1]C、a[99]D、a[100]
16.设x,y均为已定义的类名,下列声明对象x1的语句中正确的是()。
A、publicxx1=newy();B、xx1=x();
C、xx1=newx();D、intxx1;
17.Java语言的类间的继承关系是()。
A、多重的B、单继承C、线程的D、不能继承
18.下面关于java中类的说法哪个是不正确的()
A、类体中只能有变量定义和成员方法的定义,不能有其他语句。
B、构造函数是类中的特殊方法。
C、类一定要声明为public的,才可以执行。
D、一个java文件中可以有多个class定义(但只能有一个Public修饰的类)。
19.给出一段程序,选择运行结果()
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]=3D、运行出现异常
20.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:
8
float:
1.2
C、程序可以编译运行,输出结果为:
float:
1.2
long:
8
D、程序中定义的两个参数不同的method方法称为方法重载。
21.编译并运行下面的程序,运行结果为().
publicclassA{
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、代码可以编译运行,并输出结果:
AB
C、代码可以编译运行,并输出结果:
A。
D、子类B定义了与父类A中同名的方法test,java中称为方法的重载
22.面向对象的特征有哪些()
A、封装。
B、抽象。
C、继承。
D、多态
E、跨平台
23.类的设计要求它的某个成员变量不能被外部类直接访问。
应该使用下面的哪些修饰符获得需要的访问控制?
A、public
B、nomodifier
C、protected(权限仅次于public)
D、private
24.类Teacher和Student都是类Person的子类
Personp;
Teachert;
Students;
p,tandsareallnon-null.
if(tinstanceofPerson){s=(Student)t;}
这个语句导致的结果是什么?
A、将构造一个Student对象。
B、表达式合法。
C、编译时非法。
D、编译时合法而在运行时可能非法。
25.给出下面的代码:
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().
26.以下是接口的定义的是:
A,接口中定义的变量都是公共的静态变量
B,没有构造函数,而且定义的方法都是公共的抽象方法
C,接口间采用单继承机制
D,接口可以实例变量和常量,实例常量语法是;publicstatic标示符名称
27.包含抽象方法的类:
A,一定是抽象类
B,可以是抽象类也可以不是抽象类
C,肯定不是抽象类
28.那些父类成员不能被继承:
A,private成员
B,构造方法
C,public成员
D,getter和setter成员
29.方法重写规则:
A,在继承关系的子类中
B,重写的方法名,返回值类型,参数与父类不相同
C,私有属性,成员可以被重写
30.关于构造方法,下列说法错误的是()
A,构造方法可以进行方法重写
B,构造方法用来初始化该类的一个新对象
C,构造方法具有和类名相同的名称
D,构造方法不返回任何数据类型
2、程序分析题(16分)
1.设有数组定义:
inta[]={11,22,33,44,55,66,77,88,99};
则执行下列几个语句后的输出结果是
for(inti=0;i if(a[i]%3==0) System.out.println(a[i]+""); 2.执行下列几个语句后的输出结果是 class FatherClass{ publicFatherClass(){ System.out.println("FatherClassCreate"); } } publicclass ChildClassextendsFatherClass{ publicChildClass() { System.out.println("ChildClassCreate"); } publicstaticvoidmain(String[]args) { FatherClassfc=newFatherClass(); ChildClasscc=newChildClass(); } } 3.应用程序由以下语句组成,写出执行该程序后输出的结果 publicclassx{ publicstaticvoidmain(Stringargs[]){ inti,sum=0; inta[]={1,2,3,4,5,6}; for(i=0;i if(a[i]%2==0) sum+=a[i]; System.out.println("sum="+sum); } } 4.应用程序由以下语句组成,写出执行该程序后输出的结果 import java.io.*; public class A { public static void main(String args[]) {inti; inta[]={10,20,30,40,50,60,70,80,90}; for(i=0;i<=a.length/2;i++) System.out.print(a[i]+a[a.length-i-1]+" "); } } 5.应用程序由以下语句组成,写出执行该程序后输出的结果 publicclassx { publicstaticvoidmain(Stringargs[]) { intnum=0; for(inti=10;i<=50;i++) if(i%10==5&&i%3==0) num++; System.out.println("共有"+num+"个"); } } 6.应用程序由以下语句组成,写出执行该程序后输出的结果 publicclassJtest { intm=1; inti=3; voidJtest() { m=2; i=4; } publicstaticvoidmain(String[]args) { Jtestapp=newJtest(); System.out.println(app.m+","+app.i); } } 7.应用程序由以下语句组成,写出执行该程序后输出的结果 publicclassJtest { intm=1; inti=3; Jtest() { m=2; i=4; } publicstaticvoidmain(String[]args) { Jtestapp=newJtest(); System.out.println(app.m+","+app.i); } } 8.请写出程序的运行结果 classTester{ intvar; Tester(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); } } 3、填空题(4分) 1.在Java程序中,通过类的定义只能实现单继承,但通过 的定义可以实现多继承关系。 2.数组x定义如下intx[][]=newint[3][2] 则x.length的值为____________,x[0].length的值为____________。 4、改错题(8分) 1.abstract class Name { private String name; public abstract boolean isStupidName(String name) {} } 2.public class Something { void do () { private String s = ""; int i= s.length(); } } 3.public class x{ public int add(final int i) { return ++i; } } 4.此处,Something类的文件名叫Other.java publicclass Something { private static void main(String[] something_to_do) { System.out.println("Do something ..."); } } 5、简答题(12分) 1.简答方法的OverLoad和Override区别。 2.简答Java实现多态的手段。 3.简答this和super的用法。 4.简答类成员和实例成员的区别 5.一个".java"源文件中是否可以包括多个类? 有什么限制? 6、局部变量和成员变量的区别 6、判断题(10分) 1.Java程序里,创建新的类对象用关键字new。 2.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。 3.有的类定义时可以不定义构造函数,所以构造函数不是必需的。 4.类及其属性、方法可以同时有一个以上的修饰符来修饰。 5.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。 6.Final类中的属性和方法都必须被final修饰符修。 7.最终类不能派生子类,最终方法不能被覆盖。 8.子类要调用父类的方法,必须使用super关键字。 9.一个Java类可以有多个父类。 10.方法覆盖必须要方法原型相同,可以不需要继承 七、编程题(4+5+6+5=20分) 1.求1! +2! +3! +…+10! 2.数组题: 键盘随机输入十个数,以降序形式排列,打印排列后的数字。 3.编写一个java程序,设计一个汽车类Vechile,包含的属性有车轮数和车重,小汽车Car是它的子类,其中的属性包含载人数,卡车Truck是Car的子类,其属性包含载重量payload。 每个类都有构造方法和输出相关信息的方法。 4.编写简易的计算器,实现加减乘除,要求声明Operation类(或接口),AddOperation加法类SubOperation减法类MulOperation乘法类DivOperation除法类,编写测试类Test实现加减乘除运算。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 面向 对象 测试 汇编