Java复习题答案.docx
- 文档编号:11042059
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:25
- 大小:25.38KB
Java复习题答案.docx
《Java复习题答案.docx》由会员分享,可在线阅读,更多相关《Java复习题答案.docx(25页珍藏版)》请在冰豆网上搜索。
Java复习题答案
Java期末考试复习题
一、选择题
1、下列属于合法的Java标识符的是(D)
A、“ABC”B、&5678C、++rriwoD、saler
2、下列叙述中,正确的是(A)
A、声明变量时必须指定一个类型
B、Java认为number与Number相同
C、Java中唯一的注释方式是“//”
D、源文件中public类可以有0个或多个(有只能有一个)
3、下列关于类型转换的说法中,正确的是(B)
A、将较长的数据类型转换为较短的数据类型可以用自动类型转换
B、将较长的数据类型转换为较短的数据类型只能用强制类型转换
C、强制类型转换可以保证数据完整性
D、boolean类型只能和int类型进行强制类型转换(错错错!
!
!
)
4、按运算符操作数的数目划分,运算符?
:
的类型是(A)
A、三目B、二目C、一目D、四目
5、下列代码中要求打印字符串为”second”时,x的取值范围是(B)
if(x>0){System.out.println(“first”);}
elseif(x>-3){System.out.println(“second”);}
else{System.out.println(“third”);}
A、x>0B、x<=0并且x>-3C、x>-3D、x<=-3
6、属于main()方法的返回类型是(C)
A、publicB、staticC、voidD、main
7、Java语言使用的字符码集是(D)
A、ASCIIB、BCDC、DCBD、Unicode
*8、下列关于构造方法的叙述中,错误的是(C)(构造函数不可被子类继承)
A、Java语言规定构造方法名与类名必须相同
B、Java语言规定构造方法没有返回值,但不用void声明
C、Java语言规定构造方法不可以重载(可以重载但不可以被子类覆盖)
D、Java语言规定构造方法只能通过new自动调用
9、每个Java小程序必须定义为(A)
A、Applet类的子类B、Jframe类的子类
C、Frame类的子类D、Window类的子类
10、用来导入已定义好的类或包的语句是(B)
A、mainB、import
C、publicclassD、class
11、已知:
int[]a=newint[100];在下列给出的数组元素中,不正确的是(D)
A、a[0]B、a[1]C、a[99]D、a[100]
12、下列语句中,属于多分支语句的是(B)
A、if语句B、switch语句
C、dowhile语句D、for语句
*13、下面关于子类和父类构造函数的描述中正确的是(A)
A、子类必须通过super关键字调用父类有参数的构造函数
B、子类必须通过this关键字调用父类有参数的构造函数
C、子类无条件地继承父类不含参数的构造函数
D、如果子类定义了自己的含参数的构造函数,就不能再调用父类的构造函数
14、下列哪个选项是合法的标识符?
(B)
A、123 B、_nameC、classD、1first
15、若有以下类声明:
publicclassAextendsBimplementsC,D{}下面的说法错误的是(A)
A、这个类声明是错误的
B、类A继承自父类B
C、C和D是接口,类头的定义表明类A实现接口C和D
D、关键字extends指明继承关系
16、下列的哪个赋值语句是不正确的?
(C)
A、floatd=3.14f;B、doubled=5.3E12;
C、floatf=11.1;D、doublef=11.1E10f;
17、下列关于Java语言特点的叙述中,错误的是(A)
A、Java是面向过程的编程语言
B、Java支持分布式计算
C、Java是跨平台的编程语言
D、Java支持多线程
18、下列关于继承的哪项叙述是正确的?
(D)
A、在java中允许多重继承
B、在java中一个类只能实现一个接口
C、在java中一个类不能同时继承一个类和实现一个接口
D、java的单一继承使代码更可靠
19、已知有下列类的说明,则下列哪个语句是正确的?
(A)
publicclassTest
{privatefloatf=1.0f;intm=12;staticintn=1;
publicstaticvoidmain(Stringargs[])
{Testt=newTest();}
}
A、t.f;B、this.n(只能调用非静态);C、Test.m(类调用静态);D、Test.f;
20、在Java中,负责对字节代码解释执行的是(B)
A、垃圾回收器B、虚拟机C、编译器D、多线程机制
*21、下列叙述中,正确的是(A)
A、Java语言的标识符是区分大小写的
B、源文件名与public类名可以不相同(必须相同)
C、源文件名其扩展名为.jar(.class)
D、源文件中public类的数目不限(只能有一个)
*22、在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是(D)
A、java.appletB、java.awtC、java.utilD、java.lang
23、int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是(C)
A、publicintMAX_LENGTH=100
B、finalintMAX_LENGTH=100
C、publicfinalintMAX_LENGTH=100
D、publicconstintMAX_LENGTH=100
*24、下列哪个类声明是正确的?
(D)
A、abstractfinalclassHI{···}(不能同时)
B、abstractprivatemove(){···}
C、protectedprivatenumber;
D、publicabstractclassCar{···}
25、为了区分重载的方法,要求(A)
A、采用不同的形式参数列表
B、返回值类型不同
C、参数名不同
D、选项A、B、C都对
26、下列命题中,错误的是(A)
A、Java编程时,要求应尽量多用公共变量
B、Java编程时,要求应尽量少用公共变量
C、Java编程时,要求应尽量不用公共变量
D、Java编程时,要求应尽量使用私有变量
27、推出Java语言的公司是(D)
A.IBMB.AppleC.MicrosoftD.Sun
*28、为类定义多个名称相同、但参数不同的方法的做法称为(A)
A.方法重载B.方法覆盖C.方法继承D.方法重用
*29、在子类中重新编写父类方法的做法称为(B)
A.方法重载B.方法覆盖C.方法继承D.方法重用
*30、如果子类没有定义构造方法,则继承父类的(D)
A.所有构造方法B.所有带参数的构造方法
C.所有方法D.无参数的构造方法
31、在类的修饰符中,规定只能被同一包类所使用的修饰符是(B)
A.publicB.默认C.finalD.abstract
32、下列关于构造方法的特点描述中,错误的是(A)
A.不可重载B.方法名同类名C.无返回类型D.系统自动调用
33、如果在子类中需要调用父类的带参数构造方法,可以通过super()调用所需的父类构造方法,且该语句必须作为子类构造方法中的(A)
A.第一条语句B.第二条语句C.第三条语句D.任意位置
34、下列关于静态方法的描述中,错误的是(D)
A.在类体内说明静态方法使用关键字static
B.静态方法只能处理静态变量或调用静态方法
C.静态方法不占用对象的内存空间,非静态方法占用对象的内存空间
D.静态方法只能用类名调用
35、下列关于抽象类的描述中,错误的是(C)
A.抽象类是用修饰符abstract说明的
B.抽象类是不可以定义对象的
C.抽象类是不可以有构造方法的
D.抽象类通常要有它的子类
36、下列关于继承性的描述中,错误的是(D)
A.继承是在已有类的基础上生成新类的一种方法
B.子类继承父类的所有非私有成员
C.Java语言要求一个子类只有一个父类
D.父类中成员的访问权限在子类中将被改变
37、下列关于类的继承的描述中,错误的是(B)
A、一个子类只允许一个父类
B、一个父类只能生成一个子类
C、继承不改变成员权限
D、私有成员和构造方法不能继承
38、下列关于接口的描述中,错误的是(B)
A.接口实际上是由常量和抽象方法构成的特殊类
B.一个类只允许继承一个接口
C.定义接口使用的关键字是interface
D.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现
39、下列关于方法的描述中,错误的是(A)
A.方法只有类的成员方法,再无其他方法
B.方法可以重载和内联
C.对象作为方法参数时,参数传递的是对象地址值
D.方法的返回值是通过return来实现的
40、用于修饰类的访问修饰符是(A)
A.publicB.privateC.protectedD.static
41、不能用new运算符创建对象的类是(B)
A.静态类B.抽象类C.最终类D.公有类
42、如果希望方法不能在子类中更改,定义方法时要使用的修饰符是(B)
A.staticB.finalC.abstractD.native
43、如果希望直接通过类名访问方法,在定义时要使用的修饰符是(A)
A.staticB.finalC.abstractD.native
44、如果类中没定义构造方法,系统会提供一个默认的构造方法。
默认构造方法的特点是(C)
A.无参数有操作B.有参数有操作
C.既无参数也无任何操作D.有参数有参数
45、一个方法在定义过程中又调用自身,这种方法称为(B)
A.构造函数B.递归函数C.成员函数D.抽象函数
46、在子类中重新编写父类方法的做法称为(B)
A.方法重载B.方法覆盖C.方法继承D.方法重用
47、下列关于静态成员的描述中,错误的是(D)
A.静态成员有成员变量和方法两种
B.静态成员的修饰符是static
C.静态成员可以使用类名访问,也可以使用对象名来访问
D.静态方法可以访问静态成员变量,也可以访问非静态成员变量
48、下列对封装性的描述中,错误的是(B)
A、封装体包含了属性和行为
B、封装体中的属性和行为的访问权限是相同的
C、被封装的某些信息在封装体外是不可见的
D、封装使得抽象的数据类型提高了可重用性
49、定义接口的关键字是(A)
A.interfaceB.implementsC.extendsD.abstract
50、在成员变量的修饰符中,规定只允许该类自身访问的修饰符是(A)
A.privateB.publicC.默认D.protected
二、填空题
1、Java编译后产生字节码文件,该文件通过虚拟机解释执行。
2、接口可以看作是仅包括抽象方法、常量,而又不能直接生成对象的特殊抽象类。
3、Java语言的循环语句包括for语句、do-while语句和while语句。
4、Java中处于类层次关系中最上层的类是Object类,它是Java中所有类的祖先类,也称为根类或基类。
5、在java中,如果小数后没有任何字母,计算机默认的数据类型是double。
6、构造函数的方法名必须与类名相同。
使用运算符new创建类的对象,给对象分配内空间。
7、如果子类中的某个方法的方法头与它的父类的某个方法的方法头完全一样,但方法实现的功能不同,称为子类对父类中同名方法的覆盖。
8.同一个类中多个方法具有相同的方法名,不同的参数列表称为方法的重载。
9.Java源程序的编译命令是javac。
10、在一个Java源文件中定义了2个类,每个类中都有5个方法,编译该java源文件时会产生2个字节码文件,其扩展名为class。
11、在Java语言中,逻辑常量只有true和false两个值。
12、面向对象的软件开发方法用类把数据和基于数据的操作封装在一起。
13、面向对象技术中,作为对象的基本属性之一的状态,在计算机实现中用对象的成员变量的值表示。
14、如果一个Java源程序文件只定义有一个类,该类的的类名为MyFristApplet,则存储该源程序的文件名必须是MyFristApplet.java。
15、Java源程序中只能有一个public类,其它类的个数不限。
16、接口中定义的抽象方法,其默认的访问权限为public。
17.子类通过关键字super调用父类中被覆盖的同名方法。
18、在类中可以定义多个具有相同名称、但参数不同的方法,这种做法称为方法重载。
19、Object是Java类库中所有类的父类。
20、如果子类定义的成员变量与父类的成员变量同名,要表明使用的是父类的成员变量,可以在成员变量前加上关键字super。
21、new运算符的作用是根据对象的类型分配内存空间。
22、定义一个Java类时,通过关键字extends指明该类的父类。
24、当子类使用父类的同名成员变量,必须用关键字super说明。
25、用public修饰的类称为公共类。
26、定义子类时,如果没有指出父类,则该类的默认父类为Object类。
三、判断题
1、在Java源程序文件中可以有多个类,其文件名必须和第一个类名相一致。
(F)
?
2、在Java源程序文件中必须要有main()方法,它是程序执行的入口。
(F)
3、java的单一继承使代码更可靠。
(T)
4、Java程序的源文件名与public类的名称相同,后缀可以是java或txt等。
(F)
5、在java中允许多重继承。
(F)
6、Java语言的标识符是区分大小写的。
(T)
7、在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是java.apple(java.lang)。
(F)
8、方法体中的局部变量必须先赋值后才能使用。
(T)
9、接口中的方法都是抽象方法。
(T)
10、抽象类也可以实例化。
(F)
11、在Java中,表示换行符的转义字符是“\n”。
(T)
12、在Java中,能实现多重继承效果的方式是接口。
(T)
?
13、java的应用程序和小程序都必须使用java命令运行。
(F)
14、在Java程序中import语句必须有一个。
(F)
15、Java为移动设备提供的平台是J2SE。
(F)
16、如果一个方法是抽象的,那么它所在的类必定是抽象类,反之如果一个类是抽象的,它其中的方法必定是抽象方法。
(F)
17、同一个类的对象之间可以赋值,且它们分别代表不同的对象。
(F)
18、子类无条件地继承父类不含参数的构造函数。
(F)
19、方法的覆盖与方法的重载是两个相同的概念。
(F)
20、重载的构造函数之间可以通过关键字this在构造函数的任意位置相互调用。
(F)
21、Java提供了许多系统定义类,用户可以直接使用。
(F)
22、final类可以有子类。
(F)
23、没有分配内存空间的对象不能使用。
(T)
24、抽象类中的抽象方法需要在其子类中编写方法内容。
(T)
25、不可以为类定义多个构造函数。
(F)
26、class不是定义类的唯一关键字。
(F)
27、Java语言只支持单重继承,不支持多重继承。
(T)
28、Java语言中,对象成员的表示只使用运算符“.”。
(T)
29、抽象方法一定出现在抽象类中。
(F)
30、对象可以作方法参数,对象数组不能作方法参数。
(F)
31、Java语言中,所创建的子类都应有一个父类。
(T)
32、Java语言中,类的继承是可以传递的。
(T)
33、Object类是所有类的父类。
(T)
34非静态方法中不能引用静态变量。
(F)
35、抽象方法仅有方法头,而无方法体。
(T)
36、使用运算符new创建对象时,赋給对象的值实际上是一个地址值。
(T)
37、调用this或super的构造方法的语句必须放在第一条语句。
(T)
38、一个子类不能既是子类又是父类。
(F)
39、子类可以继承父类的所有成员。
(F)
40、子类只能继承父类成员,不能修改父类成员。
(F)
四、把下列程序补充完整。
1.publicclassA
(1)extendsB
{
publicstaticvoidmain(Stringargs[])
{
Aa=newA();
a.myfunc2();
}
publicvoidmyfunc1()
{System.out.println("myfunc1");}
publicvoidmyfunc2()
{
(2)this.myfunc1();
(3)super.myfunc2();
}
}
(4)abstractclassB
{
abstractpublicvoidmyfunc1();
public(5)voidmyfunc2()
{System.out.println("myfunc2");}
}
3.下面程序定义了一个数组,并将它的每个元素赋值为元素所对应的下标,然后求数组所有元素的和,请将程序补充完整。
publicclassA
{
publicstaticvoidmain(Stringargs[])
{
(1)int[]a;
a=newint[6];
inttotal=0;
for(intj=0;
(2)j a[j]=(3)j; for(inti=0;i total+=(5)a[i]; System.out.println(total); } } 4. interfaceB { doublearea(); } publicclassA (1)implementsB { doubler; A(doubler) { (2)this.r=r;} publicdoublearea() {(3)returnMath.PI*r*r;} } classC { publicstaticvoidmain(Stringargs[]) {Aa=new(4)A(10); System.out.println(a.area()); } } 5.publicclassFirstApp { finalintx=5;//定义一个常量 publicstaticvoidmain(String[]args)//主方法 { System.out.println("你好java! ");//打印语句 } } 6.interfaceB { intk=5; voidmyMethod(); } publicclassAimplementsB//实现接口 { publicvoidmyMethod()//实现抽象方法 { System.out.println("你好java! "); } 7.classMyclass { privateinty=5;//定义y为私有变量 publicstaticintx=4;//定义静态变量 publicvoidshow()//定义show()为公有方法 { y++; System.out.println("y="+y); } } 5.定义类A和类B如下: publicclassA { publicstaticvoidmain(Stringargs[]) {Aa=newA();} A() {System.out.print("A");} A(inti) {this();System.out.print("AA");} } classBextendsA {B(){super();System.out.print("B");} B(inti){super(i);System.out.print("BB");} } (1)程序的输出结果是什么? A (2)若将main()方法中语句改为: Bb=newB(),程序的输出结果是什么? AB (3)若将main()方法中语句改为: Bb=newB (1),程序的输出结果是什么? AAABB 六、程序设计题 1.编写一个重载的方法area,用来求圆的面积,矩形的面积,正方形的面积,返回值类型与参数类型一致,在应用程序中使用这三个方法,并输出结果。 参考代码 publicclassA { doublearea(doubler) {return3.14*r*r;} intarea(intx,inty) {returnx*y;} intarea(intr) {returnr*r;} } classB { publicstaticvoidmain(String[]args) { Aa=newA(); System.out.println("圆的面积是: "+a.area (1)); System.out.println("矩形的面积是: "+a.area(1,2));
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 复习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)