admin 管理员组

文章数量: 1184232


2024年1月4日发(作者:思莱德网上商城)

班级

学号

姓名

-

-------------------------------------装--------------------------------------------订---------------------------------------线-------------------------------------

《Java语言程序设计(二)》期终考查试卷(A卷)

适用专业:

题号

分数

阅卷人

二 三

总分 积分人

一、选择题(本大题共24小题,每小题2.5分,共60分。请将选择题

答案填入下方的表格内)

序号

答案

序号

答案

序号

答案

1

11

21

2

12

22

3

13

23

4

14

24

5

15

6

16

7

17

8

18

9

19

10

20

1、给定如下Java代码,下列( )方法可以加入到Sample类中,并且能够编译正确。(选两项)

public class Sample {

public int getSomething(int d) {

return d;

}

}

A.private int getSomething(int i,String s) { }

B.public void getSomething(int i){ }

C.private int getSomething(byte b){return b;}

D.public double getSomething( ){return 2;}

2、给定如下java代码,编译运行后,将会输出( )结果。

public class Sample{

public double result(double dl,double d2){

return d1

}

public double result(int dl,double d2){

1

return d1>d2?d1:d2;

}

public int result (int d1,int d2){

return d1-d2;

}

private int result(int i){

return i;

}

public static void main(String[] args){

Sample s=new Sample();

n((2,3.0)+",");

n((4.0,4.5)+",");

n((10,9));

}

}

A.3.0,4.0,1 B.2,4.0,1

C.3.0,4.5,1 D.-1,4.0,1

3、在如下所示的Sample类中,共有( )个构造方法。

public class Sample{

private int x;

public Sample(){

x=1;

}

public void Sample(double f){

this.x=(int)f;

}

public Sampple(){

x=2;

}

public Sample(String s){

}

2

}

A.4 B.3 C.2 D.1

4、编译运行如下java代码,以下说法正确的是( )。

class Base {

private String name;

public Base(){

name="Base";

}

public void method(){

n(name);

}

}

class child extends Base{

public Child (){

super("Child");

name="cc";

}

}

public class Sample{

public static void main(String[] args) {

Child c=new Child();

();

}

}

A.发生编译期错误 B.正常运行,输出结果:Base

C.正常运行,输出结果:Child D.正常运行,输出结果:cc

5、构成方法重写的要素不包括( )。(选两项)

A.方法名称相同

C.参数列表相同

B.返回类型相同

D. 在同一个类中

E.存在子类和父类中 F.返回类型不同

6、编译运行如下Java代码,输出结果是( )。

public class Sample {

3

public static void main(String[] args){

Child c=new Child();

();

}

}

class Base extends Object{

private String name;

public Base(){

name=”Base constructor”;

}

public Base(String pName){

Name=pName;

}

public void method(){

n(name);

}

}

class Child extends Base{

public void method(){

n(“Child method”);

}

public Child(){

super(“Child constructor”);

}

}

A.Base constructor

C.Child method

7、公有成员变量MAX是一个int型值,变量的值保持常数值100。在类Constants中,可以使用以下( )声明语句来定义这个变量。

A. public int MAX=100; int MAX =100;

C. public static int MAX=100; final int MAX=100;

8、下面关于Java接口的说法错误的是( )。

4

B.Child constructor

A. 一个Java接口是一些方法特征的集合,但没有方法的实现

B. Java接口中定义的方法在不同的地方被实现,可以具有完全不同的行为

C. Java接口中可以声明私有成员

D. Java接口不能被实例化

9、下面的程序中定义了一个Java接口,其中包含( )处错误。

public interface Utility{

private int MAX_SIZE=20;

int MIN_SIZE=10;

void use(){

n(“using it”);

}

private int getSize();

void setSize(int i);

}

A.1 B.2 C.3 D.4

10、给定如下Java代码,可以填入下划线处的语句是( )。(选三项)

public interface Utility{ }

class FourWheeler implements Utility{ }

class Car extends FourWheeler{ }

class Bus extends FourWheeler{ }

public class Test{

public static void main(String[] args){

}

}

A. Utility car=new Car( ); B. FourWheeler bus=new Bus( );

C. Utility ut=new Utility( ); D. Bus bus=new FourWheeler( );

E. FourWheeler fw=new FourWheeler( );

11、下面的程序的执行结果是( )。

