java数组题库_Java题库——Chapter6 一维数组

1)What is the representation of the third element in an array called a? 1) _______

A)a(3) B) a(2) C) a[2] D) a[3]

2)If you declare an array double[ ] list = {3.4, 2.0, 3.5, 5.5}, list[1] is ________. 2) _______

A)3.4  B)5.5 C)2.0  D)3.4  E)undefined

3)Which of the following is incorrect? (Choose all that apply.) 3) _______

A)int a = new int[2];B)int a[ ] = new int[2];

C)int[ ] a = new int[2]; D)int a() = new int[2]; E)int[ ] a = new int(2);

4)If you declare an array double[ ] list = {3.4, 2.0, 3.5, 5.5}, the highest index in array list is ________. 4) _______

A)3 B) 2 C) 4 D) 1 E) 0

5)How many elements are in array double[ ] list = new double[5]? 5) _______

A)6 B) 5 C) 4 D) 0

6)What is the correct term for numbers[99]? 6) _______

A)array variable

B)index variable

C)array

D)indexed variable

E)index

7)Suppose int i = 5, which of the following can be used as an index for array double[ ] t = new double[100]? (Choose all that apply.) 7) _______

A)i

B)i + 10

C)(int)(Math.random() * 100))

D)Math.random() * 100

E)i + 6.5

int型整数

8)Analyze the following code.

public classTest {public static voidmain(String[ ] args) {int[ ] x = new int[3];

System.out.println("x[0] is " + x[0]);

}

}

A)The program runs fine and displays x[0] is 0.

B)The program has a runtime error because the array elements are not initialized.

C)The program has a runtime error because the array element x[0] is not defined.

D)The program has a compile error because the size of the array wasn't specified when declaring the array.

9)Which of the following statements is valid? (Choose all that apply.) 9) _______

A)char[ ] c = new char();

B)int i = new int(30);

C)int[ ] i = {3, 4, 3, 2};

D)char[ ] c = new char[4]{'a', 'b', 'c', 'd'};

E)double d[ ] = new double[30];

10)How can you initialize an array of two characters to 'a' and 'b'? (Choose all that apply.)

A)char[ ] charArray = {'a', 'b'};

B)char[2] charArray = {'a', 'b'};

C)char[ ] charArray = new char[2]; charArray = {'a', 'b'};

D)char[ ] charArray = new char[ ]{'a', 'b'};

11)What would be the result of attempting to compile and run the following code?

public classTest {public static voidmain(String[ ] args) {double[ ] x = new double[ ]{1, 2, 3};

System.out.println("Value is " + x[1]);

}

}

A)The program has a compile error because the syntax new double[ ]{1, 2, 3} is wrong and it should be replaced by new double[ ]{1.0, 2.0, 3.0};

B)The program has a compile error because the syntax new double[ ]{1, 2, 3} is wrong and it should be replaced by new double[3]{1, 2, 3};

C)The program has a compile error because the syntax new double[ ]{1, 2, 3} is wrong and it should be replaced by {1, 2, 3}.

D)The program compiles and runs fine and the output "Value is 1.0" is printed.

E)The program compiles and runs fine and the output "Value is 2.0" is printed.

12)Assume int[ ] t = {1, 2, 3, 4}. What is t.length? 12) ______

A)3  B) 5C) 4D) 0

13)Analyze the following code:

public classTest {public static voidmain(String[ ] args) {int[ ] x = new int[5];inti;for (i = 0; i < x.length; i++)

x[i]=i;

System.out.println(x[i]);

}

}

A)The program has a compile error because i is not defined in the last statement in the main method.

B)The program displays 0 1 2 3 4.

C)The program has a runtime error because the last statement in the main method causes ArrayIndexOutOfBoundsException.

D)The program displays 4.

14)(Tricky) What is output of the following code:

public classTest {public static voidmain(String[ ] args) {int[ ] x = {120, 200, 016};for (int i = 0; i < x.length; i++)

System.out.print(x[i]+ " ");

}

}

A)120 200 20

B)120 200 16

C)120 200 14

D)016 is a compile error. It should be written as 16.

0开头表示八进制整数直接量!!!

15)In the following code, what is the printout for list2?

classTest {public static voidmain(String[ ] args) {int[ ] list1 = {1, 2, 3};int[ ] list2 = {1, 2, 3};

list2=list1;

list1[0] = 0; list1[1] = 1; list2[2] = 2;for (int i = 0; i < list2.length; i++)

System.out.print(list2[i]+ " ");

}

}

A)0 1 3 B) 0 1 2 C) 1 2 3 D) 1 1 1

