2024年4月19日发(作者:)

极客营十营第三周考试试卷

总分:100分 时间:120分钟

单选题 ( 共25题)

第1题 (分值:2分)

编译并运行以下程序,以下描述哪个选项是正确的( )

1. class Y{

2. protected String toString(){

3. return ng();}

4. }

A:编译通过运行无异常

B:编译通过但运行时出错

C:行2出错,不能成功编译

D:不能成功编译,行3出错

第2题 (分值:2分)

public class Test{

public static void stringReplace(String text){

text=e('j','L');

}

public static void bufferReplace(StringBuffer text){

text=("c");

}

public static void main(String args[]){

String textString=new String("java");

StringBuffer textBuffer=new StringBuffer("java");

stringReplace(textString);

bufferReplace(textBuffer);

n(textString+textBuffer);

}

}

A:编译并运行输出Lava javac

B:编译并运行输出java java

C:编译并运行输出java javac

D:编译并运行输出 Lava java

第3题 (分值:2分)

以下关于final关键字说法错误的是( )

A:final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性

B:final修饰的类肯定不能被继承

C:final修饰的方法不能被重写

D:final修饰的变量不允许被再次赋值

第4题 (分值:2分)

当编译和运行下面程序时,哪项描述可以最准确的表达发生了什么事情?

public class MyAr{

public static void main(String argv[]) {

MyAr m = new MyAr();

d();

}

public void amethod(){

int i;

n(i);

}

}

A:编译并输出0

B:编译错误

C:编译并输出null

D:运行错误

第5题 (分值:2分)

以下对继承的正确描述是( )。

A:在Java中类只允许单一继承

B:在Java中一个类只能实现一个接口

C:在Java中一个类不能同时继承一个类和实现一个接口

D:在Java中接口只允许单一继承

第6题 (分值:2分)

以下代码运行输出是( )

public class Person{

}

public class Child extends Person{

}

public String grade;

public static void main(String[] args){

}

Person p = new Child();

n();

private String name=”Person”;

int age=0;

A:输出:Person

B:没有输出

C:编译出错

D:运行出错

第7题 (分值:2分)

类A、B定义如下:

1. public class A

2.{ public float aFun(float a, float b) { }

4.}

5.public class B extends A{

6.

7.}

将以下哪种方法插入行6是不合法的。( )

A:float aFun(float a, float b){ }

B:public int aFun(int a, int b) { }

C:public float aFun(float p, float q){ }

D:public int aFun(int a, float b) { }

第8题 (分值:2分)

应使用哪种修饰符定义一个类域或类方法?( )

A:static

B:package

C:private

D:public

第9题 (分值:2分)

假设类X是类Y的父类,下列声明对象x的语句中不正确的是

()。

A:X x = new X() ;

B:X x = new Y() ;

C:Y x = new Y() ;

D:Y x = new X() ;

第10题 (分值:2分)

Given:

class person{

public int addvalue(int a,int b)

{int s; s=a+b; return s; }

}

class child extends parent{}

若要在child类中对addvalue方法进行重写,下面对于child类中的addvalue方法头的描述

哪个是正确的:

A:public int addvalue(int I,int j)

B:public void addvalue()

C:public void addvalue(double i)

D:public int addvalue(int a)

第11题 (分值:2分)

在使用super 和this关键字时,以下描述正确的是( )

A:在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造

方法的第一行,否则编译不通过

B:super()和this()不一定要放在构造方法内第一行

C:this()和super()可以同时出现在一个构造函数中

D:this()和super()可以在static环境中使用,包括static方法和static语句块

第12题 (分值:2分)

覆盖与重载的关系是 ( )

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

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

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

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

第13题 (分值:2分)

给出如下代码:

class Test{

private int m;

public static void fun() {

//

}

}

如何使成员变量m 被函数fun()直接访问?( )

A:将private int m 改为protected int m

B:将private int m 改为 public int m

C:将private int m 改为 static int m

D:将private int m 改为 int m

第14题 (分值:2分)

Given:

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

12. Object obj =new int[] { 1,2,3 };

13. int[] someArray = (int[])obj;

14. for (int i: someArray) (i +“ “)

15. }

What is the result? ( )

A:1 2 3

B:Compilation fails because of an error in line 12.

C: Compilation fails because of an error in line 13.

D: Compilation fails because of an error in line 14.

E: A ClassCastException is thrown at runtime.

第15题 (分值:2分)

关键字supper的作用是

A:用来访问父类的成员变量

B:用来调用父类中被重写的方法

C:用来调用父类的构造函数

D:以上都是

第16题 (分值:2分)

哪段代码填到第16行会抛出异常:astException? ( )

10. interface Foo {}

11. class Alpha implements Foo { }

12. class Beta extends Alpha {}

13. class Delta extends Beta {

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

15. Beta x = new Beta();

16. ___________________________

17. }

18. }

A:Alpha a = x;

B:Foo f= (Delta)x;

C:Foo f= (Alpha)x;

D:Beta b = (Beta)(Alpha)x;

第17题 (分值:2分)

在java 中,下列(

) 类不能派生出子类.

A:public class MyClass{ }

B:class MyClass{ }

C:abstract class MyClass{ }

D:final class MyClass { }

第18题 (分值:2分)

给定如下java代码,编译时会在()出现错误。

class Parent{

}

class Child extends Parent{

public static void main(String args[]){

Parent p1=new Child() ;//第一行

Parent p2=new Parent () ;//第二行

Child c1=new Child() ;//第三行

Child c2=new Parent () ;//第四行

}

}

A:第一行

B:第二行

C:第三行

D:第四行

第19题 (分值:2分)

给定如下java代码,以下()代码行编译会报错。

class MyClass{

void myMethod(final int p){

final int il;

final int i2=p;

i1=20;

i2=20;

}

}

A:final int il;

B:final int i2=p

C:il=20

D:i2=20;

第20题 (分值:2分)

关于被私有访问控制符protected修饰的成员变量,以下说法正确的是()

A:可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B:可以被两种类访问和引用:该类本身、该类的所有子类

C:只能被该类自身所访问和修改

D:只能被同一个包中的类访问

第21题 (分值:2分)

在下面程序的第6行补充上下列哪个方法,会导致在编译过程中发生错误?

1) class Super{

2) public float getNum(){

3) return 3.0f;

4) }

5) public class Sub extends Super{

6)

7) }

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;}

第22题 (分值:2分)

What will be printed when you execute(执行) the following code?

class X {

Y b = new Y();

X() {

("X");

}

}

class Y {

Y(){

("Y");

}

}

public class Z extends X {

Y y = new Y();

Z() {

("Z");

}

public static void main(String[] args) {

new Z();

}

}

Choices( )

A:Z

B:YZ

C:XYZ

D:YXYZ

第23题 (分值:2分)

下列代码的输出结果是

: ( )

class Parent {

void printMe() {

n("parent");

}

}

class Child extends Parent {

void printMe() {

n("child");

}

void printall() {

e();

e();

printMe();

}

}

public class Test_this {