Java期中测试试题卷及答案
h7n9是什么-郑州考试中心
装
订
线
考试类型:一纸闭卷(
);完全闭卷( √ );开卷( )
第2学期期中测试试卷
学
院 班 级
姓 名
学 号
统
分
人
复
核
人
题号 一 二
三
四
五
六
七
总分
得分
得 分
评卷人
一、单项选择题
(本大题共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.
4. }
将以下方法插入行3不合法的是( )
A.public
float aMethod(float a,float b,float c){ }
第1页 (共17页)
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.意义相同
9.下列关于修饰符混用说法中,错误的是( )。
A. abstract 不能与final并列修饰同一个类
B.
abstract类中不可以有private的成员
第2页 (共17页)
装
订
线
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源文件的类中的一条语句
D.import语句作为Java源文件的类中的一条语句
13.下列说法正确的是(
)。
A.编译后的Java的源程序根据文件中定义的类和接口的个数产生的相应
第3页 (共17页)
个数的.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是正
确的。( √ )
6.重载和覆盖是一回事。
( × )
7.子类要调用父类的方法,必须使用super关键字。 ( √ )
第4页 (共17页)
装
订
线
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;i
BufferedReader br=new BufferedReader(new
InputStreamReader());
a[i]=nt(ne());
输入一个整数
}catch (IOException e){ }
for(i=n-1;i>=0;i--)
(a[i]+”#”);
第5页 (共17页)
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. name=aname;
7.
salary=asalary; }
8. Employee(int aid,double
asalary) {
第6页 (共17页)
装
订
线
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的姓名和工号、工资。
31. n(e()+(
)+ary() );
32. } }
*从上面的类中可以看出,构造方法的特点是:⑧ 构造函数没有返回
⑦
Boss b=new Boss(3,3000,1000);
第7页 (共17页)
值
、其主要作用是完成类对象的初始化工作、
⑨ 构造函数可以有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 }
5 public
classs Teacher extends Person{
6 public void
printValue(){……}
7 public void printValue(int
i){……}
8 public static void main(String
args[]){
第8页 (共17页)
装
订
线
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(
11 }
12
}
13 class TT{
14 public TT( ){
第9页 (共17页)
15
16
17
18
29
20
21
得 分
}
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页 (共17页)
装
订
线
第2学期期中测试答案
学 院 班 级
姓 名 学 号
统
分
人
复
核
人
题号 一 二
三
四
五
六
七
总分
得分
一、单项选择题
(本大题共15小题,每小题2分,共 30分)在每小题
列出的四
个备选项中只有一个是符合题目要求的,请将其代码填写在题后的
括号内。错选、多选或未选均无分。
题号 1
答案 B
2
A
3
B
4
A
5
A
6
B
7
A
8
C
9
D
10
A
得分 评卷人
题号 11 12 13 14 15
答案 B A A B C
二.判断题
(本大题共15小题,每小题1分,共15 分)。( 正确的打√,
错误的打×)
题号 1 2 3 4 5 6 7 8 9 10 得分 评卷人
答案 × √ × × √ × √ √ × √
题号 11 12 13 14 15
答案 √ √ √ √ ×
得 分
评卷人
三.读程序,按要求填空
(本大题共5小题,每小
题
4+4+9+4+4分,共25分
.
)
1.
输入十个整数,按输入的逆序输出并以”#”号分隔
第11页 (共17页)
2.
下列程序函数调用顺序是:(写函数名,从进入到返回到结束都要写)
main、fac、sumf、jiechen、sumf、main.
,
程序的功能是 求1!+2!+3!的和
执行结果是:1!+2!+3!= 9
3. ① private ② String
③ Class Boss extends Employee
④ Super(aname,asalary)
⑤ 重载 ⑥ 覆盖
⑦ Boss b = new Boss(3,3000,1000);
⑧ 构造函数没有返回值
⑨ 构造函数可以有1个或者多个
4.
下面这
段程序的13行和第17行是省略的默认构造函数,写出17行构造
函数包括函数内省略的句:
此处不需任何语句 ,
程序的输出结果是:
20 。
5.
对下列代码:第10行语句将调用语句的行是第
7 行。
本题中这种同名函数调用时自动定位绑定对应函数的现象称为面向对象的
引用的多态 现象。
得
分 评卷人
第12页 (共17页)
装
订
线
四.填空题
(本大题共10空,每空 1分,共
10分
.
)
1. public final int
MAX_LENGTH=100;
2. public
abstract void add();
3. Object 4.
new
5. Applet
6. Package MyPackage
7. 120 8.
Init start paint stop
9.
What a pleasure!
I am Tom
How do you do?
10. Object
得
分
评卷人
五、编程序题目
(共20分)。
public interface StudentInterface {
}
public interface TeacherInterface {
void setPay();
double getPay();
}
public class Graduate extends
Student implements
TeacherInterface {
void setFee();
double getFee();
第13页 (共17页)
}
double fee;
double pay;
Graduate(String name, boolean sex, int age) {
}
Graduate(String name, boolean
sex, int age,double
}
@Override
public double getPay() {
}
@Override
public void setPay()
{
}
public String toString(){
return + age + fee + pay;
}
TODO Auto-generated method stub
TODO Auto-
generated method stub
return 0;
super(name, sex, age);
= pay;
= fee;
TODO Auto-generated constructor stub
super(name, sex, age);
TODO Auto-
generated constructor stub
pay,double fee) {
public class Student implements
StudentInterface {
String name;
boolean sex;
第14页 (共17页)
int age;
Student(String name, boolean sex, int age){
= name;
= sex;
= age;
}
public String toString(){
return + age;
}
@Override
public double
getFee() {
TODO Auto-
generated method stub
线
return 0;
}
订
@Override
public
void setFee() {
TODO Auto-
generated method stub
}
装
}
public class abc {
**
* @param args
*
public static void main(String[]
args) {
TODO Auto-generated
method stub
Graduate graduate = new
Graduate(,true,17,1000,2000);
第15页 (共17页)
if( - <2000)
n();
}
}
第16页 (共17页)
(接编程题目第3页)
线
订
装
第17页 (共17页)