浙大城市学院计算机期末考卷,浙江大学城市学院 2009— 2010学年第 二 学期期末考试试卷...

诚信应考 考出水平 考出风格

浙江大学城市学院

2009— 2010学年第 二 学期期末考试试卷

《 面向对象程序设计 》

得分

一._填空题_(本大题共14个填空项,每个填空项1分,共14分。)

1.构造方法是一种特殊的成员方法,构造方法名与(1)相同。

2.对于字符串String s1=new String(“ok”); String s2=new String(“ok”);则表达式s1==s2的值为(2),表达式s1.equals(s2)的值为(3)。

3.对于StringBuffer串StringBuffer str = new StringBuffer(“abcdef”); str=str.delete(2,4)执行后str的值为(4)。

4.对于两个int类型变量int m=120, n=240;则m^m的结果为(5),m^n^n的结果为(6)。

5.关键字this(7)出现在构造方法中,(8)出现在实例方法中,(9)出现在类方法中。(填“可以”或“不可以”)

6.在java的源文件中,为说明一个类是属于一个命名为tom.jiafei的包,需要编写的语句是:(10),该语句所在的位置为(11)。

7.如果我们要对一个二进制文件进行读写,可使用java.io包中提供的FileInputStream类和(12)类。

8.LinkedList定义了表示(13)这种数据结构的(14)类。

得分

二.选择题(本大题共30题,每题1分,共30分。)

请选择一个最合适的选项,填入到答题卷中。

1、用Java虚拟机执行类名为Hello的应用程序的正确命令是( )。

A. java Hello.class

B. Hello.class

C. java Hello.java

D. java Hello

2、一个包含Java类A,B,C,且A为主类的源程序,编译产生的类文件是( )。

A. A.class

B. A.class, B.class, C.class

C. A.class, B$.class, C$.class

D. A$.class, B$.class, C$.class

3、设Hello.html文件嵌入一个Applet类Hello,运行这个Applet的命令是( )。

A. appletviewer Hello.html

B. 点击Hello.class

C. appletviewer Hello.class

D. 点击Hello.java

4、下列表达式正确的是( )。

A. byte=340

B. Boolean=1

C. long l=-2f

D. double=0.9239d

5、执行下列代码后,哪个结论是正确的?( )

String[] s = new String[10]

A. s[10]为””

B. s[9]为null

C. s[0]为未定义

D. s.length()为10

6、下列语句不正确的是( )。

A. int a[][] = new int[][3];

B. int a[][]={{1,3}, {2,3,4}, {1,2}};

C. String s[][]=new String[2][];

D. String s[][]={{“can”,“I”}, {“help”,”you”}};

7、分析以下程序的输出结果( )

public class X{

public static void main(String[] args) {

String s1 = new String(“true”);

Boolean b1= new Boolean(true);

if (s1.equals(b1) {

System.out.println(“Equal”);

}

} }

A. 无输出

B. 输出”Equal”

C.在第五行出现编译错误

D. 程序执行后产生异常

8、下述声明中哪一种可防止该类产生子类?( )

A. static class fooBar{ }

B. private class Foobar{ }

C. abstract class FooBar{ }

D. final public class FooBar{}

9、如果要求子类可以在任何包中访问父类中的成员,下面哪一个修饰符是可以达到这个目标的最为严格的修饰符?( )

A. public

B. private

C. Protected

D. 没有任何修饰符

10、下面对methoda()方法的哪一种声明是调用该方法时不需要建立methoda()方法所在类的实例?( )

A. abstract public void methoda();

B. public abstract double methoda();

C. static void methoda(double d1) { }

D. public native double methoda() { }

11、下列哪个不是对方法public void add(int a)的重载( )。

A. public int add(int a)

B. public void add(long a)

C. public void add(int a, int b)

D. public void add(float a)

12、分析下列程序:

1)

class A{

2)

public float getNum( ) {return 3.0f; }

3)

}

4)

public class B extends A{

5)

//这里要插入方法

6)

}

在该程序的第5行中插入下面哪个方法会引起编译错误?( )

A. public float getNum( ) {return 4.0f;}

B. public void getNum( ) { }

C. public void getNum(double d) { }

D. public double getNum(float d) {return 4.0d; }

13、下面对默认构造方法的说法正确的是( )

A. 默认的构造方法会为方法中的变量进行初始化。

