JAVA期中测试试题卷

绝世美人儿
753次浏览
2020年09月09日 05:06
最佳经验
本文由作者推荐

人事主管岗位职责-读名著读后感









































































线




















































考试类型:一纸闭卷( );完全闭卷( √ );开卷( )
浙江外国语学院
2015~2016 学年第2学期期中测试试卷
课程名称
面向对象程序设计
课程编号3040800006试卷类型 A
学 院 科学技术学院 班 级
姓 名 学 号







题号 一 二











总分
得分

得 分

评卷人 一、单项选择题
(本大题共15小题,每小题2分,
共30分)在每小题列出的四个备选项 中只有一个是符
合题目要求的,请将其代码填写在题后的括号内。错
选、多选或未选均无分。
1. 关于对象成员占用内存说法正确的是( )
A.同一个类的对象共用一段内存
B.同一个类的对象使用不同一段内存,但静态成员共享相同的内存空间
C.对象的方法不占用内存 D.以上都不对
2.关于方法的说法正确的是( )
A.方法中的形参可以和方法所属类的属性相同
B.方法必须有形参
C.同类不同的方法中不能有同名的自变量,否则会产生不可预测的结果
D.没有返回值的方法可以用void来表示,也可以不加
3. 类Test1定义如下:
1. public class Test1{
2. public float aMethod(float a, float b){ }
3.

第1页 (共10页)


4. }
将以下方法插入行3不合法的是( )
A.public float aMethod(float a,float b,float c){ }
B. public float aMethod(float c,float d){ }
C. public int aMethod(int a,int b){ }
D. private float aMethod(int a,int b,int c){ }
4.构造函数被调用于( )
A.创建对象时 B.类定义时
C.使用对象的方法时 D.使用对象的属性时
5.下面说法正确是( )
A.每个Java类都至少有一个构造方法,如果没有则机器自动生成一个默
认的构造方法。
B. 如果类里定义了一个或多个构造方法,Java也提供默认的构造方法。
C. 每个Java类中用户必须定义至少一个构造方法
D. 以上都不对
6.关于继承的说法正确是的( )
A.子类将继承父类所有的属性和方法
B.子类继承父类的非私有属性和方法
C.子类只能继承父类public方法和属性
D.子类只能继承父类的方法,而不能继承属性
7.下列说法正确的是( )
A. 子类只能覆盖父类的方法,而不能重载
B. 子类只能重载父类的方法,而不能覆盖
C. 子类不能定义和父类同名同形参的方法,否则系统将不知道使用哪个
方法
D. 重载就是一个类中有多个同名但有不同形参或方法体的方法
和super( )
A. 都可以用在main( )方法中 B.指向一个内存地址
C.不能用在main( )方法中 D.意义相同

第2页 (共10页)









































































线




















































9.下列关于修饰符混用说法中,错误的是( )。
A. abstract 不能与final并列修饰同一个类
B. abstract类中不可以有private的成员
C. abstract方法必须在abstract类和接口中
方法中能处理非static的属性
10.所谓方法重载,就是在类中创建了多个方法,它们具有相同的名称
( )。
A. 有不同的参数个数或不同的参数数据类型
B. 有不同返回类型
C. 有不同的参数名称
D. 有不同的方法体
11.以下程序段的哪行有错误( )。
1 import .*;
2 import .*;
3
4
5
6
7
8
9
10
11
12
class Chengji{
protected float f(float x,float y){
return x*y;
}
}
class Xiangjia extends Chengji{
private float f(float x,float y){
return x+y;
}
}
A. 8行 B. 9行 C. 4行 D. 10行
12.下列说法正确的是( )
A. package语句作为Java源文件的第一个语句
B.import语句作为Java源文件的第一个语句
C.package语句作为Java源文件的类中的一条语句

第3页 (共10页)


D.import语句作为Java源文件的类中的一条语句
13.下列说法正确的是( )。
A.编译后的Java的源程序根据文件中定 义的类和接口的个数产生的相应
个数的.class字节码
B.Java语言的源文件中不是任何地方都可以加注释的
C.一个文件中可以有多个访问权限为public的类
D.含有main()方法的类可以定义为public类,也可以为其他类
14.下列有关抽象类的说法正确的是( )。
A. 抽象类中必须包含抽象方法 B.抽象类不能实例化
C.抽象类不一定被继承 D.用interface定义抽象类
15.下列循环的循环体是( ):
while (int i<7)
{ i++;
n(“i is “+i);
}
A.
B.
C.
{ i++; n(“i is “+i); }
i++;

