Introduction to Programming with C++, Third Edition, Y. Daniel Liang

This quiz is for students to practice. A large number of additional quiz is available for instructors using Quiz Generator from the Instructor's Resource Website. Videos for Java, Python, and C++ can be found at https://yongdanielliang.github.io/revelvideos.html.

Many questions in this edition have been updated in the new edition. Please check with the publisher on the newest edition.

Chapter 3 Selections


Section 3.2 boolean Data Type and Operations
3.1  The "less than or equal to" comparison operator is __________.

A. <
B. <=
C. =<
D. <<
E. !=

3.2  The equal comparison operator is __________.

A. <>
B. !=
C. ==
D. ^=

3.3  The word true is ________.
A. a C++ keyword
B. a Boolean literal
C. same as value 1
D. same as value 0

3.4  What is 1 + 1 + 1 + 1 + 1 == 5?
A. true
B. false
C. There is no guarantee that 1 + 1 + 1 + 1 + 1 == 5 is true.

3.5  What is 1.0 + 1.0 + 1.0 + 1.0 + 1.0 == 5.0?
A. true
B. false
C. There is no guarantee that 1.0 + 1.0 + 1.0 + 1.0 + 1.0 == 5.0 is true.

Section 3.3 One-Way if Statements
3.6  Which of the following code displays the area of a circle if the radius is positive.
A. if (radius != 0) cout << radius * radius * 3.14159;
B. if (radius >= 0) cout << radius * radius * 3.14159;
C. if (radius > 0) cout << radius * radius * 3.14159;
D. if (radius <= 0) cout << radius * radius * 3.14159;

3.7  Suppose isPrime is a boolean variable, which of the following is the correct and best statement for testing if isPrime is true.
A. if (isPrime = true)
B. if (isPrime == true)
C. if (isPrime)
D. if (!isPrime = false)
E. if (!isPrime == false)

3.8  What is the output of the following code?

