资源描述
编号:LNJD-PR08-RE32
班 级
学 号
姓 名
装 使用班级:14341 科目: Java编程基础 试卷类别:A□BþC□
题号
一
二
三
四
五
六
七
八
总分
得分
阅卷人
订
请考生注意:这份试题共 三 道大题,满分为 60 分。
考试时间: 90 分钟,考试形式:开卷□闭卷þ
考试形式为选择题、简答题和编程题,其中选择题有一个或多个答案,全部选对才得分。
一、 选择题:(选择一项或多项)本大题共20小题,每题1分,共20分
(将答案写入表格中,否则无成绩!)
1
2
3
4
5
6
7
8
9
10
1~10
11~20
1、在Java语言中,下列关于类的继承的描述,正确的是( )。(选一项)
A.一个类可以继承多个父类
B.一个类可以具有多个子类
C.子类可以使用父类的所有方法
D.子类一定比父类有更多的成员方法
2、下面( )不是Java的访问修饰符关键字. (选择一项)
A. private
B. friend
C. protected
D. public
3、给定如下的Java代码,下列( )方法可以加入到Child类中,并且能够保证编译正确. (选择一项)
class Base{
public void method( ){ }
}
class Child extends Base{
}
A. public void method(String s ){ }
B. public int method( ){return 1;}
C. private void method( ){}
D. public void method(Integer i);
4、关于对下面语句
protected void show(int x,int y){……}
下面( )语句是它的在子类中的重写?(选择一项)
A. protected int show(int x,int y){……}
B. protected void show(int x,int y, int z){……}
C. public void show(int x,int y){……}
D. void show(int x,int y){……}
5、假设有下面的接口定义
interface Book{
float priceRate=0.05;
}
那么其成员属性priceRate的默认修饰符是( )。(选择一项)
A. public
B. static
C. final
D. void
6、同一包中的子类可以访问父类中带( )访问修饰符的成员?(选择二项)
A. public
B. protected
C. firend
D. private
7、给定如下Java代码,下列( )方法可以加入到Sample类中,并且能够编译正确。(选择二项)
public class Sample{
public int getSomething(int d){
Return d;
}
}
A. private int getSomething(int i ,String s){}
B. public void getSomething(int i ){}
C. private int getSomething(byte b){ return b; }
D. private int getSomething(){ return 2;}
8、给定如下Java代码,编译运行后,结果将是( )。(选择一项)
public class Sample{
private int x;
public Sample(){
x=1;
}
public void Sample(double f ){
this.x=(int )f;
}
Public int getX(){
return x;
}
public static void main(String [] args){
Sample s=new Sample(5.2);
System.out.println(s.getX());
}
}
A. 发生编译期错误,编译器提示:出现重复的方法Sample
B. 发生编译期错误,编译器提示:未定义构造方法Sample(double)
C. 正常运行,输出结果:5.2
D. 正常运行,输出结果:5
9、构成方法重写的要素不包括( ). (选择二项)
A. 方法名称相同
B. 返回类型不同
C. 参数列表相同
D. 在同一个类中
10、以下( )修饰符用于声明一个类变量,且该变量的值在运行期始终保持不变。(选择一项)
A. static
B. final
C. static final
D. final static
11、在java中,下列接口或类不包括在java.sql包中的是( )(选择一项)
A.ArrayList
B.Connection
C.Statement
D.DriverManager
12、给定如下Java代码,关于super的用法,以下描述正确的是( )(选择一项)
class C extends B{
public C(){
super(); }
}
A. 用来调用类B中定义的super()方法
B. 用来调用类C中定义的super()方法
C. 用来调用类B的无参构造方法
D. 用来调用类B中第一个出现的构造方法
13、在Java中,类Test的代码如下所示,假设类Test的实例化对象名为t,则选项( )中的语句能正确调用Test类的change()方法。(选择一项)
class Test{
public int change(){
System.out.println(“NO parameters”);
return 0;
}
public void change(double m){
System.out.println(“parameter is:”+m);
}
}
A. Test.change(15.2f) B.Test.change();
B. t.change(250.5); D. int a=t.change(13);
14、给定如下Java代码,其中第( )行代码有错误。(选择一项)
import java.util.*;
public class Maptest{
public static void main(String [] args){
List pList=new ArrayList();
pList.add(“A”); //5
pList.add(“A”); //6
for(int i=0;i<pList.size();i++){ //7
String str=pList.get(i); //8
System.out.println(str);
}
}
}
A.5 B. 6 C. 7 D.8
15、给定如下Java代码,编译运行时将输出( )(选择一项)
class Base{
static int i=1;
public void amethod(){
System.out.println(“Base.amethod()”);
}
Base(){ amethod(); }
}
public class Descend extends Base{
public static void main(String [] args){
Base b=new Descend();
System.out.println(i);
b.amethod();
}
public void amethod(){
System.out.println(“Descend.amethod()”);
}
}
A. Base.amethod()
-1
Descend.amethod()
B. Descend.amethod()
1
Descend.amethod()
C. 1
Descend.amethod()
D. Base.amethod()
1
Descend.amethod()
16、在java中,以下( )类的对象以键-值的方式存储对象.(选择一项)
A. java.uitl.List
B. java.util.ArrayList
C. java.util.HashMap
D. java.util.LinkedList
17、给定java代码如下所示,在A处所填写类( )方法,是对cal方法的重载(选择二项)
public class Test
{
public void cal (int x , int z){}
//A
}
A. public int cal(int x , int y , float z){return z;}
B. public int cal (int x,int y ,int z ){return x;}
C. public void cal(int x,int z){}
D. public void cal (int z,int y , int x)
18、在java中,已经定义接口A,以下语句正确的是( ). (选择一项)
A. class AAA extends A ()
B. class AAA implements A{}
C. interface AAA extends A{}
D. interface AAA imprlement A{}
19、下列选项中关于Java中super关键字的说法正确的是( ).(选一项)
A. supet关键字是在子类对象内部指代其父类对象的引用
B. supet关键字不仅可以指代子类的直接父类,还可以指代父类的父类
C. 子类通过supet关键字只能调用父类的方法,而不能调用父类的属性
D. 子类通过supet关键字只能调用父类的属性,而不能调用父类的方法
20、在Java中,下面对子类XX的描述正确的是( ).(选一项)
A. 类XX必须定义构造函数
B. 构造函数的返回类型是Void
C. 构造函数和类有相同的名称,并且不需指定任何参数
D. 一个类可以定义多个构造函数
二、简答题:本大题共2小题,每题10分,共20分
1. 简述什么是方法重写?
2. 简述String类与StringBuffer类的区别?
三、编程题:本大题共1小题,每题20分,共20分
1. 假设有一个飞机类Airplane,它有1—4个引擎,请自行为它设计一个内部引擎类Engine,它有一个引擎类型的属性type,其值可能为喷气引擎(whiff)或螺旋桨引擎(airscrew),并定义初始化两个对象喷气式飞机(jet)和螺旋桨飞机(PDAirplane)。
构造方法和引擎数目可以自行确定。
(代码书写要注意遵守Java代码规范)
线
内
不
要
核分人
审核人
答
题
第 1 页 共 4 页
第2页 共 4 页
编号:LNJD-PR08-RE32
班 级
学 号
姓 名
第3页 共 4 页
第4页 共 4 页
编号:LNJD-PR08-RE33
班 级
学 号
姓 名
装 使用班级: 14341 科目: Java编程基础 试卷类别:A□BþC□
答案及评分标准
订
注:这份试题共 三 道大题,满分为 60 分。考试时间:90 分钟
考试形式:开卷□闭卷þ。评分标准在解题步骤中注明。
考试形式为选择题、简答题和编程题,其中选择题有一个或多个答案,全部选对才得分。
一、选择题:(选择一项或多项)本大题共20小题,每题1分,共20分
1、在Java语言中,下列关于类的继承的描述,正确的是( B )。(选一项)
A.一个类可以继承多个父类
B.一个类可以具有多个子类
C.子类可以使用父类的所有方法
D.子类一定比父类有更多的成员方法
2、下面( B )不是Java的访问修饰符关键字. (选择一项)
E. private
F. friend
G. protected
H. public
3、给定如下的Java代码,下列( A )方法可以加入到Child类中,并且能够保证编译正确. (选择一项)
class Base{
public void method( ){ }
}
class Child extends Base{
}
E. public void method(String s ){ }
F. public int method( ){return 1;}
G. private void method( ){}
H. public void method(Integer i);
4、关于对下面语句
protected void show(int x,int y){……}
下面( C )语句是它的在子类中的重写?(选择一项)
E. protected int show(int x,int y){……}
F. protected void show(int x,int y, int z){……}
G. public void show(int x,int y){……}
H. void show(int x,int y){……}
5、假设有下面的接口定义
interface Book{
float priceRate=0.05;
}
那么其成员属性priceRate的默认修饰符是( A )。(选择一项)
E. public
F. static
G. final
H. void
6、同一包中的子类可以访问父类中带( AB )访问修饰符的成员?(选择二项)
E. public
F. protected
G. firend
H. private
7、给定如下Java代码,下列( CD )方法可以加入到Sample类中,并且能够编译正确。(选择二项)
public class Sample{
public int getSomething(int d){
Return d;
}
}
E. private int getSomething(int i ,String s){}
F. public void getSomething(int i ){}
G. private int getSomething(byte b){ return b; }
H. private int getSomething(){ return 2;}
8、给定如下Java代码,编译运行后,结果将是( B )。(选择一项)
public class Sample{
private int x;
public Sample(){
x=1;
}
public void Sample(double f ){
this.x=(int )f;
}
Public int getX(){
return x;
}
public static void main(String [] args){
Sample s=new Sample(5.2);
System.out.println(s.getX());
}
}
E. 发生编译期错误,编译器提示:出现重复的方法Sample
F. 发生编译期错误,编译器提示:未定义构造方法Sample(double)
G. 正常运行,输出结果:5.2
H. 正常运行,输出结果:5
9、构成方法重写的要素不包括( BD ). (选择二项)
A. 方法名称相同
B. 返回类型不同
C. 参数列表相同
D. 在同一个类中
10、以下( D )修饰符用于声明一个类变量,且该变量的值在运行期始终保持不变。(选择一项)
A. static
B. final
C. static final
D. final static
11、在java中,下列接口或类不包括在java.sql包中的是( A )(选择一项)
A.ArrayList
B.Connection
C.Statement
D.DriverManager
12、给定如下Java代码,关于super的用法,以下描述正确的是( C )(选择一项)
class C extends B{
public C(){
super(); }
}
E. 用来调用类B中定义的super()方法
F. 用来调用类C中定义的super()方法
G. 用来调用类B的无参构造方法
H. 用来调用类B中第一个出现的构造方法
13、在Java中,类Test的代码如下所示,假设类Test的实例化对象名为t,则选项( B )中的语句能正确调用Test类的change()方法。(选择一项)
class Test{
public int change(){
System.out.println(“NO parameters”);
return 0;
}
public void change(double m){
System.out.println(“parameter is:”+m);
}
}
C. Test.change(15.2f) B.Test.change();
D. t.change(250.5); D. int a=t.change(13);
14、给定如下Java代码,其中第( D )行代码有错误。(选择一项)
import java.util.*;
public class Maptest{
public static void main(String [] args){
List pList=new ArrayList();
pList.add(“A”); //5
pList.add(“A”); //6
for(int i=0;i<pList.size();i++){ //7
String str=pList.get(i); //8
System.out.println(str);
}
}
}
A.5 B. 6 C. 7 D.8
15、给定如下Java代码,编译运行时将输出( B )(选择一项)
class Base{
static int i=1;
public void amethod(){
System.out.println(“Base.amethod()”);
}
Base(){ amethod(); }
}
public class Descend extends Base{
public static void main(String [] args){
Base b=new Descend();
System.out.println(i);
b.amethod();
}
public void amethod(){
System.out.println(“Descend.amethod()”);
}
}
E. Base.amethod()
-1
Descend.amethod()
F. Descend.amethod()
1
Descend.amethod()
G. 1
Descend.amethod()
H. Base.amethod()
1
Descend.amethod()
16、在java中,以下( C )类的对象以键-值的方式存储对象.(选择一项)
E. java.uitl.List
F. java.util.ArrayList
G. java.util.HashMap
H. java.util.LinkedList
17、给定java代码如下所示,在A处所填写类( AB )方法,是对cal方法的重载(选择二项)
public class Test
{
public void cal (int x , int z){}
//A
}
E. public int cal(int x , int y , float z){return z;}
F. public int cal (int x,int y ,int z ){return x;}
G. public void cal(int x,int z){}
H. public void cal (int z,int y , int x)
18、在java中,已经定义接口A,以下语句正确的是( B ). (选择一项)
E. class AAA extends A ()
F. class AAA implements A{}
G. interface AAA extends A{}
H. interface AAA imprlement A{}
19、下列选项中关于Java中super关键字的说法正确的是( A ).(选一项)
E. supet关键字是在子类对象内部指代其父类对象的引用
F. supet关键字不仅可以指代子类的直接父类,还可以指代父类的父类
G. 子类通过supet关键字只能调用父类的方法,而不能调用父类的属性
H. 子类通过supet关键字只能调用父类的属性,而不能调用父类的方法
20、在Java中,下面对子类XX的描述正确的是( D ).(选一项)
E. 类XX必须定义构造函数
F. 构造函数的返回类型是Void
G. 构造函数和类有相同的名称,并且不需指定任何参数
H. 一个类可以定义多个构造函数
1
2
3
4
5
6
7
8
9
10
1~10
B
B
A
C
A
AB
CD
B
BD
D
11~20
A
C
B
D
B
C
AB
B
A
D
二、简答题:本大题共2小题,每题10分,共20分
1. 简述什么是方法重写?(10分)
方法重写是指:
i. 在有继承关系的父子类之间(3分)
ii. 存在同名的方法(3分)
iii. 子类方法的功能会覆盖父类同名方法的功能(4分)
iv. 附加分:子类方法的访问修饰等级至少不应低于父类方法的访问修饰等级(+2分)
3. 简述String类与StringBuffer类的区别?(10分)
1) 创建对象时的区别:(4分)
String类的书写格式可以是:String s=””;
StringBuffer类的书写格式必须是:StringBuffer sb=new StringBuffer(“”);
2) 调用方法的区别:(4分)
String类是不变字符串(immutable),不具有改变值的能力;
StringBuffer类多了capacity()、append()、insert()等方法
3) 原理的区别:(2分)
StringBuffer是缓冲类,处理效率高;
String类不是
三、编程题:本大题共1小题,每题20分,共20分
2. 假设有一个飞机类Airplane,它有1—4个引擎,请自行为它设计一个内部引擎类Engine,它有一个引擎类型的属性type,其值可能为喷气引擎(whiff)或螺旋桨引擎(airscrew),并定义初始化两个对象喷气式飞机(jet)和螺旋桨飞机(PDAirplane)。
构造方法和引擎数目可以自行确定。
class Test {
public static void main(String[] args) {
AirPlane jet=new AirPlane("WHIFF",2); //完成对象初始化2分
jet.showInfo();//完成方法调用2分
AirPlane pdAirplane=new AirPlane("AIRSCREW",4); //完成对象初始化2分
pdAirplane.showInfo()
展开阅读全文