# Hard Multiple Choice QuestionsΒΆ

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

3-11-1: Which of the following would be the correct result from the following expression: 150 (in decimal) - 21 (in octal) + 101 (in binary) - E (in hexadecimal)?
• (A) 186
• This would be true if it was 150 + 17 (21 in octal) + 5 (101 in binary) + 14 (E in hexadecimal) which is 186.
• (B) 123
• This would be true if it was 150 - 17 (21 in octal) + 5 (101 in binary) - 15 (F in hexadecimal) which is 123.
• (C) 125
• This would be true if it was 150 - 17 (21 in octal) + 5 (101 in binary) - 13 (D in hexadecimal) which is 123.
• (D) 168
• How did you get this? Maybe look up how to convert from octal and hexadecimal to decimal.
• (E) 124
• This is 150 - 17 (21 in octal) + 5 (101 in binary) - 14 (E in hexadecimal) which is 124.

The following question assumes you know about arrays and methods. You can skip it if you haven’t covered these yet and come back when you have.

3-11-2: Given the following code are the contents of itemArray and val after a call of mod(itemArray,val)?

int[] itemArray = {9, 8, 7, 6};
int val = 5;

public static void mod(int[] a, int value)
{
for (int i=0; i < a.length; i++)
{
a[i] = i;
}
value = a[a.length-1];
}

• (A) itemArray = {0, 1, 2, 3} and val = 3;
• This would be true if Java used pass by reference rather than pass by value (it creates copies of the values that are passed).
• (B) itemArray = {0, 1, 2, 3} and val = 5;
• Java passes parameters by copying the value. With an array it creates a copy of the object reference. So, mod will change the itemArray, but val won't change since mod only changes the copy of the primitive value.
• (C) itemArray = {0, 0, 0, 0} and val = 0;
• How could this have happened?
• (D) itemArray = {9, 8, 7, 6} and val = 3;
• Java passes parameters by passing the values this means that the contents of itemArray will be changed by the mod method, but val won't change.
• (E) itemArray = {9, 8, 7, 6} and val = 5;
• Java passes parameters by passing the values this means that the contents of itemArray will be changed by the mod method.
Next Section - Variables - Summary