int x = 0;
if (x < 4
{
  x = x + 1;
}
cout << "x is " << x << endl;
A. x is 0
B. x is 1
C. x is 2
D. x is 3
E. x is 4

3.9  Analyze the following code.

bool even = false;
if (even) 
{
  cout << "It is even!";
}
A. The code displays It is even!
B. The code displays nothing.
C. The code is wrong. You should replace if (even) with if (even == true)
D. The code is wrong. You should replace if (even) with if (even = true)

Section 3.5 if . . . else Statements
3.10  Analyze the following code:

bool even = false;
if (even = true
{
  cout << "It is even!";
}
A. The program has a compile error.
B. The program has a runtime error.
C. The program runs, but displays nothing.
D. The program runs and displays It is even!.

3.11  Analyze the following code:

Code 1:

int number = 45;
bool even;

if (number % 2 == 0
  even = true;
else 
  even = false;

Code 2:

int number = 45;
bool even = (number % 2 == 0);
A. Code 1 has compile errors.
B. Code 2 has compile errors.
C. Both Code 1 and Code 2 have compile errors.
D. Both Code 1 and Code 2 are correct, but Code 2 is better.

3.12  What is the output of the following code?

int score = 70;
if (score = 100
  cout << "A perfect score" << endl;
else
  cout << "Not a perfect score" << endl;
A. A perfect score
B. Not a perfect score

3.13  What is the output of the following code?

int score = 70;
if (score == 100
  cout << "A perfect score" << endl;
else
  cout << "Not a perfect score" << endl;
A. A perfect score
B. Not a perfect score

3.14  What is the output of the following code?

int number = 8;
if (number < 8
  cout << 1 << endl;
else
  cout << 2 << endl;
A. 1
B. 2
C. nothing
D. 1 2
E. 2 1

Section 3.6 Nested if Statements
3.15  Suppose x = 1, y = -1, and z = 1. What will be displayed by the following statement? (Please indent the statement correctly first.)

if (x > 0)
   if (y > 0)
      cout << "x > 0 and y > 0" << endl;
else if (z > 0)
      cout << "x < 0 and z > 0" << endl;
A. x > 0 and y > 0;
B. x < 0 and z > 0;
C. x < 0 and z < 0;
D. none

3.16  The following code displays ___________.

double temperature = 50;

if (temperature >= 100)
  cout << "too hot" << endl;
else if (temperature <= 40)
  cout << "too cold" << endl;
else
  cout << "just right" << endl;
A. too hot
B. too cold
C. just right
D. too hot too cold just right

3.17  Suppose income is 4001, what is the output of the following code:

if (income > 3000
{
  cout << "Income is greater than 3000" << endl;
}
else if (income > 4000
{
  cout << "Income is greater than 4000" << endl;
}
A. no output
B. Income is greater than 3000
C. Income is greater than 3000 followed by Income is greater than 4000
D. Income is greater than 4000
E. Income is greater than 4000 followed by Income is greater than 3000

3.18  Suppose you write the code to display "Cannot get a driver's license" if age is less than 16

and "Can get a driver's license" if age is greater than or equal to 16
Which of the following code is correct?

I: 
if (age < 16
  cout << "Cannot get a driver's license";
if (age >= 16
  cout << "Can get a driver's license";

II:
if (age < 16
  cout << "Cannot get a driver's license";
else 
  cout << "Can get a driver's license";

III:
if (age < 16
  cout << "Cannot get a driver's license";
else if (age >= 16
  cout << "Can get a driver's license";

IV:
if (age < 16
  cout << "Cannot get a driver's license";
else if (age == 16
  cout << "Can get a driver's license";
else if (age > 16
  cout << "Can get a driver's license";
A. I and II
B. II and III
C. I, II, and III
D. III and IV
E. All correct

3.19  Suppose you write the code to display "Cannot get a driver's license" if age is less than 16

and "Can get a driver's license" if age is greater than or equal to 16
Which of the following code is the best?

I: 
if (age < 16
  cout << "Cannot get a driver's license";
if (age >= 16
  cout << "Can get a driver?s license";

II:
if (age < 16
  cout << "Cannot get a driver's license";
else 
  cout << "Can get a driver's license";

III:
if (age < 16
  cout << "Cannot get a driver's license";
else if (age >= 16
  cout << "Can get a driver's license";

IV:
if (age < 16
  cout << "Cannot get a driver's license";
else if (age == 16
  cout << "Can get a driver's license";
else if (age > 16
  cout << "Can get a driver's license";
A. I
B. II
C. III
D. IV

Section 3.11 Logical Operators
3.20  Which of the Boolean expressions below is correct and always evaluates to true?
A. (true) && (4 => 3)
B. !(x > 0) && (x > 0)
C. (x > 0) || (x <= 0)
D. (x != 0) || (x = 0)
E. (-10 < x < 0)

3.21  To check whether a char variable ch is an uppercase letter, you write ___________.
A. (ch >= 'A' && ch >= 'Z')
B. (ch >= 'A' && ch <= 'Z')
C. (ch >= 'A' || ch <= 'Z')
D. ('A' <= ch <= 'Z')

3.22  Assume x = 4 and y = 5, Which of the following is true?
A. x < 5 && y < 5
B. x < 5 || y < 5
C. x > 5 && y > 5
D. x > 5 || y > 5

3.23  Assume x = 4 and y = 5, Which of the following is true?
A. !(x == 4)
B. x != 4
C. x == 5
D. x != 5

3.24  Assume x = 4 and y = 5, Which of the following is true?
A. !(x == 4)
B. x != 4
C. x == 5
D. x != 5

3.25  Which of the following is equivalent to x != y?
A. ! (x == y)
B. x > y && x < y
C. x > y || x < y
D. x >= y || x <= y

3.26  Given |x - 2| <= 4, Which of the following is true?
A. x - 2 <= 4 && x - 2 >= 4
B. x - 2 <= 4 && x - 2 > -4
C. x - 2 <= 4 && x - 2 >= -4
D. x - 2 <= 4 || x - 2 >= -4

3.27  Given |x - 2| >= 4, Which of the following is true?
A. x - 2 >= 4 && x - 2 <= -4
B. x - 2 >= 4 || x - 2 <= -4
C. x - 2 >= 4 && x - 2 < -4
D. x - 2 > 4 || x - 2 <= -4

3.28  Which of the following is the correct expression that evaluates to true if the number x is between 1 and 100 or the number is negative?
A. 1 < x < 100 && x < 0
B. ((x < 100) && (x > 1)) || (x < 0)
C. ((x < 100) && (x > 1)) && (x < 0)
D. (1 > x > 100) || (x < 0)

3.29  Suppose x=10 and y=10. What is x after evaluating the expression (y > 10) && (x++ > 10)?
A. 9
B. 10
C. 11

3.30  Suppose x=10 and y=10 what is x after evaluating the expression (y >= 10) || (x++ > 10).
A. 9
B. 10
C. 11

3.31  Analyze the following code:

if (x < 100) && (x > 10)
  cout << "x is between 10 and 100" << endl;
A. The statement has compile errors because (x<100) & (x > 10) must be enclosed inside parentheses.
B. The statement has compile errors because (x<100) & (x > 10) must be enclosed inside parentheses and the println(?) statement must be put inside a block.
C. The statement compiles fine.
D. The statement compiles fine, but has a runtime error.
E. & should be replaced by && to avoid having a compile error.

Section 3.14 switch Statements
3.32  What is y after the following switch statement is executed?

int x = 3int y = 4;
switch (x + 3
{
  case 6: y = 0;
  case 7: y = 1;
  default: y += 1;
}
A. 1
B. 2
C. 3
D. 4

3.33  What will be displayed by the following switch statement?

    char ch = 'a';
    
    switch (ch)
    {
      case 'a':
      case 'A':
        cout << ch << endl; break;
      case 'b':
      case 'B':
        cout << ch << endl; break;
      case 'c':
      case 'C':
        cout << ch << endl; break;
      case 'd':
      case 'D':
        cout << ch << endl;
    }
A. abcd
B. a
C. aa
D. ab

3.34  What will be displayed by the following switch statement?

    char ch = 'b';
    
    switch (ch)
    {
      case 'a':
        cout << ch << endl;
      case 'b':
        cout << ch << endl;
      case 'c':
        cout << ch << endl;
      case 'd':
        cout << ch << endl;
    }
A. abcd
B. bcd
C. b
D. bb
E. bbb

3.35  Analyze the following program fragment:

int x;
double d = 1.5;

switch (d) 
{
  case 1.0: x = 1;
  case 1.5: x = 2;
  case 2.0: x = 3;
}
A. The program has a compile error because the required break statement is missing in the switch statement.
B. The program has a compile error because the required default case is missing in the switch statement.
C. The switch control variable cannot be double.
D. No errors.

Section 3.15 Conditional Expressions
3.36  What is y after the following statement is executed?

x = 0;
y = (x > 0) ? 10 : -10;
A. -10
B. 0
C. 10
D. 20
E. Illegal expression

3.37  Analyze the following code fragments that assign a Boolean value to the variable even.

Code 1: 
if (number % 2 == 0)
  even = true;
else 
  even = false;

Code 2: 
even = (number % 2 == 0) ? true: false;

Code 3:
even = number % 2 == 0;
A. Code 2 has a compile error, because you cannot have true and false literals in the conditional expression.
B. Code 3 has a compile error, because you attempt to assign number to even.
C. All three are correct, but Code 1 is preferred.
D. All three are correct, but Code 2 is preferred.
E. All three are correct, but Code 3 is preferred.

3.38  What is the output of the following code?

bool even = false;
cout << (even ? "true" : "false") << endl;
A. true
B. false
C. nothing
D. true false

Section 3.12 Operator Precedence and Associativity
3.39  The order of the precedence (from high to low) of the operators binary +, *, &&, ||, & is:
A. &&, ||, &, *, +
B. *, +, &&, ||, &
C. *, +, &, &&, ||
D. *, +, &, ||, &&
E. &, ||, &&, *, +

3.40  Which of the following operators are right-associative?
A. *
B. + (binary +)
C. %
D. &&
E. =

3.41  Which of the following operators are right-associative?
A. *
B. +
C. %
D. &&
E. =

3.42  What is the value of the following expression?

true || true && false
A. true
B. false

3.43  According to the expression evaluation rule, Which of the following operator in the expression 3 * 4 + 4 * 5 is executed first?
A. the first *.
B. the second *.
C. the +.
D. It could be either of the operators.