Chapter 7
Show the output of the following code: public class Test { public static void main(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(int y) { y++; } }
2 1
If you declare an array double[] list = {3.4, 2.0, 3.5, 5.5}, list[1] is ________.
2.0
Use the selectionSort method presented in this section to answer this question. 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?
2.1, 3.1, 2.5, 6.4, 3.1
If you declare an array double[] list = {3.4, 2.0, 3.5, 5.5}, the highest index in array list is __________.
3
Assume int[] t = {1, 2, 3, 4}. What is t.length?
4
How many elements are in array double[] list = new double[5]?
5
If a key is not in the list, the binarySearch method returns _________.
-(insertion point + 1)
Assume int[] scores = {1, 20, 30, 40, 50}, what value does java.util.Arrays.binarySearch(scores, 3) return?
-2
In the following code, what is the output for list1? public class Test { public static void main(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] + " "); } }
0 1 2
In the following code, what is the output for list2? public class Test { public static void main(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] + " "); } }
0 1 2
Given the following program: public class Test { public static void main(String[] args) { for (int i = 0; i < args.length; i++) { System.out.print(args[i] + " "); } } } What is the output, if you run the program using java Test 1 2 3
1
What is the output of the following code? double[] myList = {1, 5, 5, 5, 5, 1}; double max = myList[0]; int indexOfMax = 0; for (int i = 1; i < myList.length; i++) { if (myList[i] > max) { max = myList[i]; indexOfMax = i; } } System.out.println(indexOfMax);
1
What is output of the following code: public class Test { public static void main(String[] args) { int list[] = {1, 2, 3, 4, 5, 6}; for (int i = 1; i < list.length; i++) list[i] = list[i - 1]; for (int i = 0; i < list.length; i++) System.out.print(list[i] + " ");}
1 1 1 1 1 1
What is the output of the following code? int[] myList = {1, 2, 3, 4, 5, 6}; for (int i = myList.length - 2; i >= 0; i--) { myList[i + 1] = myList[i]; } for (int e: myList) System.out.print(e + " ");
1 1 2 3 4 5
What is output of the following code: public class Test { public static void main(String[] args) { int[] x = {120, 200, 016}; for (int i = 0; i < x.length; i++) System.out.print(x[i] + " "); } }
120 200 14
Assume int[] scores = {1, 20, 30, 40, 50}, what value does java.util.Arrays.binarySearch(scores, 30) return?
2
Which correctly creates an array of five empty Strings?
String[] a = {"", "", "", "", ""};
Which of the following is correct?
String[] list = new String[]{"red", "yellow", "green"}; String[] list = {"red", "yellow", "green"};
The __________ method copies the sourceArray to the targetArray.
System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);
Analyze the following code. int[] list = new int[5]; list = new int[6];
The code can compile and run fine. The second line assigns a new array to list.
What would be the result of attempting to compile and run the following code? public class Test { public static void main(String[] args) { double[] x = new double[]{1, 2, 3}; System.out.println("Value is " + x[1]); } }
The program compiles and runs fine and the output "Value is 2.0" is printed.
Analyze the following code: public class Test { public static void main(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] + " "); } }
The program displays 0 0
Analyze the following code: public class Test { public static void main(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] + " "); } }
The program displays 1 2 3 4
Analyze the following code: public class Test { public static void main(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; } }
The program displays 1 2 3 4 5.
Analyze the following code: public class Test { public static void main(String[] args) { double[] x = {2.5, 3, 4}; for (double value: x) System.out.print(value + " "); } }
The program displays 2.5 3.0 4.0
Analyze the following code: public class Test { public static void main(String[] args) { int[] a = new int[4]; a[1] = 1; a = new int[2]; System.out.println("a[1] is " + a[1]); } }
The program displays a[1] is 0.
Analyze the following code: public class Test1 { public static void main(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); } }
The program has a compile error because xMethod(new double[3]{1, 2, 3}) is incorrect.
Analyze the following code: public class Test { public static void main(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] + " "); } }
The program has a compile error on the statement x = new int[2], because x is final and cannot be changed.
Analyze the following code: public class Test { public static void main(String[] args) { int[] x = new int[5]; int i; for (i = 0; i < x.length; i++) x[i] = i; System.out.println(x[i]); } }
The program has a runtime error because the last statement in the main method causes ArrayIndexOutOfBoundsException.
Analyze the following code. public class Test { public static void main(String[] args) { int[] x = new int[3]; System.out.println("x[0] is " + x[0]); } }
The program runs fine and displays x[0] is 0.
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.
heap
Suppose int i = 5, which of the following can be used as an index for array double[] t = new double[100]?
i (int)(Math.random() * 100)) i + 10
What is the correct term for numbers[99]?
indexed variable
Which code fragment would correctly identify the number of arguments passed via the command line to a Java application, excluding the name of the class that is being invoked?
int count = args.length;
Which of the following are incorrect?
int[] a = new int(2); int a = new int[2]; int a() = new int[2];
The __________ method sorts the array scores of the double[] type.
java.util.Arrays.sort(scores)
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);
list1 is 1 2 3 4 5 6
Use the selectionSort method presented in this section to answer this question. What is list1 after executing the following statements?double[] list1 = {3.1, 3.1, 2.5, 6.4}; selectionSort(list1);
list1 is 2.5, 3.1, 3.1, 6.4
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);
list1 is 6 5 4 3 2 1
For the binarySearch method in Section 7.10.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)?
low is 4 and high is 6
Which of the following statements are correct to invoke the printMax method in Listing 7.5 in the textbook?
printMax(1, 2, 2, 1, 4); printMax(new double[]{1, 2, 3}); printMax(1.0, 2.0, 2.0, 1.0, 4.0);
Which of the following is the correct header of the main method?
public static void main(String[] args) public static void main(String args[]) public static void main(String[] x) public static void main(String x[])
Which of the following declarations are correct?
public static void print(double... numbers) public static void print(int n, double... numbers)
Suppose a method p has the following heading: public static int[] p() What return statement may be used in p()?
return new int[]{1, 2, 3};
When you pass an array to a method, the method receives __________.
the reference of the array
When you return an array from a method, the method returns __________.
the reference of the array
How can you initialize an array of two characters to 'a' and 'b'?
char[] charArray = {'a', 'b'}; char[] charArray = new char[]{'a', 'b'};
Which of the following statements are valid?
double d[] = new double[30]; int[] i = {3, 4, 3, 2};
How can you get the word "abc" in the main method from the following call? java Test "+" 3 "abc" 2
args[2]
Analyze the following code: public class Test { public static void main(String argv[]) { System.out.println("argv.length is " + argv.length); } }
If you run this program without passing any arguments, the program would display argv.length is 0.
Do the following two programs produce the same result? Program I: public class Test {public static void main(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 class Test { public static void main(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; } }
Yes
Assume int[] scores = {1, 20, 30, 40, 50}, what is the output of System.out.println(java.util.Arrays.toString(scores))?
[1, 20, 30, 40, 50]
What is the representation of the third element in an array called a?
a[2]