16)In the following code, what is the printout for list1?

classTest {public static voidmain(String[ ] args) {int[ ] list1 = {1, 2, 3};int[ ] list2 = {1, 2, 3};

list2=list1;

list1[0] = 0; list1[1] = 1; list2[2] = 2;for (int i = 0; i < list1.length; i++)

System.out.print(list1[i]+ " ");

}

}

A)1 2 3 B) 0 1 2 C) 0 1 3 D) 1 1 1

将list1的引用赋给list2,list1和list2指向内存中的同一块区域

17)Analyze the following code:

public classTest {public static voidmain(String[ ] args) {int[ ] x = {1, 2, 3, 4};int[ ] y =x;

x= new int[2];for (int i = 0; i < y.length; i++)

System.out.print(y[i]+ " ");

}

}

A)The program displays 0 0 0 0

B)The program displays 0 0 3 4

C)The program displays 0 0

D)The program displays 1 2 3 4

18)Analyze the following code:

public classTest {public static voidmain(String[ ] args) {int[ ] x = {1, 2, 3, 4};int[ ] y =x;

x= new int[2];for (int i = 0; i < x.length; i++)

System.out.print(x[i]+ " ");

}

}

A)The program displays 0 0

B)The program displays 0 0 3 4

C)The program displays 1 2 3 4

D)The program displays 0 0 0 0

19)Analyze the following code:

public classTest {public static voidmain(String[ ] args) {final int[ ] x = {1, 2, 3, 4};int[ ] y =x;

x= new int[2];for (int i = 0; i < y.length; i++)

System.out.print(y[i]+ " ");

}

}

A)The program displays 0 0

B)The elements in the array x cannot be changed, because x is final.

C)The program has a compile error on the statement x = new int[2], because x is final and cannot be changed.

D)The program displays 1 2 3 4

20)Analyze the following code.

int[ ] list = new int[5];

list= new int[6];

A)The code can compile and run fine. The second line assigns a new array to list.

B)The code has compile errors because the variable list cannot be changed once it is assigned.

C)The code has compile errors because you cannot assign a different size array to list.

D)The code has runtime errors because the variable list cannot be changed once it is assigned.

第二行代码重新为list分配了一个新的数组

21)Analyze the following code:

public classTest {public static voidmain(String[ ] args) {int[ ] a = new int[4];

a[1] = 1;

a= new int[2];

System.out.println("a[1] is " + a[1]);

}

}

A)The program has a compile error because new int[2] is assigned to a.

B)The program displays a[1] is 1.

C)The program displays a[1] is 0.

D)The program has a runtime error because a[1] is not initialized.

22)The ________ method copies the sourceArray to the targetArray. 22) ______

A)System.arrayCopy(sourceArray, 0, targetArray, 0, sourceArray.length);

B)System.copyarrays(sourceArray, 0, targetArray, 0, sourceArray.length);

C)System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);

D)System.copyArrays(sourceArray, 0, targetArray, 0, sourceArray.length);

arraycopy方法违反了Java的命名方式,根据命名习惯,应该命名为arrayCopy。arraycopy方法没有给目标数组分配空间,复制前必须创建目标数组以及分配给它的内存空间,复制完成后,sourceArray 和 targetArray具有相同的内容。

23)When you pass an array to a method, the method receives ________. 23) ______

A)the length of the array B) a copy of the first element

C)a copy of the array D) the reference of the array

24)Show the output of the following code:

public classTest {public static voidmain(String[ ] args) {int[ ] x = {1, 2, 3, 4, 5};

increase(x);int[ ] y = {1, 2, 3, 4, 5};

increase(y[0]);

System.out.println(x[0] + " " + y[0]);

}public static void increase(int[ ] x) {for (int i = 0; i < x.length; i++)

x[i]++;

}public static void increase(inty) {

y++;

}

}

A)2 2 B) 1 1 C) 0 0 D) 1 2E) 2 1

前者引用传递,后者值传递。

25)Do the following two programs produce the same result?

Program I:

public classTest {public static voidmain(String[ ] args) {int[ ] list = {1, 2, 3, 4, 5};

reverse(list);for (int i = 0; i < list.length; i++)

System.out.print(list[i]+ " ");

}public static void reverse(int[ ] list) {int[ ] newList = new int[list.length];for (int i = 0; i < list.length; i++)

newList[i]= list[list.length - 1 -i];

list=newList;

}

}

Program II:

