华南农业大学期末考试试卷(A卷)
2010-2011学年第 1 学期 考试科目: Java程序设计 考试类型:(闭卷)考试 考试时间: 120 分钟 学号 姓名 年级专业
题号 得分 评阅人 一 二 三 四 总分 考试说明:所有答案必须填写在答卷上,考试结束时答卷和试卷都上交。 得分
一、单项选择题(本大题共 15 小题,每小题 2 分,共 30 分)
1. Java语言是______d___。
A. 面向问题的解释型高级编程语言 C. 面向过程的编译型高级编程语言 2. 下列为合法类名的是___d_____。
A. class
B. 123Student
C. GraduateStudent
D. “类名”
B. 面向机器的低级编程语言
D. 面向对象的解释型高级编程语言
3. 对于构造方法,下列叙述不正确的是____b____。
A. 构造方法是类的一种特殊函数,它的方法名必须与类名相同
B. 构造方法的返回类型只能是void类型
C. 构造方法的主要作用是完成对类的对象的初始化工作 D. 一般在创建新对象时,系统会自动调用构造方法
4. 下列关于接口的说明正确的是___d_____。
A. 接口和抽象类是同一回事 C. 接口间不能有继承关系
B. 一个类不可以实现多个接口
D. 实现一个接口必须实现接口的所有方法
5. 在Java中,存放字符串常量的对象属于____b____类对象。
A. Character
B. String
C. StringBuffer
D. Vector
6. 在一个应用程序中有如下定义:int a[]={1,2,3,4,5,6,7,8,9,10}; 为了打印输出数组a的最
后一个元素,下面正确的代码是__b______。 A. System.out.println(a[10]);
B. System.out.println(a[9]); D. System.out.println(a(9));
C. System.out.println(a[a.length]);
7. 定义如下的二维数组b,下面的说法不正确的是____c____。
int b[][]={{1,2,3},{4,5,6,7,8},{9,10,11,12,13,14,15}}; A. b.length的值是3 C. b[1][1]的值是1
B. b[1].length的值是5
D. 二维数组b的第一行有3个元素
8. 下列语句中,属于多分支语句的是___b_____。
A. if语句
B. switch语句
C. do while语句
D. for语句
9. 下列注释中不是Java语言使用的是__d______。
A. // 注释
B. /* 注释 */
C. /** 注释 */
D. /** 注释 **/
10. 关于Java的包叙述不正确的是____a____。
A. 不在同一个包中的类不允许有相同的名称 B. 在同一个包中的类不允许有相同的名称 C. 包是用于组织类与接口的机制
D. 可以通过import语句将包中的类加载到程序中
D. 如果源程序中没有使用package语句,则该类就不会出现在任何包中
11. 欲构造ArrayList类的一个实例,此类继承了List接口,下列方法正确的是___b_____。
A. ArrayList myList=new Object(); C. ArrayList myList=new List();
B. List myList=new ArrayList();
D. List myList=new List();
12. 针对以下类定义,编译时出现语法错误的语句是____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();
13. 假设子类A继承了父类B,则如下能正确描述这2个类之间关系的类图是__a______。
A C
B D
14. 下面____d____方法是public void example(){...}的重载方法?
A. public void example(){...} B. public int example(){...}
C. public void example2(){...} D. public int example(int m, float f){...} 15. 下列叙述中,正确的是___a_____。
A. Java语言的标识符是区分大小写的 B. 源文件名与public类名可以不相同 C. 源文件名其扩展名为.jar D. 源文件中public类的数目不限
1.5CM
得分
二、填空题(本大题共 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){ 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个整数中的最大值和最小值。 import java.io.* ; import java.util.Scanner; public class Shuru{ 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 = 1 ; i <= n ; i ++ ) {//整个for语句6分 temp = in.nextInt( ); if (temp > max ) max=temp; if (temp < min) min=temp; } System.out.println(\+max+\+min); //输出1分 } } 2. 编写程序读入10个学生的成绩,统计及格学生的个数并计算平均分。 import java.util.Scanner; public class Shuru{ public static void main(String[ ] args){ int i , n = 10 ,average=0,sum=0,j=0,temp ; //数据域2分 Scanner in =new Scanner(System.in);//输入对象创建1分 for ( i = 1 ; i <= n ; i ++ ) {//整个for语句6分 temp = in.nextInt( ); sum=sum+temp;