# Hard Multiple Choice QuestionsΒΆ

These problems are harder than most of those that you will usually see on the AP CS A exam.

7-11-1: Consider the following data field and incomplete method, partialSum, which is intended to return an integer array sum such that for all i, sum[i] is equal to arr[0] + arr[1] + ... + arr[i]. For instance, if arr contains the values {1, 4, 1, 3}, the array sum will contain the values {1, 5, 6, 9}. Which of the following is true about the two implementations of missing code on line 9 that are proposed?

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 private int[] arr; public int[] partialSum() { int[] sum = new int[arr.length]; for (int j = 0; j < sum.length; j++) sum[j] = 0; /* missing code */ return sum; } Implementation 1 for (int j = 0; j < arr.length; j++) sum[j] = sum[j - 1] + arr[j]; Implementation 2 for (int j = 0; j < arr.length; j++) for (int k = 0; k <= j; k++) sum[j] = sum [j] + arr[k]; 
• (A) Both implementations work as intended and are equally fast.
• Implementation 1 doesn't work and will cause an ArrayIndexOutOfBoundsException. If Implementation 1 was correct, it would be faster.
• (B) Both implementations work as intended, but implementation 1 is faster than implementation 2.
• Implementation 1 doesn't work and will cause an ArrayIndexOutOfBoundsException.
• (C) Both implementations work as intended, but implementation 2 is faster than implementation 1.
• Implementation 1 doesn't work and will cause an ArrayIndexOutOfBoundsException. If it did work, it would be faster than 2.
• (D) Implementation 1 does not work as intended, because it will cause an ArrayIndexOutOfBoundsException.
• When j is 0, sum[j-1] will be sum[-1] which will cause an ArrayIndexOutOfBoundsException.
• (E) Implementation 2 does not work as intended, because it will cause an ArrayIndexOutOfBoundsException.
• Implementation 1 doesn't work and will cause an ArrayIndexOutOfBoundsException.
Next Section - Practice Exam for Arrays