Java期中测试试题卷及答案5986.pdf
考试类型:一纸闭卷();完全闭卷();开卷()第 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 不合法的是()Apublic 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.重载就是一个类中有多个同名但有不同形参或方法体的方法 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.以下程序段的哪行有错误()。1 import java.Applet.*;2 import java.awt.*;3 class Chengji 4 protected float f(float x,float y)5 return x*y;6 7 8 class Xiangjia extends Chengji 9 private float f(float x,float y)10 return x+y;11 12 A.8 行 B.9 行 C.4 行 D.10 行 12.下列说法正确的是()A.package 语句作为 Java 源文件的第一个语句 Bimport 语句作为 Java 源文件的第一个语句 Cpackage 语句作为 Java 源文件的类中的一条语句 Dimport 语句作为 Java 源文件的类中的一条语句 13.下列说法正确的是()。A 编译后的 Java 的源程序根据文件中定义的类和接口的个数产生的相应个数的.class 字节码 BJava 语言的源文件中不是任何地方都可以加注释的 C一个文件中可以有多个访问权限为 public 的类 D含有 main()方法的类可以定义为 public 类,也可以为其他类 14.下列有关抽象类的说法正确的是()。A.抽象类中必须包含抽象方法 B抽象类不能实例化 C 抽象类不一定被继承 D 用 interface 定义抽象类 15下列循环的循环体是():while(int i7);i+;System.out.println(“i is“+i);A.i+;System.out.println(“i is“+i);B.i+;C.;D.System.out.println(“i is“+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.下面这段程序的功能是:import java.io.*;public class Reverse public static void main(String args)int i,n=10;int a=new int 10;for(i=0;i=0;i-)System.out.print(ai+”#”);得 分 评卷人 System.out.println();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;jb)?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)9 Person t=new Teacher();10 T.printValue(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 MyIntArray.lenghth();i+)if(i%2=1)s+=MyIntArrayi;System.out.println(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(Tom);4 5 public Test(String s)6 super(s);7 System.out.println(How do you do?);8 9 public Test()10 this(I am Tom.);11 12 13 class TT 14 public TT()得 分 评卷人 15 System.out.println(What a pleasure!);16 17 public TT(String s)18 this();29 System.out.println(I am+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 元,则输出“provide a loan”(需要贷款)信息。得 分 评卷人 第 2 学期期中测试答案 学 院 班 级 姓 名 学 号 一、单项选择题(本大题共 15 小题,每小题 2 分,共 30 分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。题号 1 2 3 4 5 6 7 8 9 10 得分 评卷人 答案 B A B A A B A C D 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.输入十个整数,按输入的逆序输出并以”#”号分隔 题号 一 二 三 四 五 六 七 总分 统 分 人 复 核 人 得分 得 分 评卷人 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 行。本题中这种同名函数调用时自动定位绑定对应函数的现象称为面向对象的 引用的多态 现象。得 分 评卷人 四填空题(本大题共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 void setFee();double getFee();public interface TeacherInterface void setPay();double getPay();public class Graduate extends Student implements TeacherInterface 得 分 评卷人 double fee;double pay;Graduate(String name,boolean sex,int age)super(name,sex,age);/TODO Auto-generated constructor stub Graduate(String name,boolean sex,int age,double pay,double fee)super(name,sex,age);this.pay=pay;this.fee=fee;/TODO Auto-generated constructor stub Override public double getPay()/TODO Auto-generated method stub return 0;Override public void setPay()/TODO Auto-generated method stub public String toString()return +age+fee+pay;public class Student implements StudentInterface String name;boolean sex;int age;Student(String name,boolean sex,int age)this.name=name;this.sex=sex;this.age=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(zhangsan,true,17,1000,2000);if(graduate.pay-graduate.fee2000)System.out.println(provide a loan);/(接编程题目第 3 页)