2024年5月7日发(作者:)

取证考题

一、单选题

1. 下列关于JDK、JRE 和JVM 的描述。哪项正确?【软件开发Java】

A. JDK 中包含了JRE,JVM 中包含了JRE

B. JDK 中包含了JRE,JRE 中包含了JVM

C. JRE 中包含了JDK,JVM 中包含了JRE

D. JRE 中包含了JDK,JDK 中包含了JVM

2. 以下关于Applet的描述,哪项错误?

A. 一个Applet就是一段Java程序

B. Applet是一种特殊的Java程序,它需要运行在Web服务器上

C. Applet是一种特殊的Java程序,它需要运行在Web浏览器上

D. Applet是一种Java SE平台的应用程序

3. 在类Acoount 中,正确引入类t 的语句是哪一项?

A. import Student;

B. import school;

C. import school.*;

D. package t

4. 用于编译Java源文件的JDK工具是?

A. javac

B. jdb

C. java

D. junit

5. 下列有关类、对象和实例的叙述,正确的是哪一项?

A. 类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别

B. 类是对象的抽象,对象是类的具体化,实例是对象的另一个名称

C. 对象是类的抽象,类是对象的具体化,实例是对象的另一个名称

D. 类是对象的抽象,对象是类的具体化,实例是类的另一个名称

6. 以下创建类的代码中,哪项是正确的?

A. class Student{

String name;

String getName(){

return name;

}

}

B. String name;

class Student{

String getName(){

return name;

}

}

C. class Student{

void name;

String getName(){

return name;

}

}

D. class Student{

String name;

getName(){

return name;

}

}

7. 下列关于Java对象清除的叙述正确的是哪项?

A. 对象被创建后,立刻变成垃圾对象

B. 任何不再被引用的对象都是垃圾收集的对象

C. 一旦对象失去引用,垃圾收集器立刻把它从内存中清除

D. Java对象的清除必须自己手动处理

8. 下列哪项是String的字面量?

A. “Hello”

B. „world‟

C. u2345

D. new String(“good”)

9. 现有:

1. class WideLoad {

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

3. float f = 3.14f;

4. new WideLoad().doIt(f);

5. }

6. void doIt(Float f) {

7. n("Float");

8. }

9. void doIt(double d) {

10. n("double");

11. }

12. }

结果为:

A.Float

B. double

C. 编译失败。

D. 输出不可预料。

E. 运行时异常被抛出。

10. 现有:

1. class Parser extends Utils {

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

3. (new Parser().getInt("42"));

4. }

5. int getInt(String arg) {

6. return nt(arg);

7. }

8. }

9. class Utils {

10. int getInt(String arg) throws Exception { return 42; }

11. }

结果为:

A. 42

B. 编译失败。

C. 无输出结果。

D. 运行时异常被抛出。

11. 下述代码执行后,有几个引用变量和几个对象?

Student stu = new Student(“Mike”);

Student stua;

Stua = stu;

A. 2个引用变量,1个对象

B. 1个引用变量,1个对象

C. 2个引用变量,2个对象

D. 1个引用变量,2个对象

12. 类Teacher:

class Teacher{

String name;

float salary;

Teacher(String name){

= name;

}

Teacher(String name,float salary){

= name;

= salary;

}

}

执行语句Teacher t = new Teacher(“Tom”,2000.0f);后,字段salary的值是哪一项?

A. 2000

B. 0.0f

C. null;

D. 2000.0f

13. Java语言中表达式-12>>3的结果是哪项?

A. -4

B. -9

C. -1

D. -2

14. 程序:

class TestApp{

public static void main(String[] args){

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

(i+1);

n(i);

}

}

上述程序运行后的结果是哪项?

A. 123456

B. 123455

C. 123450

D. 编译错误

15. 程序:

class TestApp{

public static void main(String[] args){

n(multiply(2,3,4,5));

}

public int multiply(int… nums){

int result = 1;

for(int x :nums)

result *= x;

return result;

}

}

程序运行后的输出是哪项?

A. 14

B. 编译错误

C. 120

D. 24

16. 程序:

class DemoApp{

public static void main(String[] args){

int x = 5;

int y = ++x + x++;

n(“y=”+y+”,x=”+x);

}

}

以上程序运行后的输出结果是哪项?

A. y=10,x=5

B. y=11,x=6

C. y=12,x=7

D. y=11,x=7

E. y=12,x=6

17. 程序:

class TestApp{

public static void main(String[] args){

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

if(i==3)

break;

(i);

}

}

}

程序运行后的输出是哪项?

A. 0123

B. 012

C.

D. 012456789

18. 表达式5 + 10 % 7 + 3的值是哪项?

A. 5

B. 9

C. 11

D. 4

E. 5

19. 以下哪项是合法的数组声明?

A. char s[];

B. char s;

C. char s[10];

D. char[10] s;

20. 已知数组array,其最后一个元素的下标是?

A.

B.

C. -1

D. -1

21. 以下关于数组的叙述,哪项错误?

A. 数组需使用new关键字来实例化,实例化后的数组,其元素具有初始值。

B. 基本数据类型的数组位于堆栈中,而对象类型的数组位于堆中。