public class Test{

public static void main(String[] args){

new Test().test();

5

}

public void test( ){

try{

(“try”);

}catch(ArrayIndexOutOfBoundsException e){

(“catch1”);

}catch(Exception e){

(“catch2”);

}finally{

n(“finally”);

}

}

}

finally catch1 finally

catch2 finally y

12、下列类中在多重catch中同时使用时,( )异常类应该最后列出。

A. ArithmeticException

C. Exception

B. NumberFormatException

D. ArrayIndexOutOfBoundsException

13、以下代码段正确的是( )。(选二项)

A、try{ B. try{

(“try”); (“try”);

}catch(Exception e){ }

(“catch”);

C、try{ {

(“try”); (“try”);

}finally(Exception e){ }finally{

((“finally” ) ;

} }

14、给定如下Java代码,可以填入下划线处的代码是( )。

import .*;

6

“finally”);

public class Test{

public static void main(String[] args) {

(“A”);

st(“B”);

}

}

A.List list=new ArrayList(); B.List list=new LinkedList();

C.ArrayList list=new ArrayList(); D.LinkedList list=new LinkedList();

15、给定如下的Java代码,编译运行的结果是( )。

import .*;

public class Test {

public static void main(String[] args) {

List list=new ArrayList( );

(“A”);

(2,”B”);

String s=(String)(1);

n(s);

}

}

A.编译时发生错误

C.正确运行,输出:A

B.运行时引发异常

D. 正确运行,输出:B

16、给定如下 Java代码,编译运行的结果是( )。

import .*;

public class Test{

public static void main(String[] args) {

Map map=new HashMap( );

String s=”key”;

(s,”Hello”);

(s,”World”);

n(());

}

7

}

A.编译时发生错误 B.运行时引发异常

C.正确运行,输出:1 D.正确运行,输出:2

17、阅读下面的Java代码,运行结果为( )。

public class Demo{

public void foo(String[] arr){

try{

n();

}catch(NullPointerException e){

n(“in catch one”);

}catch(Exception e){

n(“in catch two”):

}finally{

n(“in finally block”);

}

}

public static void main(String[] args){

new Demo( ).foo(args);

}

}

A. 程序错误,无法编译 B. 0

in finally block

C. in catch one D. in catch two

in finally block in finally block

18、在Java中,类Test的代码如下所示,则编译运行该类的结果为(class Test{

public int changge(int m){

n(“int”);

return 0;

}

public int change(float m){

n(“float”);

8

。 )

return 0;

}

public static void main(String[ ] args){

Test t=new Test( );

int a=(2);

}

}

A. 输出:float B. 输出:int C. 出现编译错误 D. 出现运行时错误

19、分析如下Java代码,如果想在控制台上输出“B类的test( )方法“,则在添加代码处应填入( )。(选二项)

class A( ){

public void test( ){

n(“A类的test( )方法”);

}

}

class B extends A{

public void test( ){

n(“B类的test( )方法”);

}

public static void main(String[ ] args){

//此处添加代码

A. A a=new B( ); B. A a=new A( ); C. B b=new A( ); D. B b=new B( );

( ); ( ); ( ); ( );

20、下列选项中关于Java中super关键字的说法正确的是( )。

A. super关键字是在子类对象内部指代其父类对象的引用

B. super关键字不仅可以指代子类的直接父类,还可以指代父类的父类

C. 子类通过super关键字只能调用父类的方法,而不能调用父类的属性

D. 子类通过super关键字只能调用父类的属性,而不能调用父类的方法

21、在Java语言中,下列关于类的继承的描述,正确的是( )。

A. 一个类可以继承多个父类 B. 一个类可以具有多个子类

9

C. 子类可以使用父类的所有方法 D. 子类一定比父类有更多的成员方法

22、在Java接口中,下列选项中有效的方法声明是( )。(选二项)

A. public void aMethod(); B. void aMethod();

C. void aMethod(){} D. private void aMethod();

23、下面的Java程序编译运行结果是( )。

interface A{

int x = 0;

}

class B{

int x=1;

}

class C extends B implements A {

public void pX(){

n(super.x);

}

public static void main(String[] args) {

new C().pX();

}

}

A. 产生运行期错误 B. 产生编译期错误

C. 程序运行,输出结果为1 D. 程序运行,输出结果为0

24、分析如下Java代码,编译运行后将输出( )。

public Test() {}

static void print(ArrayList al) {

(2);

al = new ArrayList();

(3);

(4);

}

public static void main(String[] args) {

Test test = new Test();

ArrayList al = new ArrayList();

10

(1);

print(al);

n((1));

}

}

A.1 B.2 C.3 D.4

二、程序阅读题(本大题共3小题,每小题7分,共21分)

阅卷人

1、请给出下面这段代码的执行结果,并说明原因。

public class Test{

public static void foo(int i){

try{

if(i==1){

throw new Exception();

}

(“1”);

}catch(Exception e){

(“2”);

}finally{

(“3”);

}

(“4”);

}

public static void main(String[] args){

foo(1);

}

}

2、请说明下面的代码中存在什么样的问题,该如何解决?

public interface Utility{ }

class Phone implements Utility{

void use( ){

n(“using phone”);

}

11

}

public class Test{

public static void main(String[] args){

Utility util=new Phone( );

( );

}

}

3、请指出如下Java代码中存在的错误,并改正。

public class Sample{

public static void main(String[] args){

Child c=new Child( );

}

}

class Base extends Object{

private String name;

public Base( ){

name=”Base”;

}

}

class Child extends Base{

public Child( ){

super(“Child”);

}

}

三、实践题(本大题共2小题,第1题10分,第2题9分,共19分)

阅卷人

1、编写一个类Book,代表教材:

1) 具有属性:名称(title)、页数(pageNum)、类型(type)

2) 具有方法:detail,用来在控制台输出每本教材的名称、页数、类型

