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 5 Loops


Section 5.2 The while Loop
5.1  How many times will the following code print "Welcome to Java"?

int count = 0;
while (count < 10) {
  System.out.println("Welcome to Java");
  count++;
}
A. 8
B. 9
C. 10
D. 11
E. 0

5.2  Analyze the following code.

int count = 0;
while (count < 100) {
  // Point A
  System.out.println("Welcome to Java!");
  count++;
  // Point B
}

// Point C
A. count < 100 is always true at Point A
B. count < 100 is always true at Point B
C. count < 100 is always false at Point B
D. count < 100 is always true at Point C
E. count < 100 is always false at Point C

Section 5.3 Case Study: Guessing Numbers
5.3  How many times will the following code print "Welcome to Java"?

int count = 0;
while (count++ < 10) {
  System.out.println("Welcome to Java");
}
A. 8
B. 9
C. 10
D. 11
E. 0

5.4  What is the output of the following code?

int x = 0;
while (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 5.5 Controlling a Loop with User Confirmation or a Sentinel Value
5.5  What will be displayed when the following code is executed?

int number = 6;
while (number > 0) {
  number -= 3;
  System.out.print(number + " ");
}
A. 6 3 0
B. 6 3
C. 3 0
D. 3 0 -3
E. 0 -3

Section 5.6 The do-while Loop
5.6  How many times will the following code print "Welcome to Java"?

int count = 0;
do {
  System.out.println("Welcome to Java");
  count++;
while (count < 10);
A. 8
B. 9
C. 10
D. 11
E. 0

5.7  How many times will the following code print "Welcome to Java"?

int count = 0;
do {
  System.out.println("Welcome to Java");
while (count++ < 10);
A. 8
B. 9
C. 10
D. 11
E. 0

5.8  How many times will the following code print "Welcome to Java"?

int count = 0;
do {
  System.out.println("Welcome to Java");
while (++count < 10);
A. 8
B. 9
C. 10
D. 11
E. 0

5.9  What is the value in count after the following loop is executed?

int count = 0;
do {
  System.out.println("Welcome to Java");
while (count++ < 9);
System.out.println(count);
A. 8
B. 9
C. 10
D. 11
E. 0

Section 5.7 The for Loop
5.10  Analyze the following statement:

double sum = 0;
for (double d = 0; d < 10;) {
  d += 0.1;
  sum += sum + d;
}
A. The program has a compile error because the adjustment is missing in the for loop.
B. The program has a compile error because the control variable in the for loop cannot be of the double type.
C. The program runs in an infinite loop because d < 10 would always be true.
D. The program compiles and runs fine.

5.11  Which of the following loops prints "Welcome to Java" 10 times?

A:
for (int count = 1; count <= 10; count++) {
  System.out.println("Welcome to Java");
}

B:
for (int count = 0; count < 10; count++) {
  System.out.println("Welcome to Java");
}

C:
for (int count = 1; count < 10; count++) {
  System.out.println("Welcome to Java");
}

D:
for (int count = 0; count <= 10; count++) {
  System.out.println("Welcome to Java");
}
A. BD
B. ABC
C. AC
D. BC
E. AB

5.12  Which of the following loops correctly computes 1/2 + 2/3 + 3/4 + ... + 99/100?

A:
double sum = 0;
for (int i = 1; i <= 99; i++) {
  sum = i / (i + 1);
}
System.out.println("Sum is " + sum);

B:
double sum = 0;
for (int i = 1; i < 99; i++) {
  sum += i / (i + 1);
}
System.out.println("Sum is " + sum);

C:
double sum = 0;
for (int i = 1; i <= 99; i++) {
  sum += 1.0 * i / (i + 1);
}
System.out.println("Sum is " + sum);

D:
double sum = 0;
for (int i = 1; i <= 99; i++) {
  sum += i / (i + 1.0);
}
System.out.println("Sum is " + sum);

E:
double sum = 0;
for (int i = 1; i < 99; i++) {
  sum += i / (i + 1.0);
}
System.out.println("Sum is " + sum);
A. BCD
B. ABCD
C. B
D. CDE
E. CD

5.13  The following loop displays _______________.

for (int i = 1; i <= 10; i++) {
  System.out.print(i + " ");
  i++;
}
A. 1 2 3 4 5 6 7 8 9
B. 1 2 3 4 5 6 7 8 9 10
C. 1 2 3 4 5
D. 1 3 5 7 9
E. 2 4 6 8 10

5.14  Do the following two statements in (I) and (II) result in the same value in sum?

(I):
for (int i = 0; i < 10; ++i) {
  sum += i;
}

(II):
for (int i = 0; i < 10; i++) {
  sum += i;
}
A. Yes
B. No

5.15  What is the output for y?

int y = 0;
for (int i = 0; i < 10; ++i) {
  y += i;
}
System.out.println(y);
A. 10
B. 11
C. 12
D. 13
E. 45

5.16  What is i after the following for loop?

int y = 0;
for (int i = 0; i < 10; ++i) {
  y += i;
}
A. 9
B. 10
C. 11
D. undefined

5.17  Is the following loop correct?

for ( ;  ; );
A. Yes
B. No

Section 5.8 Which Loop to Use?
5.18  Analyze the following fragment:

double sum = 0;
double d = 0;
while (d != 10.0) {
  d += 0.1;
  sum += sum + d;
}
A. The program does not compile because sum and d are declared double, but assigned with integer value 0.
B. The program never stops because d is always 0.1 inside the loop.
C. The program may not stop because of the phenomenon referred to as numerical inaccuracy for operating with floating-point numbers.
D. After the loop, sum is 0 + 0.1 + 0.2 + 0.3 + ... + 1.9

5.19  Analyze the following code:

public class Test {  
  public static void main (String[] args) {
    int i = 0;
    for (i = 0; i < 10; i++);
      System.out.println(i + 4);
  }
}
A. The program has a compile error because of the semicolon (;) on the for loop line.
B. The program compiles despite the semicolon (;) on the for loop line, and displays 4.
C. The program compiles despite the semicolon (;) on the for loop line, and displays 14.
D. The for loop in this program is same as for (i = 0; i < 10; i++) { }; System.out.println(i + 4);

Section 5.9 Nested Loops
5.20  How many times is the println statement executed?

for (int i = 0; i < 10; i++) 
  for (int j = 0; j < i; j++)
    System.out.println(i * j)
A. 100
B. 20
C. 10
D. 45

5.21  Which pattern is produced by the following code?

for (int i = 1; i <= 6; i++) {
  for (int j = 6; j >= 1; j--)
    System.out.print(j <= i ? j + " " : " " + " ");
  System.out.println();
}

Pattern A        Pattern B        Pattern C        Pattern D
1                1 2 3 4 5 6                1      1 2 3 4 5 6
1 2              1 2 3 4 5                2 1        1 2 3 4 5
1 2 3            1 2 3 4                3 2 1          1 2 3 4
1 2 3 4          1 2 3                4 3 2 1            1 2 3
1 2 3 4 5        1 2                5 4 3 2 1              1 2
1 2 3 4 5 6      1                6 5 4 3 2 1                1
A. Pattern A
B. Pattern B
C. Pattern C
D. Pattern D

5.22  How many times is the println statement executed?

for (int i = 0; i < 10; i++) 
  for (int j = 0; j < 10; j++)
    System.out.println(i * j);
A. 100
B. 20
C. 10
D. 45

Section 5.10 Minimizing Numerical Errors
5.23  To add 0.01 + 0.02 + ... + 1.00, what order should you use to add the numbers to get better accuracy?
A. add 0.01, 0.02, ..., 1.00 in this order to a sum variable whose initial value is 0.
B. add 1.00, 0.99, 0.98, ..., 0.02, 0.01 in this order to a sum variable whose initial value is 0.

5.24  Analyze the following code.

double sum = 0;
for (double d = 0; d < 10; sum += sum + d)  {  
  d += 0.1;
}
A. The program has a syntax error because the adjustment statement is incorrect in the for loop.
B. The program has a syntax error because the control variable in the for loop cannot be of the double type.
C. The program compiles but does not stop because d would always be less than 10.
D. The program compiles and runs fine.

Section 5.11 Case Studies
5.25  What is y after the following for loop statement is executed?

int y = 0;
for (int i = 0; i < 10; ++i)  { 
  y += 1;
}
A. 9
B. 10
C. 11
D. 12

Section 5.12 Keywords break and continue
5.26  Will the following program terminate?

int balance = 10;

while (true) {
  if (balance < 9)
    break;
  balance = balance - 9;
}
A. Yes
B. No

5.27  What is sum after the following loop terminates?

int sum = 0;
int item = 0;
do {
  item++;
  sum += item;
  if (sum > 4)
    break;
}
while (item < 5);
A. 5
B. 6
C. 7
D. 8
E. 9

5.28  What is the output after the following loop terminates?

int number = 25;
int i;

boolean isPrime = true;
for (i = 2; i < number && isPrime; i++) {
  if (number % i == 0) {
    isPrime = false;
  }
}

System.out.println("i is " + i + " isPrime is " + isPrime);
A. i is 5 isPrime is true
B. i is 5 isPrime is false
C. i is 6 isPrime is true
D. i is 6 isPrime is false

5.29  What is the output after the following loop terminates?

int number = 25;
int i;

boolean isPrime = true;
for (i = 2; i < number; i++) {
  if (number % i == 0) {
    isPrime = false;
    break;
  }
}

System.out.println("i is " + i + " isPrime is " + isPrime);
A. i is 5 isPrime is true
B. i is 5 isPrime is false
C. i is 6 isPrime is true
D. i is 6 isPrime is false

5.30  What is sum after the following loop terminates?

int sum = 0;
int item = 0;
do {
  item++;
  if (sum >= 4)
    continue;
  sum += item;
}
while (item < 5);
A. 6
B. 7
C. 8
D. 9
E. 10

5.31  Will the following program terminate?

int balance = 10;

while (true) {
  if (balance < 9)
    continue;
  balance = balance - 9;
}
A. Yes
B. No

5.32  What balance after the following code is executed?

int balance = 10;

while (balance >= 1) {
  if (balance < 9)
    continue;
  balance = balance - 9;
}
A. -1
B. 0
C. 1
D. 2
E. The loop does not end

5.33  What is the value of balance after the following code is executed?

int balance = 10;

while (balance >= 1) {
  if (balance < 9)
    break;
  balance = balance - 9;
}
A. -1
B. 0
C. 1
D. 2

Section 5.13 Case Study: Checking Palindromes
5.34  What is the number of iterations in the following loop?

  for (int i = 1; i < n; i++) {
    // iteration
  }
A. 2*n
B. n
C. n - 1
D. n + 1

5.35  What is the number of iterations in the following loop?

  for (int i = 1; i <= n; i++) {
    // iteration
  }
A. 2*n
B. n
C. n - 1
D. n + 1

Section 5.14 Case Study: Displaying Prime Numbers
5.36  Suppose the input for number is 9. What is the output from running the following program?

import java.util.Scanner;

public class Test {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.print("Enter an integer: ");
    int number = input.nextInt();

    int i;

    boolean isPrime = true;
    for (i = 2; i < number && isPrime; i++) {
      if (number % i == 0) {
        isPrime = false;
      }
    }

    System.out.println("i is " + i);

    if (isPrime)
      System.out.println(number + " is prime");
    else
      System.out.println(number + " is not prime");
  }
}
A. i is 3 followed by 9 is prime
B. i is 3 followed by 9 is not prime
C. i is 4 followed by 9 is prime
D. i is 4 followed by 9 is not prime

5.37  Analyze the following code:

import java.util.Scanner;

public class Test { 
  public static void main(String[] args) {
    int sum = 0;
    for (int i = 0; i < 100000; i++) {
      Scanner input = new Scanner(System.in);
      sum += input.nextInt();
    }
  }
}
A. The program does not compile because the Scanner input = new Scanner(System.in); statement is inside the loop.
B. The program compiles, but does not run because the Scanner input = new Scanner(System.in); statement is inside the loop.
C. The program compiles and runs, but it is not efficient and unnecessary to execute the Scanner input = new Scanner(System.in); statement inside the loop. You should move the statement before the loop.
D. The program compiles, but does not run because there is not prompting message for entering the input.