C. 数组一经实例化后,其长度无法再改变。

D. 数组元素的起始下标是0。

22. 在子类中调用父类中被覆盖的方法时需要使用哪项关键字?

A. new

B. this

C. super

D. 以上都不是

23. 现有

public class Pet{

private String name;

public Pet(){

(1);

}

public Pet(String name){

(2);

}

}

public class Dog extends Pet{

public Dog(){

(4);

}

public Dog(String name){

super(name);

(3);

}

}

执行new Dog(“棕熊”);后程序输出是哪项?

A. 33

B. 13

C. 23

D. 123

24. 现有:

2. class Cat {

3. Cat(int c) { ("cat" + c + " "); }

4. }

5. class SubCat extends Cat {

6. SubCat(int c) { super(5); ("cable "); }

7. SubCat() { this(4); }

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

9. SubCat s = new SubCat();

10. }

11. }

结果为:

A. cat5

B. cable

C. cable cat5

D. cat5 cable

E. 编译失败

F. 运行时异常被抛出

25. 现有:

1. class Super {

2. protected int a;

3. protected Super(int a) {

4. (this.a); this.a = a; }

5. }

6. class Sub extends Super {

7. public Sub(int b) { super(b); a = super.a;}

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

9. new Sub(7).go();

10. }

11. void go() { (this.a); }

12. }

结果为:

A. 00

B. 07

C. 70

D. 77

E. 编译失败

F. 运行时异常被抛出

26. 类:

class TestApp{

static{

(2);

}

public TestApp(){

(1);

}

}

当执行new TestApp()后程序的输出是哪项?

A. 1

B. 12

C. 22

D. 2

E. 21

27. 现有:

1. interface Animal {

2. void eat();

3. }

4.

5. // insert code here

6.

7. public class HouseCat extends Feline {

8. public void eat() { }

9. }

和五个声明:

abstract class Feline implements Animal { }

abstract class Feline implements Animal { void eat(); }

abstract class Feline implements Animal { public void eat(); }

abstract class Feline implements Animal { public void eat() { } }

abstract class Feline implements Animal { abstract public void eat(); }

分别插入到第5行,有几个可以通过编译?

A. 0

B. 1

C. 2

D. 3

E. 4

F. 5

28. 所有异常的父类是哪项?

A. Exception

B. Error

C. RuntimeException

D. Throwable

29. 在方法的声明中,要求该方法必须抛出异常时使用哪个关键字?

A. throws

B. catch

C. finally

D. throw

30. 现有:

public class TestApp{

public static void main(String[] args){

try{

int i = 0;

int j = 1 / i;

n(“1”);

}catch(Exception e){

(“3”);

}finally{

(“4”);

}

}

}

上述程序运行后的输出是哪项?

A. 4

B. 34

C. 43

D. 14

31. 我们定义一个Account类来描述银行账户,银行账户有账户名、金额等属性特征,同

时有存款、取款等行为特征,下述代码适合描述的是哪项?

A. class Account{

String name; //账户

String amount; //金额

Account(String name){ }

void deposit(double mount){ //存款

}

void withdraw(double mount){ //取款

}

}

B. class Account{

String name; //账户

double amount; //金额

Account(double amount){ }

void deposit(double mount){ //存款

}

void withdraw(double mount){ //取款

}

}

C. class Account{

String name; //账户

double amount; //金额

Account(String name){ }

void deposit(double mount){ //存款

}

void withdraw(double mount){ //取款

}

}

D. class Account{

String name; //账户

double amount; //金额

Account(String name){ }

void deposit(){ //存款

}

void withdraw(){ //取款

}

}

32. 程序:

class TestReference{

public static void main(String[] args){

int x=2;

TestReference tr = new TestReference();

(x);

(x);

(x);

}

public void change(int num){

num = num + 1;

}

}

程序运行后的输出是哪项?

A. 23

B. 21

C. 22

D. 编译错误

33. 现有:

public interface A {}

以下哪项声明是合法的?

A. A a = new A();

B. A[] a = new A[];

C. A[] a = new A[10];

D. 以上皆错

34. 为将数组myArray的长度由6改为10,现采取以下编码:

int[] myArray = new int[6];

myArray = new int[10];

代码执行后,以下叙述哪项是正确的?

A. 数组myArray的长度已由6改为10,其中前6个元素的值不变,后四个元素的值为空。

B. 数组myArray的长度已由6改为10,其中前6个元素的值不变,后四个元素需再经过

初始化后才能使用。

C. 数组myArray的长度已由6改为10,原来6个元素的值全部丢失。

D. 数组myArray的长度没有变化。

35. public class Parent{

public void change(int x){}

}

public class Child extends Parent{

//覆盖父类change方法

}

下列哪个声明是正确的覆盖了父类的change方法?

A. protected void change(int x){}

B. public void change(int x, int y){}

C. public void change(String s){}

D. public void change(int x){}

36. public class Employee{

private String name;

public Employee(String name){

= name;

}

public String getName(){

return name;

}

public class Manager extends Employee{

public Manager(String name){

n(getName());

}

}

执行语句new Manager(“smith”)后程序的输出是哪项?

A. smith

B. null

C. 编译错误