2024年3月28日发(作者:)

2013—2014 学年第 2 学期 Java程序设计课程考试卷(期中考试)

北华航天工业学院2013—2014学年第 2 学期

Java程序设计》期中考试卷

考核形式:开卷、闭卷 班级: 姓名: 学号:

题号

得分

十一

总分

一、填空(每空1分,共15分)

1.Java源程序的扩展名是 .java ,经过编译后的程序的扩展名是 .class 。

2.Java程序分为两种,分别是 Java Application 和 Java Applet 。

3.类是在一组对象的基础上,通过抽象和概括获得的一个概念,其内部封装了该类对象共有的 方法

和 属性 。

4.Java的编译器是 javac ,解释器是 java 。

5.int x=5,y=3,z=2;boolean f=x++>--y||z-->y;则f的值是 true ,y的值是 2 。

6.顺序执行下面两个语句,输出的结果是: 9 。

String s= “欢迎学习JAVA!”;

n(S.1ength( ));

7.在Java类的内部嵌套定义的类称为 内部类 。

8.面向对象编程的三大特性是 封装性 . 继承性 . 多态性 。

二.单选(每题2分,共30分)

1.Java Application合法的程序入口点是( B )。

A .public static void main(){}

B .public static void main(String [] args) {}

C.public static int main(String [] args) {}

D. public void main(String args[]){}

2.下列标识符中,正确的是( B )。

A.class B.$_Money C.$-money D.2-Foward

3.下列哪个概念是面向对象和面向过程程序设计所共有的( B )。

A.继承 B.流程控制 C.抽象 D.封装

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

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

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

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

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

12

页 第

1

2013—2014 学年第 2 学期 Java程序设计课程考试卷(期中考试)

5.以下关于构造函数的描述错误的是( A )。

..

A.构造函数的返回类型只能是void型。

B.构造函数必须与类名相同。

C.构造函数的主要作用是完成对类的对象的初始化工作。

D.一般在创建新对象时,系统会自动调用构造函数。

6.以下说法错误的是( C )。

..

A.super关键字不仅可以调用父类的构造方法,也可以调用父类的其它成员。

B. super()关键字调用父类构造方法时,默认写在子类构造方法的第一行,如果父类定义有参数的构造方

法而没有定义无参数的构造方法,则会报错。

C.super()关键字调用父类构造方法时,默认写在子类构造方法的第一行,如果父类没有定义构造方法,

则会报错。

D.super()关键字调用父类构造方法时,默认写在子类构造方法的第一行,如果父类定义了无参数的构造

方法,则不会报错。

7.函数public void aMethod(){...}的重载函数是( C )。

A.void aMethod( ){...}

B.public int aMethod ( int m){...}

C.public void aMethod ( int n){...}

D.public int aMethod(int a){...}

8.以下关于接口的定义,正确的是( B )。

A.interface B

{ void print() { } ;}

B.abstract interface B

{ void print() ;}

C.interface B

{ void print(){};}

D.abstract interface B extends A1,A2 //A1,A2为已定义的接口

{ abstract void print(){ };}

9.有以下程序片段,下列选项不能放入(1)位置的是( D )。

(1)

public class Interesting{

//do sth

}

A.import .*; B.package mypackage;

C.class OtherClass{ } D.public class MyClass{ }

10.程序代码如下,则(1)处不能使用的语句是( C )。

12

页 第

2

2013—2014 学年第 2 学期 Java程序设计课程考试卷(期中考试)

public class A {

}

A.n(a.i);B.1(); C.1(); D.2()

11.以下说法错误的是 ( B )。

..

A.JAVA的RuntimeException异常,程序员可以不处理,抛给JVM处理。

B.JAVA的异常是对客观世界存在的问题进行封装,当问题发生生的时候,以对象的形式抛出,程序员必

须对抛出的异常进行处理,否则可能会对系统有较大破坏或有较坏的预期结果。

C.异常处理需要有针对性,不写处理语句,或是只打印简单的异常信息都是不合适的。

D.异常是指运行时发生的意外情况。

12.有如下代码段:

1)

2) { if(unsafe()){//do something…}

3) else if(safe()){//do the other…}

4) }