B. 编译程序会为每一个类创建默认的构造方法。

C. 默认的构造方法会调用其超类的无参数构造方法

D. 当一个类仅定义了带参数的构造方法,编译程序还是会为这个类创建一个默认的无参数构造方法。

14、Java语言与其他主要语言相比较,独有的特点是( )。

A. 面向对象

B. 多线程

C. 平台无关性

D. 可扩展性

15、下列哪种方法返回String中的字符数?( )

A. size( )

B. length( )

C. width( )

D. girth( )

16. 假设X,Y,Z都是接口,下列哪条是正确的代码( )。

A. public interface A implements X { void aMethod( ) ;}

B. interface B implements Y { void aMethod( );}

C. interface C extends X, Y, Z { void aMethod( ); }

D. interface C extends X { protected void aMethod( ); }

17. 对于每个try块,下列结论正确的是( )。

A. 必须只有一个catch块

B. 必须有至少一个catch块

C. 必须有finally块

D. 必须有try-try-again块

18. 符合对象和类关系的是:  (  )

A、人和老虎B、书和汽车

C、楼和土地D、汽车和交通工具

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

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

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

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

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

20.在Java中,关于final关键字的说法不正确的是( )。

A. 如果修饰变量,则一旦赋了值,就等同一个常量

B. 如果修饰类,则该类只能被一个子类继承

C. 如果修饰方法,则该方法所在的类不能被继承

D. final 关键字既可以修饰成员变量也可以修饰成员方法。

21.设一数组由以下语句定义:int age=new int[10];则数组的第一个元素的正确引用方法为( )

A. age[1] B. Age[0] C. age[] D. age[0]

22.有一JAVA语言定义的类Worker是类Person的子类,Worker的构造方法中有一句”super()”,该语句( )。

A.调用类Worker中定义的super()方法B、调用类Person中定义的super()方法

C.调用类Person的构造方法

D、语法错误

23. 设有数组的定义:char m[]=new char[6],则m.length的值为( )。

A.5

B.6

C. 10

D.12

24. 下列代码哪个是错误的:

A. double a = 1000000000.0;

B. float a = 1000000000;

C. int a = 1000000 ;

D. long a = 100000000000000;

25. 关于Java中的包,提法错误的是:( )

A.一个包中可以有多个不同类名的类

B.一个Java源代码文件中只能有一条package语句。

C.一个包只能有一个public类

D.不同包中的类文件一般需要放到不同的目录下。

26. 下面程序代码的输出是:

int i =98;

i = i>>98<<98;

System.out.println(i);

A. 0

B. 98

C. 99

D.上述答案都不正确

27. 若y的值为3,则Java语句System.out.println(“3+2=”+y+2)

将输出的结果是

A. 3+2=32 B. 3+2=5

C. 3+2=3+2 D. 3+2=3

28. 下面提法错误的是( ):

A.一个包中的公有类对于其它包是可见的(即其它包可访问该公有类)。

B.如果类A是公有类,那么类A所在的源代码文件名须为A.java.

C.非公有类不能被扩展(即不能被继承)。

D.公有类的子类未必一定是公有类。

29. 下列不可作为java语言修饰符的是()

A.eat

B.$1

C._1

D.17ap6

30. 如下代码定义了一个类Test:

class Test {

private int y ;

Test (int x) { y=x ;}

}

现在为Test类生成一个对象,正确的语句是( )。

A.Test t = new Test( ); B. Test t=new Test(10, 20);

C.Test t; D. Test t=new Test(10);

得分

三.程序改错题(本大题共7 题,每题2分,共14分。)

下面所有题目至少包含1处错误,请指出错误及错误原因,并修改这个错误。

1、

public class X{

public static void main(String[] args) {

byte b=127;

byte c=126;

byte d=b+c; }

}

2、

public abstract class Test{

publicabstract void methodA( );

publicabstract void methodB( )

{System.out.println(“Hello”); }

}

3、

class A{

publicint i=0;

publicA(String text)

{ i=1;}

}

publicclass B extends A{

publicB(String text)

{ i=2;}

}

4、

class ExceptionTest{

public static void main(String[] args){

check(-1);

}

static void check(int i) throws Exception{

if( i<0) throw new Exception();

}

}

5、

interface IA{

void show();

void show(int i);

}

class A implements IA{

public void show(int i){

System.out.println("A show()");

}

}