D. n(“i is “+i);
得 分

评卷人

二.判断题
(本大题共15小题,每小题1分,共15
分)( 正确的打√, 错误的打×)

1.有的类定义时可以不定义构造函数,所以构造函数不是必需的。
( × )
2.一个类可以生成多个对象,并且这些对象都具有相同的属性。
( √ )
3.使用静态属性必须以类名作为前缀。 ( × )
4.由继承性可知,程序中子类拥有的成员数目一定大于或等于父类拥有的成
员数目。( × )
5.如果q是父类Parent的对象,而c是子类Child的对象,则语句q=c是正

第4页 (共10页)









































































线




















































确的。( √ )
6.重载和覆盖是一回事。 ( × )
7.子类要调用父类的方法,必须使用super关键字。 ( √ )
8.与未加访问控制符的缺省情况相比,public和protected修饰符扩大了类及
其属性 和方法的被访问范围,private修饰符则缩小了这种范围。
( √ )
9.抽象方法必须在抽象类中,所有抽象类中的方法都必须是抽象方法。
( × )
10.最终类不能派生子类,最终方法不能被覆盖。 ( √ )
11.一个类如果实现了某个接口,那么它必须覆盖该接口中的所有方法。
( √ )
12.当子类继承某个抽象类时,如果没有将全部的抽象方法重写,则它仍然是一个抽象类,声明时必须要用abstract修饰。 ( √ )
13.在J ava程序设计语言中,“方法和函数”是与类分不开的,每一个方法
必定属于某一个类。 ( √ )
14. Java程序中,创建新的类对象用关键字new。( √ )
15. 构造函数没有返回值类型,所以是void。( × )
得 分

评卷人

