Introduction to Java Programming, Includes Data Structures, Eleventh 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.

Chapter 3 Selections


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

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

3.2  The equal comparison operator in Java is __________.
A. <>
B. !=
C. ==
D. ^=

3.3  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.4  What is 1 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1 == 0.5?
A. true
B. false
C. There is no guarantee that 1 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1 == 0.5 is true.

3.5  In Java, the word true is ________.
A. a Java keyword
B. a Boolean literal
C. same as value 1
D. same as value 0

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

3.7  What is the output of the following code?

int x = 0;
if (x < 4) {
  x = x + 1;
}
System.out.println("x is " + x);
A. x is 0
B. x is 1
C. x is 2
D. x is 3
E. x is 4

Section 3.4 Two-Way if-else Statements
3.8  Suppose income is 4001, what is the output of the following code?

if (income > 3000) {
  System.out.println("Income is greater than 3000");
}
else if (income > 4000) {
  System.out.println("Income is greater than 4000");
}
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

Section 3.5 Nested if and Multi-Way if-else Statements
3.9  The following code displays ___________.

double temperature = 50;

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

Section 3.6 Common Errors and Pitfalls
3.10  Suppose x = 1, y = -1, and z = 1. What is the output of the following statement? (Please indent the statement correctly first.)

if (x > 0)
   if (y > 0)
      System.out.println("x > 0 and y > 0");
else if (z > 0)
      System.out.println("x < 0 and z > 0");
A. x > 0 and y > 0;
B. x < 0 and z > 0;
C. x < 0 and z < 0;
D. no output.

3.11  Analyze the following code:

boolean even = false;
if (even = true) {
  System.out.println("It is even");
}
A. The program has a compile error.
B. The program has a runtime error.
C. The program runs fine, but displays nothing.
D. The program runs fine and displays It is even.

3.12  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.13  Analyze the following code.

boolean even = false;
if (even) {
  System.out.println("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).

3.14  Analyze the following code:

Code 1:

int number = 45;
boolean even;

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

Code 2:
int number = 45;
boolean 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.

Section 3.7 Generating Random Numbers
3.15  Which of the following is a possible output from invoking Math.random()?
A. 3.43
B. 0.5
C. 0.0
D. 1.0

3.16  What is the output from System.out.println((int)Math.random() * 4)?
A. 0
B. 1
C. 2
D. 3
E. 4

3.17  What is the possible output from System.out.println((int)(Math.random() * 4))?
A. 0
B. 1
C. 2
D. 3
E. 4

Section 3.8 Case Study: Computing Body Mass Index
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
  System.out.println("Cannot get a driver's license");
if (age >= 16
  System.out.println("Can get a driver's license");

II:
if (age < 16
  System.out.println("Cannot get a driver's license");
else 
  System.out.println("Can get a driver's license");

III:
if (age < 16
  System.out.println("Cannot get a driver's license");
else if (age >= 16
  System.out.println("Can get a driver's license");

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

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
  System.out.println("Cannot get a driver's license");
if (age >= 16
  System.out.println("Can get a driver's license");

II:
if (age < 16
  System.out.println("Cannot get a driver's license");
else 
  System.out.println("Can get a driver's license");

III:
if (age < 16
  System.out.println("Cannot get a driver's license");
else if (age >= 16
  System.out.println("Can get a driver's license");

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

Section 3.9 Case Study: Computing Taxes
3.20  The __________ method immediately terminates the program.
A. System.terminate(0);
B. System.halt(0);
C. System.exit(0);
D. System.quit(0);
E. System.stop(0);

Section 3.10 Logical Operators
3.21  Which of the Boolean expressions below is incorrect?
A. (true) && (3 => 4)
B. !(x > 0) && (x > 0)
C. (x > 0) || (x < 0)
D. (x != 0) || (x = 0)
E. (-10 < x < 0)

3.22  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.23  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.24  Assume x = 4, which of the following is true?
A. !(x == 4)
B. x != 4
C. x == 5
D. x != 5

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

Section 3.11 Determining Leap Year
3.26  Given |x| <= 4, which of the following is true?
A. x <= 4 && x >= 4
B. x <= 4 && x > -4
C. x <= 4 && x >= -4
D. x <= 4 || x >= -4

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

3.28  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

Section 3.12 Lottery
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  Suppose x=10 and y=10. What is x after evaluating the expression (y >= 10) || (x-- > 10).
A. 9
B. 10
C. 11

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

3.33  Analyze the following code:

if (x < 100) && (x > 10)
  System.out.println("x is between 10 and 100");
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.

3.34  Which of the following are so called short-circuit operators?
A. &&
B. &
C. ||
D. |

Section 3.13 switch Statements
3.35  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
E. 0

3.36  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.14 Conditional Expressions
3.37  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.38  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) ? truefalse;

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.39  What is the output of the following code?

boolean even = false;
System.out.println((even ? "true" : "false"));
A. true
B. false
C. nothing
D. true false

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

3.41  What is y displayed in the following code?

public class Test1 {
  public static void main(String[] args) {
    int x = 1;
    int y = x = x + 1;
    System.out.println("y is " + y);
  }
}
A. y is 0.
B. y is 1 because x is assigned to y first.
C. y is 2 because x + 1 is assigned to x and then x is assigned to y.
D. The program has a compile error since x is redeclared in the statement int y = x = x + 1.

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

3.43  What is the value of the following expression?

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

3.44  Which of the following statements are true?
A. (x > 0 && x < 10) is same as ((x > 0) && (x < 10))
B. (x > 0 || x < 10) is same as ((x > 0) || (x < 10))
C. (x > 0 || x < 10 && y < 0) is same as (x > 0 || (x < 10 && y < 0))
D. (x > 0 || x < 10 && y < 0) is same as ((x > 0 || x < 10) && y < 0)