华南农业大学期末考试试卷(A卷)
2010-2011学年第1 学期考试科目:Java程序设计
考试类型:(闭卷)考试考试时间:120 分钟
学号姓名年级专业
题号一二三四总分
得分
评阅人
得分
一、单项选择题(本大题共15 小题,每小题 2 分,共30 分)
1.Java语言是____D_____。
2. A. 面向问题的解释型高级编程语言 B. 面向机器的低级编程语言
C. 面向过程的编译型高级编程语言
D. 面向对象的解释型高级编程语言
3.下列为合法类名的是___C_____。
4. A. class B. 123Student C. GraduateStudent D. “类名”
5.对于构造方法,下列叙述不正确的是___B_____。
6. A. 构造方法是类的一种特殊函数,它的方法名必须与类名相同
B. 构造方法的返回类型只能是void类型
C. 构造方法的主要作用是完成对类的对象的初始化工作
D. 一般在创建新对象时,系统会自动调用构造方法
7.下列关于接口的说明正确的是___D_____。
8. A. 接口和抽象类是同一回事 B. 一个类不可以实现多个接口
C. 接口间不能有继承关系
D. 实现一个接口必须实现接口的所有方法
9.在Java中,存放字符串常量的对象属于___B_____类对象。
10. A. Character B. String C. StringBuffer D. Vector
11.在一个应用程序中有如下定义:int a[]={1,2,3,4,5,6,7,8,9,10}; 为了打印输出数组a的最
后一个元素,下面正确的代码是___B_____。
12. A. System.out.println(a[10]); B. System.out.println(a[9]);
C. System.out.println(a[a.length]);
D. System.out.println(a(9));
13.定义如下的二维数组b,下面的说法不正确的是___C_____。
14.int b[][]={{1,2,3},{4,5,6,7,8},{9,10,11,12,13,14,15}};
A. b.length的值是3
B. b[1].length的值是5
C. b[1][1]的值是1
D. 二维数组b的第一行有3个元素
15.下列语句中,属于多分支语句的是___B_____。
16. A. if语句 B. switch语句 C. do while语句 D. for语句
17.下列注释中不是Java语言使用的是___D_____。
18. A. // 注释 B. /* 注释*/ C. /** 注释*/ D. /** 注释**/
19.关于Java的包叙述不正确的是___A_____。
20. A. 不在同一个包中的类不允许有相同的名称
B. 在同一个包中的类不允许有相同的名称
C. 包是用于组织类与接口的机制
D. 可以通过import语句将包中的类加载到程序中
21.欲构造ArrayList类的一个实例,此类继承了List接口,下列方法正确的是___B_____。
22. A. ArrayList myList=new Object(); B. List myList=new ArrayList();
C. ArrayList myList=new List();
D. List myList=new List();
23.针对以下类定义,编译时出现语法错误的语句是___C_____。
class Animal { … }
class Dog extends Animal { … }
class Cat extends Animal { … }
A. Animal animal = new Dog();
B. Cat cat = (Cat)new Animal();
C. Dog dog = (Dog)new Cat();
D. Cat cat = new Cat();
24.假设子类A继承了父类B,则如下能正确描述这2个类之间关系的类图是___A_____。
A B
C D
25.下面___D_____方法是public void example(){...}的重载方法?
A. public void example(){...}
B. public int example(){...}
C. public void example2(){...}
D. public int example(int m, float f){...}
26.下列叙述中,正确的是___A_____。
A. Java语言的标识符是区分大小写的
B. 源文件名与public类名可以不相同
C. 源文件名其扩展名为.jar
D. 源文件中public类的数目不限
二、填空题(本大题共 10 小题,每小题 2 分,共 20 分)
1. 若有类定义:class B extends A {…},则类B 是类A 的___子类______。
2. 创建类的对象时,使用运算符_____new ______给对象分配内存空间。
3. 表达式(5%2= =0)的值是_____false ______。
4. _____Object ______类是所有Java 包中的类、用户自定义类的直接或间接父类。
5. 在循环中使用_____continue ______语句,将跳过本轮循环的剩余语句,进入循环的下
一轮。
6. 设x=2,则表达式(x++)*3的值是_____6______。
7. 声明并创建类MyClass 的一个对象,其名称为obj ,可通过以下语句实现_____MyClass
obj=new MyClass()______。
8. _____抽象______方法是一种仅有方法头没有方法体的方法。
9. 定义成员变量时,在访问特性修饰符之后加上_____static ______可以使之成为静态成员
变量。
10. Java 中,_____多态______性是指不同的类对象调用同一个签名的成员方法时将执行不
同代码段的现象。
三、程序阅读题(本大题共4小题,每小题5分,共20分) 说明:阅读下面的程序,并写出程序的运行结果。
1. public class CalculateSum{
public static void main(String[] args){ int i,j,sum; for(i=2;i<7;i++){ sum = 1; for ( j=1;j<7;j++ )
sum = sum + j;
} System.out.println(sum); }
答案:22
2. public class Test{
public static void main(String[] args){ 得分
得分
1.5CM
int[] x={122,33,55,678,-987}; int max = x[0];
for (int i=1;i if (x[i]>max) max=x[i]; } System.out.println(max); } 答案:678 3. public class Test{ public static void main(String[] args){ A a = new A(); a.show(); } } public class A{ private int x=99; public void show(){ System.out.println(x); } } 答案:99 4. class Top{ public void printString(){ System.out.println(“Top 类调用printString 方法”); } } class Bottom extends Top{ public void printString(){ System.out.println(“Bottom 类调用printString 方法”); } } class Test{ public static void main(String[] args){ Top topObj = new Bottom(); topObj.printString(). } } 答案:Bottom 类调用printString 方法 四、编写程序题(本大题共3小题,每小题10分,共30分) 1. 编写程序接受用户输入的10个整数,并输出这10个整数中的最大值和最小值。 答案: 得分 1.5CM import java.io.* ; public class MaxMin{ public static void main(String[ ] args){ int i , n = 10 , max = 0 , min = 0 , temp = 0; //数据域2分 Scanner in =new Scanner(System.in);//输入对象创建1分 for ( i = 2 ; i <= n ; i ++ ) {//整个for语句6分 temp = in.nextInt( ); if (temp > max ) max=temp; if (temp < min) min=temp; } System.out.println("max="+max+"\nmin="+min); //输出1分 } } 2. 编写程序读入10个学生的成绩,统计及格学生的个数并计算平均分。 答案: import java.io.* ; public class Score{ public final int N=10; //可不定义常量,程序中直接用10 public static void main(String[ ] args){ int i, count=0; //数据域2分,其中数组定义占1分 float sum=0,ave; float[] a = new float[10]; Scanner in =new Scanner(System.in); //输入2分 for(i=0;i a[i]=in.nextInt(); for(i=0;i { if (a[i]>=60) count=count+1; sum=sum+a[i]; } ave=sum/N; //计算平均分1分 printf(“count=%d,ave=%f”,count,ave); //输出1分,不局限于这种形式 } 3.编程定义一个描述矩形的类,类名为Rectangle,并符合以下要求: (1)矩形类包括2个double类型的数据域a和b,分别代表长和宽。 (2)无参构造方法创建矩形对象时a和b的值为1.0;有参构造方法的形式参数为a和b 提供值。 (3)对数据域a和b进行合理的封装。 (4)定义一个方法getArea(),该方法的返回值是矩形对象的面积。 答案: class Rectangle { private double a; //数据域1分 private double b; public Rectangle() { //2个构造方法3分 a = 1.0; b = 1.0; } public Rectangle(double a, double b) { this.a = a; this.b = b; } public double getA() { //访问器和修改器共4分return a; } public void setA(double a) { this.a = a; } public double getB() { return b; } public void setB(double b) { this.b = b; } public double getArea() { //求面积2分 return a * b; } }