1 h03 CS16 W20
Name:
(as it would appear on official course roster)
Optional: name you wish to be called
if different from name above.
Optional: name of "homework buddy"
(leaving this blank signifies "I worked alone"

# h03: Chapter 3: Boolean expressions, multiway branches, more loops

true Wed 01/15 09:00AM Wed 01/22 11:59PM

You may collaborate on this homework with AT MOST one person, an optional "homework buddy".

UPLOAD A PDF OF YOUR ANSWERS TO GRADESCOPE BEFORE THE DUE DATE. ASSOCIATE EACH QUESTION WITH A SPECIFIC PAGE IN YOUR HOMEWORK AT THE TIME OF SUBMISSION. There is NO MAKEUP for missed assignments;

• No Staples.
• No Paperclips.
• No folded down corners.

Read Ch 3.1 -3.3, pages 112-118,120 -154.

PLEASE WRITE ALL YOUR ANSWERS IN THIS SHEET. HOMEWORKS SUBMITTED IN A FORMAT DIFFERENT FROM THE PROVIDED TEMPLATE WILL RECEIVE 0 POINTS. PLEASE MARK YOUR HOMEWORK CLEARLY, REGARDLESS OF IF YOU WRITE IT OUT IN INK OR PENCIL!

1. (6 pts) Precedence rules determine how the compiler groups operators and operands when evaluating an expression in the absence of paranthesis. For each of the following expressions add paranthesis to show how the expression is evaluated according to the C++ precedence rules?
``````  a) x == 2 || y > 20

b) !y && x < 9 * 2 || y < x

c) x + 7 > 10 || x + 23 < -7
``````
2. (2 pts) Show the output of the following code AND also write the final value of x after the code is executed.
``````int x = 17;
while ( x > 0) {
cout << x << endl;
x = x – 5;
}
``````
3. (2 pts) What is the outcome of the following code?
``````int x = 0;
while ( x = 2 && x <10) {
cout << x << endl;
x+=2;
}
``````
4. (2 pts) What is a runtime error in C++?
5. (6 pts) What is the result (i.e. TRUE or FALSE) of the following Boolean expressions in C++, given that: x = 2, y = -1, z = 0 in each case
``````  a) (x == 6)
b) !(y > 0)
c) ((x == 2) || (y > 20))
d) ((x >= 3) && (z <= 12))
e) ((x > y) && (y < z))
f) ((!(x < z) || (y > z)) && (z == 12) && (y == 10))

``````
6. (2 pts) What is the output of the following statements?
``````int s = 1;
do
cout << s << " ";
while (s++ <= 5);
``````
7. (10 pts) Using plain and/or multiway if-else statements ONLY write a program that outputs the grade of a student given an integer variable 'score'. The program should read the student's score from standard input. If the score is outside the range of 0 and 100, the program should output "Not a valid score" and exit. Otherwise it should output the string "Grade is X" where X is replaced by the student's letter grade according to the following rubric:
``````90 <= score <=100, grade = 'A'| 80 <= score < 90 , grade = 'B'| 70 <= score < 80 , grade = 'C'|
60 <= score < 70 , grade = 'D' | 0 <= score < 60 , grade = 'F'
``````