其中,方法unsafe() 将抛出IOException, 能填入第1行的选项是( C )。

A.public IOException methodName()

C.public void methodName()

C.public void methodName() throws IOException

D.public void methodName() throw IOException

13.关于输入/输出流的说法,错误的是( D )

..

A.InputStream是一个抽象类,是所有输入流的父类,该类定义了自字节输入流的共性操作,它有很多

子类完成字节流的相关输入工作,如FileInputStream和SequenceInputStream类。

B.字节流和字符流都有缓冲流,它们的主要功能是增设缓冲区,提高数据的读写效率。

C.一个对象若想串行化,用于创建对象的类,需要实现Serializable接口。

D.一个实现Serializable接口,则对象中的所有成员在串行化后,必须永久保存下来。

14.下列说法错误的是( A )

..

A.JAVA中所有的类对象都可以实现串行化。

B.DataInputStream可以向其指向的文件中直接写入基本数据类型的数据,如double ,int。

12

页 第

3

int i;

static String s;

void method1() { }

static void method2() { }

public static void main(String[] args) {

}

A a=new A();

(1)

2013—2014 学年第 2 学期 Java程序设计课程考试卷(期中考试)

C.RandomAccessFile可以实现文件的随机访问。

D.FileWriter类在向文件写入数据后,需要调用flush()或close()方法才能将数据写入到文件中。

15.下列说法错误的( D )

..

A.缓冲流向文件写输入数据时,不建议通过write(“rn”)这种方式来实现换行,因为只Windows平台下

的换行,Linux平台下不支持,这样的结果是程序的可移植性降低。

B.SequenceInputStream可以将多个流合并,如果要将多个文件合并,使用该流会简化问题。

C.InputStreamReader是一个字符流,它可以将字节流转换为字符流,典型的应用如将这个标

准输入转换为字符流。

D.使用各种流不需要进行异常处理。

三.判断题(每题1分,共5分)

1.无论Java源程序包含几个类的定义,若该源程序文件以命名,编译后生成的就只有一个名为A

的字节码文件。 ( × )

2.Java的各种数据类型所占用的内存长度与具体软硬件环境无关。 ( √ )

3.即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参的,函数体

为空。 ( √ )

4.在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之

后只能对应一个catch语句。 ( × )

( × ) 5.Java中类的层次与包的层次无关。

四.程序阅读题(每题2分,共20分)

1.写出运行结果。

class TwoObjects {

}

答案如下:

true

false

true

2.写出运行结果。

public static void main(String[] args) {

}

String s1="Hello";

String s2="Hello";

n(s1==s2);

s1=new String("Hello");

s2= new String("Hello");

n(s1==s2);

n((s2));

12

页 第

4

2013—2014 学年第 2 学期 Java程序设计课程考试卷(期中考试)

class First {

First() {

n("in First");

}

First(int i) {

n(i + "in First");

}

}

public class Second extends First {

Second() {

n("in Second");

}

Second(int i) {

n(i +" in Second");

}

public static void main(String[] args) {

Second mine = new Second(5);

}

}

答案如下:

in First

5 in Second

3.写出运行结果。

class F508 {

int fun(int i, int j) {

n(i+j);

return i + j;

}

}

class S508 extends F508 {

int fun(int i, int j){

n(i*j);

return i*j;

}

double fun(double i, int j) {

n(i+j);

return i+j;

}

12

页 第

5

2013—2014 学年第 2 学期 Java程序设计课程考试卷(期中考试)

}

class A508 {

public static void main(String[] args) {

F508 f = new F508();

(2,5);

S508 s = new S508();

(2,5);

(2.2,5);

f = s;

(2,5);

}

}

答案如下:

7

10

7.2

10

4.写出运行结果。

public class TryCatchFinally {

static void Proc(int sel) {

try {

if (sel == 0) {

n("no Exception ");

return;

} else if (sel == 1) {

int i = 0;

int j = 4 / i;

}

} catch (ArithmeticException e) {

n("Catch");

} catch (Exception e) {

n("Will not be executed");

} finally {

n("finally");

}

}

public static void main(String args[]) {

Proc(0);

Proc(1);

12

页 第

6