8.11. 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];
    
  • 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.
  • Both implementations work as intended, but implementation 1 is faster than implementation 2.
  • Implementation 1 doesn't work and will cause an ArrayIndexOutOfBoundsException.
  • 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.
  • 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.
  • 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 - 8.12. Practice Exam for Arrays