CPSC 124, Spring 2021: Sample Answers to Quiz #3
These are sample answers only.
Question 1. Show the exact output from the following code segment:
int a, b;
a = 4;
b = 1;
while ( b <= 5 ) {
b = b + 1;
if ( b > 3 ) {
a = a / 3;
} else {
a = a * 2;
}
}
System.out.println(a + "," + b);
Answer. The answer to the problem as written is: 0,6. There is only one line of output, because the System.out.println statement comes after the while loop. I meant the output statement to be inside the while loop, and in that case, the answer would be:
8,2
16,3
5,4
1,5
0,6
To see why, you have to execute the code step by step as the computer would do it, keeping track of the values of a and b. Here is how the values change as the loop runs:
a: 4 8 16 5 1 0
b: 1 2 3 4 5 6
Note that when doing integer division, 16/5 gives 3, 5/3 gives 1, and 1/3 gives 0. The last time through the loop, b becomes six and the test in the loop becomes false, so the loop ends.
Question 2. Briefly explain the meaning of each of the following Java operators:
a) %
b) &&
c) ++
Answer.
a) % is the remainder operator. If x and y
are numbers, then x%y is the remainder when x is divided by y.
b) && is the boolean operator that means
"and". It is used to combine boolean values, such as (x >= 3) && (x < 10)
c) ++ is an operator that acts on a
numeric variable by adding one to its value. The statement x++; has the same effect
as x=x+1; (Note that x++ is also an expression, and its value is the
old value of x, not the new value.)
Question 3. Fill in the following program so that it does the following: Simulate flipping a coin seven (7) times. When the coin shows heads, print out "Heads"; when the coin shows tails, print out "Tails". A sample output from the program is shown at the right.
public class Flips { Heads
public static void main(String[] args) { Tails
. Tails
. Tails
. Heads
} Tails
}
Answer.
public class Flips {
public static void main(String[] args) {
int flips; // Number of times coin has been flipped.
flips = 0;
while (flips < 7) {
if ( Math.random() < 0.5 ) {
System.out.println("Heads");
}
else {
System.out.println("Tails");
}
flips = flips + 1;
}
}
}