一、选择题(本题共20小题,每小题1分,共20分)
得分 评卷人 1. 下列( C )不是合法的标识符?
(A)$million (B)$_million (C)2$_million (D)$2_million 2. 下列关于基本数据类型的说法中,不正确的一项是( D )。
(A)boolean类型变量的值只能取真或假 (B)float是带符号的32位浮点数 (C)double是带符号的64位浮点数 (D)char是8位Unicode字符 3.下列循环体执行的次数是( C )。
int y=2, x=4;
while(--x != x/y){ } (A)1 (B)2 (C)3 (D)4
4. 假设a是int类型的变量,并初始化为1,则下列( D )是合法的条件语句?
(A)if(a){} (B)if(a<<=3){} (C)if(a=2){} (D)if(true){} 5. 下列哪种类成员修饰符修饰的变量只能在本类中被访问?( D )
(A)protected (B)public (C)default (D)private 6. 下面关于类的说法,不正确的是( C )。 (A)类是同种对象的集合和抽象 (B)类属于Java语言中的复合数据类型 (C)类就是对象 (D)对象是Java语言中的基本结构单位
7. 为AB类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为( D )
(A)abstract void f() (B)public void f() (C)final void f() (D)static void f() 8. 构造函数何时被调用? ( A ) A、创建对象时 B、类定义时
C、使用对象的方法时
D、使用对象的属性时
9. 关于继承的说法正确的是: ( B) A、子类将继承父类所有的属性和方法。 B、子类将继承父类的非私有属性和方法。 C、子类只继承父类public方法和属性 D、子类只继承父类的方法,而不继承属性 10. 覆盖与重载的关系是 ( A )
A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中 B.覆盖方法可以不同名,而重载方法必须同名
C.final修饰的方法可以被覆盖,但不能被重载 D.覆盖与重载是同一回事
11. 异常包含下列哪些内容? ( D ) A.程序执行过程中遇到的事先没有预料到的情况 B.程序中的语法错误 C.程序的编译错误 D.以上都是
12. 对于已经被定义过可能抛出异常的语句,在编程时: ( A ) A、必须使用try/catch语句处理异常,或用throws将其抛出 B.如果程序错误,必须使用 try/catch语句处理异常 C.可以置之不理
D.只能使用try/catch语句处理
13. 字符流与字节流的区别在于( D ) A.前者带有缓冲,后者没有 B.前者是块读写,后者是字节读写 C. 二者没有区别,可以互换使用
D. 每次读写的字节数不同
14.下列哪个类不属于字节流 ( A ) A、InputStreamReader B、BufferedInputStream C、FileInputStream D、OutputStream
15. 下列说法中,错误的一项是( A )。 A.线程一旦创建,则立即自动执行
B.线程创建后需要调用start()方法,将线程置于可运行状态 C.调用线程的start()方法后,线程也不一定立即执行 D.线程处于可运行状态,意味着它可以被调度 16. 下列说法中,错误的一项是( A )。 A.Thread类中没有定义run()方法 B.可以通过继承Thread类来创建线程C.Runnable接口中定义了run()方法 D.可以通过实现Runnable接口创建线17. 在以下( C )情况下,线程就进入可运行状态 A、线程调用了join()方法时 B、线程调用了sleep()方法 C、线程调用了yield()方法时 D、时以上都是
18. 进行Java基本GUI设计需要用到的包是( C )。 A.java.io B.java.sql C.java.awt D.java.rmi 19. 声明并创建一个按钮对象b,应该使用的语句是( A )
A、Button b=new Button(); B、button b=new button();
if(__arr[k] < arr[k-1] ____) { C、Button b=new b(); D、b.setLabel(“确定”);
temp = arr[k-1]; 20. 定义一个接口必须使用的关键字是( C )
_ arr[k-1]=_arr[k] ___; A、public
B、class
C、interface
D、static
arr[k] = temp; }
}
题号 1 2 3 4 5 6 7 8 9 10 } }
答案 8. 12、下面程序段的执行结果是(6 5 4 3 2)
int a[] = { 2, 3, 4, 5, 6 };
题号 11 12 13 14 15 16 17 18 19 20 for (int i = a.length - 1; i >= 0; i--) 答案
System.out.print(a[i] + \);
二、填空题(本题共8个空,前面6空每空1分,后面2空为程序代码四、读程序写结果。(本题共2小题,每题6分,共12分)
填空每空4分,共14分)
得分 评卷人 得分 评卷人 1. 以下程序:
public class Person {
String name; 1. Java源程序文件和字节码文件的扩展名分别为.class和 .java 。 int age;
2. 导入mypackage包中的所类的命令是( import mypackage.*; )。 public Person(String name, int age) { 3. 所有的构件都可以通过 add() 方法向容器中添加构件。
this.name = name; this.age = age; 4. 异常处理是由try、(catch)和finally块三个关键所组成的程序块。
}
5. 定义类时需要class关键字,继承类时需要extends关键字,实现接口时需要关 public static void main(String[] args) { 键字 implements 。
Person c = new Person(\, 17);
6. 如果将类MyClass声明为public,它的文件名称必须是(MyClass.java)才能正常 System.out.println(c.name + \ + c.age + \); 编译。
}
7. .已知已经存在一数组,以下是一成员方法,当调用该成员方法时可以实现对数组进行冒泡排
}
序,请将代码补充完整。
【运行结果】 Peter is 17 years old!_ public static void sort(int arr[]) {
int i,k,temp;
2、以下程序:
int len = arr.length; public class Course { for(int i=0; _i<_len_____;i++) { private String cNumber; for(int k=len-1; k>i; k--) {
private String cName;
《java程序设计》 A卷
第3页,共14页
第4页,共14页
………○…………题…………答…………要…………不…………内…………线…………封…………密…………○………
private int cUnit;
public Course(String number, String name, int unit) { cNumber = number; cName = name; cUnit = unit;
}
public void printCourseInfo() {
System.out.println(\课程号:\ + cNumber + \课程名:\ + cName + \学分:\+ cUnit); }
}
class CourseTest { public static void main(String[] args) { Course c;
c = new Course(\, \, 3); c.printCourseInfo(); }
}
【运行结果】 课程号:101 课程名:ASP 学分:3_
五、程序改错题(每个错误4分,共 16 分)
得分 评卷人
1. 1 已知以下程序功能是实现求一个数组的长度,并求其平均数,请改正其中的两处错误
public class ac6_7 {
static double average(double ascore[],int len) { double aaver=0;
for(int i=0;i>len;i++)
aaver = aaver+ascore[i]; aaver = aaver/len; return aaver; }
public static void main(String args[]) {
int i;
double aver1;
double s1[] = {90,56,86.5,87,99,67.5,65,80}; System.out.println(\ aver1 = average(s1,s1.length); System.out.println(\
}
}
(1)_____第4行i>len改为i (2)__第13行改成___System.out.println(\ 2、 下列源程序oushu.java是实现2+4+6+…+100的和。 2 public class TestThread1 { public static void main(String args[]) { Runner1 r = new Runner1(); r.start(); for(int i=0; i<100; i--) { System.out.println(\ } } } class Runner1 extends Runable { public void run() { for(int i=0; i<100; i++) { System.out.println(\ } } (1)第5行i++改为i-- (2)第10行extends Runable改为extends Thread 六、程序编程题(本题共2小题,共23分) 得分 评卷人