6、class Aaa{

int i;

Aaa(){i=-1; }

Aaa(int a){ i = a;}

Aaa(double d){Aaa((int)d);}

}

7、//包aaa中定义了以下类A

package aaa;

public class A{

void abc(){ System.out.println("abc");

}

}

//缺省包中的类Test

import aaa.A;

class Test{

public static void main(String[] args){

A a = new A();

a.abc();

}

}

得分

四.程序阅读题(本大题共8题,每题3分,共24分。)

1、运行Bclass,输出结果是?

class Aclass{

void go( ) {

System.out.println(“Aclass”);

}

}

public class Bclass extends Aclass{

void go( ) {

System.out.println(“Bclass”);

}

public static void main(String args[]) {

Aclass a = new Aclass();

Aclass a1 = new Bclass();

a.go( );

a1.go( );

}

}

2、运行Example,输出结果是?

public class Example{

String str=new String(“good”);

char[] ch={‘a’,’b’,’c’};

public static void main(String args[]) {

Example ex = new Example();

ex.change(ex.str, ex.ch);

System.out.print(ex.str +“and“);

System.out.print(ex.ch);

}

public void change(String str, char ch[]) {

str =“test ok”;

ch[0] =‘g’;

}

}

3、运行X,输出结果是?

public class X{

private static int a;

public static void main(String[] args) {

modify(a);

System.out.println(a);

}

publicstatic void modify(int a){

a++;

}

}

4、

运行Test,输出结果是?

class A{

publicString toString() {return“4”;}

}

classB extends A{

publicString toString() {return super.toString() +“3”; }

}

publicclass Test{

publicstatic void main(String[] args){

B b= new B();

System.out.println(b.toString());

}

}

5、

运行B,输出结果是?

class A{

A() { System.out.print(“Aclass“);

}

publicclass B extends A{

B()

{System.out.print(“Bclass“);}

publicstatic void main(String args[]) {

A a = new A();

A a1= new B();

}

}

6、运行B,输出结果是?

public class A{

String a=”hello”;

}

publicclass B extends A{

String a =“aaa”;

publicstatic void main(String args[]) {

A bar = new B();

System.out.println(bar.a);

}

}

7、运行Test,输出结果是?

class Test extends TT{

public static void main(String args[]) {

Test t = new Test(“Tom”);

}

publicTest(String s) {

super(s);

System.out.println(“How do you do?”);

}

publicTest( ) {this(“I am Tom”);}

}

classTT{

publicTT( ) { System.out.println(“What?”); }

publicTT(String s) {

This();

System.out.println(“I am“+s);

}

}

8、

运行Test,输出结果是?

abstract class Shape{

abstract void draw();

void doSomething(){draw();}

}

class Rect extends Shape{

void draw(){System.out.println("rect");}

}

class Triangle extends Shape{

void draw(){System.out.println("triangle");}

}

class Test{

static void f(Shape a){a.doSomething();}

public static void main(String[] args){

f(new Triangle());

Shape a = new Rect();

a.doSomething();

}

}

得分

五.编程题(本大题共3题,第1题2分,第2题11分,第3题5分,共18分。)

1.定义一个接口Showable,要求如下:

(1)

接口名:Showable。该接口是public接口

(2)

有一个抽象方法show()。

2.编写一个Student类,要求如下

(1)类名:Student,该类为public,表示学生信息

(2)该类实现第1题所定义的Showable接口。

(3)该类包含String类型的实例变量:ID(表示学号)、Name(表示姓名),以及double类型的实例变量:English、Math、Computer、Sum、Average(分别表示英语、数学、计算机的成绩以及3门课的总成绩、平均成绩),以上成员变量均为private权限。

(4)定义无参数的构造方法,将Name设置为“无名氏”。

(5)定义包含5个参数的构造方法,通过5个参数设置对象的学号、姓名以及三门课的成绩。

(6)定义并实现计算总成绩方法getSum()和计算平均成绩方法getAve()。

(7)实现Showable接口的Show()方法,屏幕输出字符串:“本科生xxx”。(xxx为学生姓名)

3.将上题Student类扩展成研究生类Graduate。要求如下:

(1)增加一个String类型的实例变量Major(专业),增加一个double类型的实例变量Analysis(数值分析成绩)

(2)覆盖父类的getSum()和getAve()方法,求4门课的总成绩和平均成绩。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值