华南农业大学期末考试试卷(A卷)
2012-2013学年第 1 学期          考试科目: Java程序设计 
考试类型:(闭卷) 考试        考试时间:java重载  120   分钟
一、单项选择(本大题共 18 小题,每小题 2 分,共 36 分)
1.下列关于Java语言的说法,不正确的是__B______
A. Java是面向对象的高级语言
B. Java是解释型语言,所以执行速度快
C. 一个类被编译成一个.class字节码文件
D. Java程序可以做到“一次编写,随处运行”
2.下列符合Java程序元素命名习惯的是___D_____。
A. double Radius      B. int lengthofarray        C. class shape    D. final double PI
3.下列不满足自动类型转换的赋值语句是__C______。
A.int c = A’;                B. long d = 165;
C.float b = 26.3;            D. double a = 13;
4.语句int a = 10, b = 20; b += a++; 执行结束后,a和 b的值分别是__B______。
A. 10,30        B. 11,30        C. 10,31        D. 11,31
5.下列程序段的输出结果是__D______。
int m = 4, n = 9;
  System.out.println(“m + n = ” + m + n);
A. m + n = 13      B. m + n = mn      C. m + n = m + n      D. m + n = 49;
6.下列关于for和while这两种循环语句的说法,正确的是__C______
A.二者都是后置检查循环条件    B.循环次数不确定使用for语句比较好
C.循环条件是布尔型表达式      D.它们之间不能互相嵌套使用
7.下列程序片段执行后,y的值为__D______
int x = 4, y = 3; switch(x + 3){case 7: y = 7;  case 8: y =8;  default: y++;}
A. 4  B. 7  C. 8    D. 9
8.定义二维数组a,不正确的是__A______
A. double a  [3][3];  B. double  a[][];    C. double[]  a[];  D. double[][]  a;
9.设int[][] b = {{26,53},{24,18,33},{29,81,51},{27,44,92,13}},则___A_____
A. 数组一共有12个元素  B. b[2].length为4    C. b.length为12  D. b[3][2]等于81
10.下面一段代码的输出结果是__B______
class Test{
        public static void main(String [] args){
    int[] a={36,31,0,11,8,13,24,49,33,16}; swap(a,4,8);System.out.println(a[4]);}
    public static void swap(int[] a, int i, int j){int t = a[i]; a[i] = a[j]; a[j] = t;}
}
A. 8  B. 33  C. 11    D. 49
11.关于字符串,下列语句不正确的是__C______
A. String s = new String(”Olympic game”);
B. “Welcome to Guangzhou”.indexOf(‘o’);
C. String s = “Great Wall”;  s.delete(2,5);
D. StringBuffer buffer = new StringBuffer();  buffer.append(“China”);
12.关于类和对象,下列说法不正确的是__D______。
A. 类是对象的模板,对象是类的实例
    B. 面向对象有四个基本特征:抽象、封装、继承和多态
    C. 对象的引用变量只是存放了对象的地址
    D. 静态成员方法可以调用实例成员方法
13.关于类和成员的访问权限,下列说法正确的是__C______
A. 类A能继承类B的前提是A和B必须在同一个包中
    B. 子类不能继承位于不同包中的父类的protected成员
    C. 子类不能继承位于同一包中的父类的private成员
    D. 子类可以继承位于不同包中的父类的无修饰成员
14.下列关于继承的哪项叙述是正确___B_____
A. 在java中允许多继承           B. java的单一继承使代码更可靠
C. 在java中一个类不能同时继承一个类和实现一个接口
D. 在java中一个类只能实现一个接口
15.下列关于父类和子类构造方法,不正确的是__C______
A. 子类不能继承父类的构造方法
B. 子类构造方法可以调用父类构造方法
C. 子类构造方法的第一条语句必须通过super显式调用父类构造方法
D. 子类构造方法的第一条语句也可以通过this调用本类的重载构造方法
16.下列关于方法重载和覆盖的描述,不正确的是__A______
A. 可通过返回值类型来区分是否为重载方法
B. 方法重载可减少记忆方法名称的难度,使程序清晰易读
C. 方法覆盖只能在有继承关系的父子类间
D. 方法覆盖必须保持父类方法的返回值、方法名和形参均不变
17.下列不是实现多态必须条件的是__B______
A. 继承    B. 方法重载    C. 方法覆盖    D. 父类引用变量可引用子类对象
18.Object是Java中所有类的祖先类,其中用来比较两个对象内容是否相等的方法是__A__
A. equals        B.clone        C. compare      D. toString
二、判断题(本大题共14小题,每小题1分,共14分,正确选A,错误选B
19.( B  )把java源文件编译成class字节码文件的JDK命令是java。
20.( A  )Java程序中可包含多个源文件,但每个源文件中只有一个public类。
21.( A  )包含main方法的类叫主类,没有主类程序就无法运行。
22.( B  )不带标号的continue语句可实现跳出所在的那层循环。
23.( A  )方法调用表达式方式适合于有返回值的方法的调用,在调用时实参与形参在
次序、类型和数量上要匹配。
24.( B  )方法覆盖和方法重载都是要求方法同名,因此没有本质区别。
25.( A  )静态成员方法与对象无关,所以不会访问实例数据域。
26.( B  )访问权限最大的是public成员,最小的是protected成员。
27.( A  )this是当前对象的引用,大多数情况下可隐去,但有时需要显式使用。
28.( B  )抽象类不能定义对象引用变量,也不能创建对象。
29.B  )抽象类的子类一定是具体类,但实现接口的类不一定是具体类。
30.( A  )包可以解决命名冲突,不同包中可以包含同名的类。
31.( B  )在Java源文件中,把自己的类装入某个包中所使用的关键字是import,把库中
的类导入到源文件的关键字是package。
32.( A  )this可用来调用本类的重载方法,super可用来调用父类的覆盖方法。
三、程序阅读题(本大题共4小题,每小题5分,共20分)
说明:阅读下面的程序,并写出程序的运行结果。
1. public class Test{
  public static void main(String [] args){
int[] a = {36,21,50,78,19,89,74,33,46,68};
int m = a[0], n = 0;
for(int i=1;i<10;i++)
  if (m < a[i]){m = a[i]; n = i;}
System.out.printf (“m = %d,n = %d\n”, m, n);
}
}
解答:
m = 89, n = 5
2. public class Stat{
  public static void main(String args[ ]){
    int n=0;
String s=”The 30th Olympic games is held in London last summer.;
for (int i=0;i<s.length();i++)
if (s.charAt(i)==m)
n++;
System.out.println(n);
  }
}
解答:
4
3. class Person{
      public Person() {System.out.println(“Person()”); }
  }
  class Teacher extends Person{
    public Teacher(){this(“Teacher(String)”); System.out.println(“Teacher()”);}
      public Teacher(String s){System.out.println(s);}
}
public class Faculty extends Teacher{
      public Faculty(){System.out.println("Faculty()");}
    public static void main(String[] args) {Faculty fa = new Faculty();}
} 
解答:
Person()
Teacher(String)
Teacher();
Faculty()
4.
public abstract class Animal {
  public abstract void sound();
}
class Dog extends Animal{
  public void sound(){System.out.println(Woof woof);}