public classTest {public static voidmain(String[ ] args) {int[ ] oldList = {1, 2, 3, 4, 5};

reverse(oldList);for (int i = 0; i < oldList.length; i++)

System.out.print(oldList[i]+ " ");

}public static void reverse(int[ ] list) {int[ ] newList = new int[list.length];for (int i = 0; i < list.length; i++)

newList[i]= list[list.length - 1 -i];

list=newList;

}

}

A)YesB) No

26)Analyze the following code:

public classTest {public static voidmain(String[ ] args) {int[ ] oldList = {1, 2, 3, 4, 5};

reverse(oldList);for (int i = 0; i < oldList.length; i++)

System.out.print(oldList[i]+ " ");

}public static void reverse(int[ ] list) {int[ ] newList = new int[list.length];for (int i = 0; i < list.length; i++)

newList[i]= list[list.length - 1 -i];

list=newList;

}

}

A)The program displays 1 2 3 4 5 and then raises an ArrayIndexOutOfBoundsException.

B)The program displays 1 2 3 4 5.

C)The program displays 5 4 3 2 1 and then raises an ArrayIndexOutOfBoundsException.

D)The program displays 5 4 3 2 1.

27)Analyze the following code:

public classTest1 {public static voidmain(String[ ] args) {

xMethod(new double[ ]{3, 3});

xMethod(new double[5]);

xMethod(new double[3]{1, 2, 3});

}public static void xMethod(double[ ] a) {

System.out.println(a.length);

}

}

A)The program has a compile error because xMethod(new double[3]{1, 2, 3}) is incorrect.

B)The program has a compile error because xMethod(new double[5]) is incorrect.

C)The program has a compile error because xMethod(new double[ ]{3, 3}) is incorrect.

D)The program has a runtime error because a is null.

28)The JVM stores the array in an area of memory, called ________, which is used for dynamic memory allocation where blocks of memory are allocated and freed in an arbitrary order. A)dynamic memory B) memory block C)stack D) heap

Java中的数组可以看出一个特殊的对象,声明时放在栈中,分配的空间存储在堆中。

29)When you return an array from a method, the method returns ________. 29) ______

A)the reference of the arrayB) the length of the array

C)a copy of the first element D) a copy of the array

30)Suppose a method p has the following heading:

public static int[ ] p()

What return statement may be used in p()? 30) ______

A)return 1;B) return new int[ ]{1, 2, 3}; C)return int[ ]{1, 2, 3}; D) return {1, 2, 3};

31)The reverse method is defined in the textbook. What is list1 after executing the following statements?

int[ ] list1 = {1, 2, 3, 4, 5, 6};

list1 = reverse(list1);

A)list1 is 6 5 4 3 2 1 B) list1 is 1 2 3 4 5 6 C)list1 is 0 0 0 0 0 0 D) list1 is 6 6 6 6 6 6

32)The reverse method is defined in this section. What is list1 after executing the following statements?

int[ ] list1 = {1, 2, 3, 4, 5, 6};

int[ ] list2 = reverse(list1);

A)list1 is 0 0 0 0 0 0 B) list1 is 6 6 6 6 6 6 C)list1 is 6 5 4 3 2 1 D) list1 is 1 2 3 4 5 6

33)Which of the following declarations are correct? (Choose all that apply.) 33) ______

A)public static void print(double... numbers, String name)

B)public static double... print(double d1, double d2)

C)public static void print(int n, double... numbers)

D)public static void print(double... numbers)

E)public static void print(String... strings, double... numbers)

34)Which of the following statements are correct to invoke the printMax method in Listing 6.5 in the textbook? (Choose all that apply.) 34) ______

A)printMax(new int[ ]{1, 2, 3});

B)printMax(1, 2, 2, 1, 4);

C)printMax(new double[ ]{1, 2, 3});

D)printMax(1.0, 2.0, 2.0, 1.0, 4.0);

35)For the binarySearch method in Section 6.9.2, what is low and high after the first iteration of the while loop when invoking binarySearch(new int[ ]{1, 4, 6, 8, 10, 15, 20}, 11)? 35) ______

A)low is 0 and high is 5

B)low is 3 and high is 6

C)low is 4 and high is 6

D)low is 0 and high is 3

E)low is 0 and high is 6

36)If a key is not in the list, the binarySearch method returns ________. 36) ______

A)insertion point B) -insertion point C)-(insertion point + 1) D) insertion point - 1

37)The selectionSort method is defined in this section. Assume list is {3.1, 3.1, 2.5, 6.4, 2.1}, what is the content of list after the first iteration of the outer loop in the method? 37) ______

A)3.1, 3.1, 2.5, 6.4, 2.1 B) 2.5, 3.1, 3.1, 6.4, 2.1 C)3.1, 3.1, 2.5, 2.1, 6.4D) 2.1, 2.5, 3.1, 3.1, 6.4