3) 具有两个带参构造方法:第一个构造方法中,设置教材类型为“计算机”(固定),其余属性的值由参数给定;第二个构造方法中,所有属性的值都由参数给定

4) 编写测试类BookTest进行测试:

5) 分别以两种方式完成对两个Book对象的初始化工作,并分别调用它们的detail方法,

12

看看输出是否正确

2、阅读如下Java代码,然后请采用面向接口编程的思想,在空白处填写正确的代码

public interface PCI {

void start();

void stop();

}

class SoundCard implements PCI{

public void start() {

13

n("");

}

public void stop() {

n("Sound stop!");

}

}

class NetworkCard implements PCI{

public void start() {

n("");

}

public void stop() {

n("Network stop!");

}

}

public class MainBoard{

public void usePCICard( ______ p) {

();

();

}

}

public class Assembler {

public static void main(String[] args) {

MainBoard mb=new MainBoard();

//在主板上插入网卡

//在主板上插入声卡

}

14

《Java语言程序设计(二)》期终考查试卷(A卷)参考答案

一、选择题(本大题共24小题,每小题2.5分,共60分)

序号

答案

序号

答案

序号

1

CD

11

A

21

2

A

12

C

22

3

C

13

AD

23

4

A

14

D

24

5

DF

15

B

6

C

16

C

7

D

17

B

8

C

18

A

9

C

19

AD

10

ABE

20

A

答案 B AB C B

二、程序阅读题(本大题共3小题,每小题7分,共21分)

1、运行结果:234

原因:进入if语句---〉抛出异常——〉进入catch---〉输出2----〉进入finally--->输出3---〉执行剩余代码---〉输出4

2、Utility接口中不存在use方法;

在Test的main方法中,当把Phone类型的对象向上造型为Utility类型后,只能调用Utility类型中具有的方法,因此();语句出现错误。

两种解决办法:

a) 在Utility中增加方法use();

b)在Test的main方法中这样写:

Phone phone= new Phone();

();

3、Child类的构造方法中调用了父类的带参构造方法,这个构造方法在父类中并没有定义。

三、实践题(本大题共2小题,第1题10分,第2题9分,共19分)

1、class Book{

private String title;

private int pageNum;

private String type;

public Book(String title,int pageNum){

= title;

m = pageNum;

= "计算机";

}

public Book(String title,int pageNum,String type){

= title;

m = pageNum;

= type;

}

15

public void detail( ){

n("书名:"+title+",页数:"+pageNum+",类型:"+type);

}

}

public class BookTest {

public static void main(String[] args) {

Book b1 = new Book("Java入门",270);

Book b2 = new Book("北京生活指南",570,"生活");

();

();

}

2、PCI

PCI nc=new NetworkCard( );

Card(nc);

PCI sc=new SoundCard( );

Card(sc);

16


本文标签: 代码 方法 运行 父类