## 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 0b: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; } } }