38)The selectionSort method is defined in this section. What is list1 after executing the following statements?

double[ ] list1 = {3.1, 3.1, 2.5, 6.4};

selectionSort(list1);

A)list1 is 3.1, 2.5, 3.1, 6.4 B) list1 is 3.1, 3.1, 2.5, 6.4

C)list1 is 6.4, 3.1, 3.1, 2.5 D) list1 is 2.5 3.1, 3.1, 6.4

39)The ________ method sorts the array scores of the double[ ] type. 39) ______

A)java.util.Arrays(scores)

B)java.util.Arrays.sorts(scores)

C)Njava.util.Arrays.sortArray(scores)

D)java.util.Arrays.sort(scores)

40)Assume int[ ] scores = {1, 20, 30, 40, 50}, what value does java.util.Arrays.binarySearch(scores, 30) return? 40) ______

A)2 B) 1 C) -1 D) -2 E) 0

41)Assume int[ ] scores = {1, 20, 30, 40, 50}, what value does java.util.Arrays.binarySearch(scores, 3) return? 41) ______

A)1 B) -1 C) -2 D) 2 E) 0

binarySearch()方法的返回值为:1、如果找到关键字,则返回值为关键字在数组中的位置索引,且索引从0开始2、如果没有找到关键字,返回值为负的插入点值,所谓插入点值就是第一个比关键字大的元素在数组中的位置索引,而且这个位置索引从1开始。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 什么是 Java 异常? Java 异常是指程序执行期间可能发生的错误或异常情况,例如除以零、数组越界、空指针引用等。当这些异常发生时,Java 虚拟机会抛出一个异常对象,并且程序的执行流程将被中断。 2. Java 异常处理机制有哪些关键字和语句? Java 异常处理机制包括以下关键字和语句: - try:用于包含可能会抛出异常的代码块。 - catch:用于捕获指定类型的异常,并在捕获到异常时执行相应的处理代码。 - finally:用于包含无论是否发生异常都需要执行的代码块。 - throw:用于抛出指定的异常对象。 - throws:用于声明可能会抛出指定类型异常的方法。 3. Java 中的异常分为哪几类? Java 中的异常分为两大类:Checked Exception 和 Unchecked Exception。 Checked Exception 是指在编译时就能够检查出来的异常,例如 IOException、ClassNotFoundException 等。程序必须显式地处理这些异常,否则编译不通过。 Unchecked Exception 是指在运行时才能检查出来的异常,例如 NullPointerException、ArrayIndexOutOfBoundsException 等。程序可以选择处理这些异常,但不处理也不会导致编译错误。 4. 请简要说明 try-catch-finally 的执行流程。 当程序执行到 try 块时,Java 会尝试执行其中的代码。如果在 try 块中抛出了异常,则会将异常对象传递给 catch 块进行处理。catch 块会匹配异常类型,如果匹配成功,则执行相应的处理代码。如果 catch 块处理完异常后,程序需要继续执行,则会执行 finally 块中的代码。如果 finally 块中也抛出了异常,则该异常会覆盖 try 或 catch 块中的异常。 如果 try 块中没有抛出异常,则 catch 块不会被执行。如果 finally 块中抛出异常,则该异常会覆盖 try 块中的异常。 5. 什么是异常链? 异常链是指在处理异常时,将一个异常对象作为另一个异常的原因,并将它们组合成一个异常链。这样做的好处是,在抛出异常时可以同时传递多个异常信息,从而更加清晰地表示异常发生的原因。 6. 请简要说明 try-with-resources 的作用和使用方法。 try-with-resources 是 Java 7 中引入的语法,用于自动关闭实现了 AutoCloseable 接口的资源。在 try 块中声明需要使用的资源,Java 会在 try 块执行完毕后自动关闭这些资源,无需手动调用 close 方法。 try-with-resources 的语法如下: ``` try (Resource1 r1 = new Resource1(); Resource2 r2 = new Resource2()) { // 使用资源 } catch (Exception e) { // 处理异常 } ``` 7. 请简要说明 Java 中的文本 IO。 Java 中的文本 IO 主要包括两种类:Reader 和 Writer。Reader 用于读取字符流,而 Writer 用于写入字符流。 Java 中常用的 Reader 类包括 InputStreamReader、FileReader 和 BufferedReader,常用的 Writer 类包括 OutputStreamWriter、FileWriter 和 BufferedWriter。这些类提供了各种方法来读取和写入字符流,并且可以处理多种编码格式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值