Java期中测试试题卷及答案Word下载.docx
- 文档编号:17479020
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:16
- 大小:24.16KB
Java期中测试试题卷及答案Word下载.docx
《Java期中测试试题卷及答案Word下载.docx》由会员分享,可在线阅读,更多相关《Java期中测试试题卷及答案Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
4.}
将以下方法插入行3不合法的是()
A.publicfloataMethod(floata,floatb,floatc){}
B.publicfloataMethod(floatc,floatd){}
C.publicintaMethod(inta,intb){}
D.privatefloataMethod(inta,intb,intc){}
4.构造函数被调用于()
A.创建对象时B.类定义时
C.使用对象的方法时D.使用对象的属性时
5.下面说法正确是()
A.每个Java类都至少有一个构造方法,如果没有则机器自动生成一个默认的构造方法。
B.如果类里定义了一个或多个构造方法,Java也提供默认的构造方法。
C.每个Java类中用户必须定义至少一个构造方法
D.以上都不对
6.关于继承的说法正确是的()
A.子类将继承父类所有的属性和方法
B.子类继承父类的非私有属性和方法
C.子类只能继承父类public方法和属性
D.子类只能继承父类的方法,而不能继承属性
7.下列说法正确的是()
A.子类只能覆盖父类的方法,而不能重载
B.子类只能重载父类的方法,而不能覆盖
C.子类不能定义和父类同名同形参的方法,否则系统将不知道使用哪个方法
D.重载就是一个类中有多个同名但有不同形参或方法体的方法
8.this和super()
A.都可以用在main()方法中B.指向一个内存地址
C.不能用在main()方法中D.意义相同
9.下列关于修饰符混用说法中,错误的是()。
A.abstract不能与final并列修饰同一个类
B.abstract类中不可以有private的成员
C.abstract方法必须在abstract类和接口中
D.static方法中能处理非static的属性
10.所谓方法重载,就是在类中创建了多个方法,它们具有相同的名称()。
A.有不同的参数个数或不同的参数数据类型
B.有不同返回类型
C.有不同的参数名称
D.有不同的方法体
11.以下程序段的哪行有错误()。
1importjava.Applet.*;
2importjava.awt.*;
3classChengji{
4protectedfloatf(floatx,floaty){
5returnx*y;
6}
7}
8classXiangjiaextendsChengji{
9privatefloatf(floatx,floaty){
10returnx+y;
11}
12}
A.8行B.9行C.4行D.10行
12.下列说法正确的是()
A.package语句作为Java源文件的第一个语句
B.import语句作为Java源文件的第一个语句
C.package语句作为Java源文件的类中的一条语句
D.import语句作为Java源文件的类中的一条语句
13.下列说法正确的是()。
A.编译后的Java的源程序根据文件中定义的类和接口的个数产生的相应个数的.class字节码
B.Java语言的源文件中不是任何地方都可以加注释的
C.一个文件中可以有多个访问权限为public的类
D.含有main()方法的类可以定义为public类,也可以为其他类
14.下列有关抽象类的说法正确的是()。
A.抽象类中必须包含抽象方法B.抽象类不能实例化
C.抽象类不一定被继承D.用interface定义抽象类
15.下列循环的循环体是():
while(inti<
7);
{i++;
System.out.println(“iis“+i);
}
A.{i++;
}
B.i++;
C.;
D.System.out.println(“iis“+i);
二.判断题(本大题共15小题,每小题1分,共15分)(正确的打√,错误的打×
)
1.有的类定义时可以不定义构造函数,所以构造函数不是必需的。
(×
)
2.一个类可以生成多个对象,并且这些对象都具有相同的属性。
(√)
3.使用静态属性必须以类名作为前缀。
4.由继承性可知,程序中子类拥有的成员数目一定大于或等于父类拥有的成员数目。
(×
5.如果q是父类Parent的对象,而c是子类Child的对象,则语句q=c是正确的。
(√)
6.重载和覆盖是一回事。
7.子类要调用父类的方法,必须使用super关键字。
8.与未加访问控制符的缺省情况相比,public和protected修饰符扩大了类及其属性和方法的被访问范围,private修饰符则缩小了这种范围。
9.抽象方法必须在抽象类中,所有抽象类中的方法都必须是抽象方法。
10.最终类不能派生子类,最终方法不能被覆盖。
11.一个类如果实现了某个接口,那么它必须覆盖该接口中的所有方法。
12.当子类继承某个抽象类时,如果没有将全部的抽象方法重写,则它仍然是一个抽象类,声明时必须要用abstract修饰。
13.在Java程序设计语言中,“方法和函数”是与类分不开的,每一个方法必定属于某一个类。
14. Java程序中,创建新的类对象用关键字new。
15.构造函数没有返回值类型,所以是void。
三.读程序,按要求填空(本大题共5小题,每小题4+4+9+4+4分,共25分.)
1.下面这段程序的功能是:
importjava.io.*;
publicclassReverse
{
publicstaticvoidmain(Stringargs[])
{
inti,n=10;
inta[]=newint[10];
for(i=0;
i<
n;
i++)
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
a[i]=Integer.parseInt(br.readline());
//输入一个整数
}catch(IOExceptione){};
for(i=n-1;
i>
=0;
i--)
System.out.print(a[i]+”#”);
System.out.println();
2.下列程序函数调用顺序是:
(写函数名,从进入到返回到结束都要写)main、fac、sumf、jiechen、sumf、main.,程序的功能是,执行结果是
publicclassFac{
Fac(){}
publiclongsumf(intx){
longs=0;
for(intj=1;
j<
=x;
j++)
s=s+jiechen(j);
returns;
publiclongjiechen(inti){
longf=1;
=i;
j++){
f=f*j;
}
returnf;
publicstaticvoidmain(Stringargs[]){
Facf=newFac();
System.out.print("
1!
+2!
+3!
="
+f.sumf(3));
3、下面是父类Employee和子类Boss的定义,根据程序内容在下划线①到⑨上填空。
1.classEmployee{
2.①Stringname;
//限制name的使用范围限于本类。
3.protectedintid;
//限制id的使用范围限于本包和所有子类。
4.publicdoublesalary;
5.Employee(Stringaname,doubleasalary){
6.name=aname;
7.salary=asalary;
8.Employee(intaid,doubleasalary){
9.
10.this(“Employee#”+aid,asalary);
//调用第5行的构造方法语句,使name属性为“employee#”+id
11.}
12.doublegetSalary(){returnsalary;
13.②getName(){returnname;
14.intgetId(){returnid;
15.}
16.
//定义Employee的子类Boss
17.③ClassBossextendsEmployee{
18.doublebonus;
19.Boss(Stringaname,doubleasalary,doubleabonus){
④super(aname,asalary,);
20.bonus=abonus;
21.Boss(intaid,doubleasalary,doubleabonus){
22.super(aid,asalary);
23.bonus=abonus;
24.}
25.//19行、21行方法同名现象称为类多态中的⑤现象。
26.voidsetBonus(doubleb){bonus=b;
}
27.doublegetSalary(){returnsalary+bonus;
28.//27行的方法是对父类同名方法的⑥。
29.publicstaticvoidmain(Stringargs[]){
//main函数头部
30.//下面是新建一个Boss对象b,工号是3,底薪为3000,奖金为1000。
⑦Bossb=newBoss(3,3000,1000);
//在下面打印刚新建的Bossb的姓名和工号、工资。
31.System.out.println(b.getName()+b.getId()+b.getSalary());
32.}}
/*从上面的类中可以看出,构造方法的特点是:
⑧构造函数没有返回值、其主要作用是完成类对象的初始化工作、
⑨构造函数可以有1个或者多个、构造函数不能由编程人员显式直接调用、创建类的新对象的同时,系统会自动调用构造函数为新对象进行初始化。
*/
4.下面这段程序的13行和第17行是省略的默认构造函数,写出17行构造函数包括函数内省略的语句:
,程序的输出结果是:
。
1.importjava.io.*;
2.publicclassabc
3.{
4.publicstaticvoidmain(Stringargs[])
5.{
6.SubClasssb=newSubClass();
7.System.out.println(sb.max());
8.}
9.}
10.classSuperClass
11.{
12.inta=10,b=20;
13.
14.}
15.classSubClassextendsSuperClass
16.{
17.
18.intmax(){return((a>
b)?
a:
b);
19.}
5.对下列代码:
第10行语句将调用语句的行是第行。
本题中这种同名函数调用时自动定位绑定对应函数的现象称为面向对象的现象。
1classPerson{
2publicvoidprintValue(inti,intj){//……}
3publicvoidprintValue(inti){//……}
4}
5publicclasssTeacherextendsPerson{
6publicvoidprintValue(){//……}
7publicvoidprintValue(inti){//……}
8publicstaticvoidmain(Stringargs[]){
9Persont=newTeacher();
10T.printValue(10);
四.填空题(本大题共10空,每空1分,共10分.)
1.MAX_LENGTH是int型public成员变量,变量值保持为常量100,用简短语句定义这个常量。
()
2.声明公用的abstract方法add,返回值为空的正确格式是()。
3. Java中所有类都是类()的子类。
4.在Java编程语言中使用()运算符(关键字)实例化一个对象。
5.使用默认字节字符对应表,将字符串转化为字节数组的方法是()。
6.创建一个名为MyPackage的包语是()
7.设有数组定义“intMyIntArray[]={10,20,30,40,50,60,70};
”,则执行以下几个语句后的输出结果是()。
ints=0;
for(inti=0;
MyIntArray.lenghth();
if(i%2==1)s+=MyIntArray[i];
System.out.println(s);
8.根据Applet的生命周期写出打开此html后java程序中start()、paint()、init()、stop()的执行顺序为:
(Initstartpaintstop)
9、下面程序输出结果是:
(如有换行要分行写)()。
1 publicclassTestextendsTT{
2 publicvoidmain(Stringargs[]){
3 Testt=newTest("
Tom"
);
4 }
5 publicTest(Strings){
6 super(s);
7 System.out.println("
Howdoyoudo?
"
8 }
9 publicTest(){
10 this("
IamTom."
11 }
12 }
13 classTT{
14 publicTT(){
15 System.out.println("
Whatapleasure!
16 }
17 publicTT(Strings){
18 this();
29 System.out.println("
Iam"
+s);
20 }
21 }
10.Vector类的addElement方法的参数的类型是:
()
五、编程序题目(共20分)。
学校中有老师和学生两类人,而在职研究生既是老师又是学生,对学生的管理和对老师的管理在他们身上都有体现。
(1)设计两个信息管理接口StudentInterface和TeacherInteface。
其中,StudentInterface接口包括setFee方法和getFee方法,分别用于设置和获取学生的学费。
TeacherInterface接口包括setPay和getPay方法,分别用于设置和获取教师的工资。
(2)定义一个学生类Student,实现StudentInterface接口,它定义的成员变量有name(姓名),sex(性别)、age(年龄),必须包括带参数的构造函数和toString()方法,返回学生年龄等信息。
(3)定义一个研究生类Graduate继承Stdudent,实现TeacherInterface接口,它定义的成员变量fee(每学期学费)、pay(月工资),必须包括带参数的构造函数,覆盖父类的toString()方法,返回研究生年龄,学费,工资等信息。
(4)创建一个姓名为“zhangsan”的研究生,输入工资和学费,统计他的年收入和学费,如果收入减去学费不足2000元,则输出“providealoan”(需要贷款)信息。
第2学期期中测试答案
一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
1
2
3
4
5
6
7
8
9
10
答案
B
A
C
D
11
12
13
14
15
二.判断题(本大题共15小题,每小题1分,共15分)。
(正确的打√,错误的打×
×
√
1.输入十个整数,按输入的逆序输出并以”#”号分隔
(写函数名,从进入到返回到结束都要写)main、fac、sumf、jiechen、sumf、main.,
程序的功能是求1!
的和
执行结果是:
=9
3.①private②String
③ClassBossextendsEmployee
④Super(aname,asalary)
⑤重载⑥覆盖
⑦Bossb=newBoss(3,3000,1000);
⑧构造函数没有返回值
⑨构造函数可以有1个或者多个
4.下面这段程序的13行和第17行是省略的默认构造函数,写出17行构造函数包括函数内省略的句:
此处不需任何语句,
程序的输出结果是:
20。
第10行语句将调用语句的行是第7行。
本题中这种同名函数调用时自动定位绑定对应函数的现象称为面向对象的
引用的多态现象。
1.publicfinalintMAX_LENGTH=100;
2.publicabstractvoidadd();
3.Object4.new
5.Applet6.PackageMyPackage
7.1208.Initstartpaintstop
9.Whatapleasure!
IamTom
Howdoyoudo?
10.Object
publicinterfaceStudentInterface{
voidsetFee();
doublegetFee();
publicinterfaceTeacherInterface{
voidsetPay();
doublegetPay();
publicclassGraduateextendsStudentimplementsTeacherInterface{
doublefee;
doublepay;
Graduate(Stringname,booleansex,intage){
super(name,sex,age);
//TODOAuto-generatedconstructorstub
Graduate(Stringname,booleansex,intage,doublepay,doublefee){
this.pay=pay;
this.fee=fee;
@Override
publicdoublegetPay(){
//TODOAuto-generatedmethodstub
return0;
publicvoidsetPay(){
publicStringtoString(){
return"
+age+fee+pay;
publicclassStudentimplementsStudentInte
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 期中 测试 试题 答案