三.读程序,按要求填空
(本大题共5小题,每小
题 4+4+9+4+4分,共25分
.



1.
下面这段程序的功能是:
import .*;
public class Reverse
{
public static void main(String args[])
{
int i ,n=10;
int a[ ]=new int [10];
for (i=0;itry{
BufferedReader br=new BufferedReader(new
InputStreamReader());

第5页 (共10页)


a[i]=nt(ne()); 输入一个整数
}catch (IOException e){ }
for(i=n-1;i>=0;i--)
(a[i]+”#”);
n();
}
}
2. 下列程序函数调用顺序是:(写函数名,从进入到返回到结束都要写)
main、fac、sumf、jiechen、sumf、main. , 程序的功能是 ,
执行结果是
public class Fac {
Fac(){}

public long sumf(int x){
long s=0;
for(int j=1;j<=x;j++)
s=s+jiechen(j);
return s;
}
public long jiechen(int i){
long f=1;
for(int j=1;j<=i;j++){
f=f*j;
}
return f;
}
public static void main(String args[]){
Fac f=new Fac();
System.
out
.print(
}
}
3、下面是父类Employee和子类Boss的定义,根据程序内容在下
划线
①到⑨
上填空。
1.
2.
3.
4.
class Employee{
① String name; 限制name的使用范围限于本类。
protected int id; 限制id的使用范围限于本包和所有子类。
public double salary;
5. Employee(String aname,double asalary){

第6页 (共10页)









































































线




















































6. name=aname;
7. salary=asalary; }
8. Employee(int aid,double asalary) {
9.
10. this(“Employee#”+aid, asalary);
调用第5行的构造方法语句,使name属性为“employee#”+id
11. }
12. double getSalary(){return salary;}
13. ② getName(){return name;}
14. int getId(){ return id; }
15. }
16.
定义Employee的子类Boss
17. ③ Class Boss extends Employee{
18. double bonus;
19. Boss(String aname,double asalary,double abonus) {
④ super(aname,asalary,);
20. bonus=abonus; }
21. Boss(int aid,double asalary,double abonus) {
22. super(aid,asalary);
23. bonus=abonus;
24. }
25. 19行、21行方法同名现象称为类多态中的⑤ 现象。
26. void setBonus(double b){bonus=b;}
27. double getSalary(){return salary+bonus;}
28. 27行的方法是对父类同名方法的 ⑥ 。
29. public static void main(String args[]) {
main函数头部
30. 下面是新建一个Boss对象b,工号是3,底薪为3000,奖金为1000。
在下面打印刚新建的Boss b的姓名和工号、工资。
⑦ Boss b=new Boss(3,3000,1000);

第7页 (共10页)


31. n(e()+( )+ary() );
32. } }
*从上面的类中可以看出,构造方法的特点是:⑧ 构造函数没有返回
值 、其主要作用是完成类对象的初始化工作、
⑨ 构造函数可以有1个或者多个 、构造函数不能由编程人员显式
直接调用、 创建类的新对象的同时,系统会自动调用构造函数为新对象进
行初始化。*
4.
下 面这段程序的13行和第17行是省略的默认构造函数,写出17行构造
函数包括函数内省略的语句: ,程序的输出结果
是: 。
1. import .*;
2. public class abc
3. {
4. public static void main(String args[ ])
5. {
6. SubClass sb=new SubClass();
7. n(());
8. }
9. }
10. class SuperClass
11. {
12. int a=10,b=20;
13.
14. }
15. class SubClass extends SuperClass
16. {
17.
18. int max( ) { return ((a>b)?a:b); }
19. }
5.
对下列代码:第10行语句将调用语句的行是第 行。本题中这种
同名函数调用时自动定位绑定对应函数的现象称为面向对象的 现
象。
1 class Person{
2 public void printValue(int i,int j){……}
3 public void printValue(int i){……}
4 }

第8页 (共10页)









































































线




















































5 public classs Teacher extends Person{
6 public void printValue(){……}
7 public void printValue(int i){……}
8 public static void main(String args[]){
9 Person t=new Teacher();
10 alue(10);
11 }
得 分

评卷人

四.填空题
(本大题共10空,每空 1分,共 10分
.



1. MAX_LENGTH是int型public成员变量,变量值
保持为常量 100,用简短语句定义这个常量。 ( )
2. 声明公用的abstract方法add,返回值为空的正确格式是( )。
3. Java中所有类都是类( )的子类。
4. 在Java编程语言中使用( )运算符(关键字)实例化一个对象。
5. 使用默认字节字符对应表,将字符串转化为字节数组的方法是( )。
6. 创建一个名为 MyPackage 的包语是 ( )
7. 设有数组定义 “int MyIntArray[]={10,20,30,40,50,60,70};”, 则执行以下几
个语句后的输出结果是( ) 。
int s=0;
for (int i=0;i< h();i++)
if (i % 2= = 1) s+=MyIntArray[i];
n(s);
8.
根据Applet 的生命周期写出打开此html后java程序中start( )、
paint( )、init()、stop()的执行顺序为:

Init start paint stop


9、
下面程序输出结果是:(如有换行要分行写)
( )

1 public class Test extends TT{
2 public void main(String args[]){
3 Test t = new Test(
4 }
5 public Test(String s){
6 super(s);
7 n(
8 }
9 public Test( ){
10 this(

第9页 (共10页)


11
12
13
14
15
16
17
18
29
20
21

得 分












}
}
class TT{
public TT( ){
n(
}
public TT(String s){
this( );
n(
}
}
10. Vector 类的addElement方法的参数的类型是: ( )

评卷人
五、编程序题目
(共20分)。

学校中有老 师和学生两类人,而在职研究生既是老师
又是学生,对学生的管理和对老师的管理在他们身上
都 有体现。
(1) 设计两个信息管理接口StudentInterface和TeacherInt eface。其中,
StudentInterface接口包括setFee方法和getFee方法 ,分别用于设置
和获取学生的学费。TeacherInterface接口包括setPay和get Pay方法,
分别用于设置和获取教师的工资。
(2) 定义一个学生类Student,实 现StudentInterface接口,它定义的成员
变量有name(姓名),sex(性别)、 age(年龄) ,必须包括带参数的构造
函数和toString()方法,返回学生年龄等信息。
(3)
定义一个研究生类Graduate继承Stdudent,实现TeacherIn terface接
口,它定义的成员变量fee(每学期学费)、pay(月工资),必须包括带
参数的构造函数,覆盖父类的toString()方法,返回研究生年龄,学
费,工资等信息。
(4)
创建一个姓名为“zhangsan”的研究生,输入工资和学费,统计他的年收入和学费,如果收入减去学费不足2000元,则输出“provide
a loan”(需要贷款)信息。



第10页 (共10页)

舞狮子作文-重庆医科大学教务处


河海大学考研分数-湖南招考网


千里送鹅毛歇后语-脚套


作文教案-为考试加油的暖心句子


搞笑测试-关于元宵节的资料


美国国会-营业执照年检


澳大利亚语言-读书后感


福建船政交通职业学院-法务专员岗位职责