搜档网
当前位置:搜档网 › 面向对象期末测试题(带答案).doc

面向对象期末测试题(带答案).doc

面向对象期末测试题(带答案).doc
面向对象期末测试题(带答案).doc

济南大学2009~2010 学年第二学期课程考试试卷

课 程 java 面向对象程序设计 授课教师 考试时间 考试班级 学 号 姓 名

……

……

…………………………装………………

…………订…………………

……

…线

……

……

……

……

……

……

……

C.一个if语句只能有一个else if语句与之对应

D.else if结构中必须有default语句

5.while循环和do…while循环的区别是:(D)

A.没有区别,这两个结构任何情况下效果一样

B.while循环比do…while循环执行效率高

C.do…while循环执行次数可能为0

D.while循环执行次数可能为0

6.关于for循环和while循环的说法哪个正确?(B)

A.while循环先判断后执行,for循环先执行后判断。

B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换

D.两种循环结构中都必须有循环体,循环体不能为空

7.下列修饰符中与访问控制无关的是(D)

A.private B.public

C.protected D.final

8.方法内的形参:(B)

A.必须定义多个形参B.可以没有

C.至少有一个D.只能是简单变量

9.throws的作用:(A)

A.表示方法可能会抛出例外

B.表示后面是方法的输出量

C.方法的标志,每个方法都必须有

D.没有意义

10.在Java语言中,整型常量123占用的存储字节数是:(C)A.1B.2

C.4 D.8

11.关于对象成员占用内存的说法哪个正确?(B)

A.同一个类的对象共用同一段内存

B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间

C.对象的方法不占用内存

D.以上都不对

12.return语句:(C)

A.只能让方法返回数值B.方法都必须含有C.方法中可以有多句return D.不能用来返回对象13.下列说法哪个正确?(C)

A、一个程序可以包含多个源文件

B、一个源文件中只能有一个类

C、一个源文件中可以有多个公共类

D、一个源文件只能供一个程序使用

14.关于方法main()的说法哪个正确?(C)A.方法main()只能放在公共类中

B.main()的头定义可以根据情况任意更改

C.一个类中可以没有main()方法

D.所有对象的创建都必须放在main()方法中

15.构造函数何时被调用?(A)

A、创建对象时

B、类定义时

C、使用对象的方法时

D、使用对象的属性时16.抽象方法:(c)

A、可以有方法体

B、可以出现在非抽象类中

C、是没有方法体的方法

D、抽象类中的方法都是抽象方法

17.关于继承的说法正确的是:(B)

A、子类将继承父类所有的属性和方法。

B、子类将继承父类的非私有属性和方法。

C、子类只继承父类public方法和属性

D、子类只继承父类的方法,而不继承属性

18.关于构造函数的说法哪个正确?(C)

A、一个类只能有一个构造函数

B、一个类可以有多个不同名的构造函数

C、构造函数与类同名

D、构造函数必须自己定义,不能使用父类的构造函数

19.关于super的说法正确的是:B

A、是指当前对象的内存地址

B、是指当前对象的父类对象的内存地址

C、是指当前对象的父类

D、可以用在main()方法中

20.覆盖与重载的关系是(A)

A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中

B.覆盖方法可以不同名,而重载方法必须同名

C.final修饰的方法可以被覆盖,但不能被重载

D.覆盖与重载是同一回事

21.下列关于finally的说法正确的是?(C)

A.无论程序是否找到合适的例外控制器,都会去执行finally语句

B.finally语句应该放在所有例外控制器的最前面

C.如果程序在前面的例外控制器中匹配到了合适例外,就不再执行finally语句D.如果程序在前面的例外控制器中匹配到了多个合适的例外,就不再执行finally语句22.对于已经被定义过可能抛出例外的语句,在编程时:(A)

A、必须使用try/catch语句处理例外,或用throws将其抛出

B.如果程序错误,必须使用try/catch语句处理例外

C.可以置之不理

D.只能使用try/catch语句处理

23.下列哪个关键字用于实现接口(A)

A.implements B.implement

C. import

D. imports

24.字符流与字节流的区别在于(B)

A.前者带有缓冲,后者没有

B.前者是块读写,后者是字节读写

C. 二者没有区别,可以互换使用

D. 每次读写的字节数不同

25.下列流中哪个不属于字符流(D)A.InputStreamReader

B.BufferedReader

C. FilterReader

D. FileInputStream

三、程序阅读与填空题(每题6分,共30分)

1. 阅读程序给出结果

下列程序段用来计算Fibonacci序列的第0,1,2,…各项

public class Fibonacci {

public static void main(String args[]) {

System.out.println("Fibonacci 第4项="+(1)fib(3));

}

static int fib(int n) {

if (n==0||n==1) {

return n;

}

else {

int sum=fib(n-1)+fib(n-2);

return sum;

}

}

}

输出结果为:

(2)2

2. 多线程CPU调度

// TwoThreads.java源代码如下:

public class TwoThreadsDemo

{

public static void main(String[] args)

{

new SimpleThread("Cat"). Run()(1);

new SimpleThread("Mouse"). Run()(2);

}

}

class SimpleThread extends Thread

{

public SimpleThread(String str)

{

super(str);

}

public void run()

{

for (int i=0;i<10;i++)

{

System.out.println(i+" "+getName());

try

{

sleep((long)(Math.random()*1000));

}catch (InterruptedException e){}

}

System.out.println("DONE! "+getName());

}}

3. 按注释提示完成文件复制的程序

//FileStream源代码如下:

import java.io.*;

class FileStream {

public static void main(String args[]) {

try{

File inFile=new File("file1.txt"); //指定源文件

File outFile=new File("file2.txt"); //指定目标文件

FileInputStream fis=(1)new FILEinputSream(infile);

FileOutputStream fos=new FileOutputStream(outFile);

int c;

//逐字节从源文件中输入,再输出到fos流

while((c=fis.read())!=-1)

(2)fos.write(fis,0,c) ;

fis.close();

fos.close();

}

catch(Exception e) {

System.out.println("FileStreamsTest: "+e);

}

}

}

4. 阅读程序,给出结果

//B.java源代码如下:

class A{

int x=100;

}

class B extends A{

int x=200;

void prt(){

System.out.println("SubClass: "+x);

System.out.println("SuperClass: "+super.x);

}

public static void main(String args[]){

new B().prt();

}

}

输出结果是

(1)200

(2)100

5. 阅读程序,给出结果:

// AbstractClassDemo.java源代码如下:

abstract class Shape { //定义抽象类Shape和抽象方法display

abstract void display();

}

class Circle extends Shape {

void display() { //实现抽象类的方法

System.out.println("Circle");

}

}

class Rectangle extends Shape {

void display() { System.out.println(“Rectangle”) //实现抽象类的方法System.out.println("Rectangle");

}

}

class Triangle extends Shape {

void display() { //实现抽象类的方法

System.out.println("Triangle");

}

}

public class AbstractClassDemo{

public static void main(String args[]){

(new Circle()).display(); //定义无名对象来调用对应的display方法

(new Rectangle()).display();

(new Triangle()).display();

}

}

输出结果是:

(1)circle

(2)rctanglee

(3)triangle

相关主题