chapter 4 part 2
56) What is the output of the following code snippet? int counter = 1; for (double i = 0.01; i <= 1.0; i = i + 0.01) { counter++; } System.out.println(counter); a) 100 b) 49.50 c) 60.5 d) 10
a. 100
85) Which of the following code snippets displays the output exactly 10 times? a) int i = 0; while (i < 10); { System.out.println("This is example 1."); i++; } b) int i = 0; while (i < 10) { System.out.println("This is example 2."); i++; } c) int i = 0; while (i < 10) { System.out.println("This is example 3."); } d) int i = 1; while (i < 10) { System.out.println("This is example 4."); i++;
b
70) Which of the following is correct for simulating the toss of a pair of coins to get 0 (head) or 1 (tail) with different probabilities? a) (int) (Math.random() * 0 + 1) b) (int) (Math.random() * 1 + 1) c) (int) (Math.random() * 2) d) (int) (Math.random() * 2) + (int) (Math.random() * 2)
d) (int) (Math.random() * 2) + (int) (Math.random() * 2)
103) What is the last output line of the code snippet given below? int i = 5; while (i >= 1) { int num = 1; for (int j = 1; j <= i; j++) { System.out.print(num + "**"); num = num * 2; } System.out.println(); i = i - 1; } a) No output b) 1**2 c) 1**2**3 d) 1**
d) 1**
64) Suppose that a program asks a user to enter multiple integers, either positive or negative, to do some calculation. The data entry will stop when the user enters a certain value to indicate the end of the data. What value should the code use as the sentinel? a) 0 b) -1 c) 999 d) An alphabetic character
d) An alphabetic character
61) How many times does the following loop execute? for (double d = 1; d != 10; d++) { d = d / 3; System.out.print(d + " "); } a) 10 b) 9 c) 8 d) An infinite number of times
d) An infinite number of times
65) Which of the following statements expresses why the following code is considered bad form? for (rate = 5; years-- > 0; System.out.println(balance)) . . . I. Unrelated expressions in loop header II. Doesn't match expected for loop idiom III. Loop iteration is not clear a) II and III only b) I and II only c) I and III only d) I, II, and III
d) I, II, and III
77. When hand-tracing a portion of code, which statement about Boolean conditions is true? a) They typically are too complex to be evaluated. b) They do not need to be monitored because their result usually is not stored in a variable. c) It is rare to encounter a Boolean condition. d) They are crucial to evaluate since they determine if-statement conditions and looping.
d) They are crucial to evaluate since they determine if-statement conditions and looping.
87) What changes do you need to make in the following code snippet to display "Let us learn Java" exactly 10 times? int i = 0; while (i <= 10) { System.out.println("Let us learn Java"); i++; } a) while (i < 9) b) while (i < 11) c) while (i < 12) d) int i = 1;
d) int i = 1;
52) Choose the loop that is equivalent to this loop. int n = 1; double x = 0; double s; do { s = 1.0 / (n * n); x = x + s; n++; } while (s > 0.01); a) double x = 0; double s = 1; for (int k = 1; s > 0.01; k++) { s = 1.0 / (k * k); x = x + s; } b) double x = 0; double s = 1; for (int k = 1; k < 100; k++) { s = 1.0 / (k * k); x = x + s; } c) double x = 0; double s = 1; int k = 10; while (s > 0.01) { s = 1.0 / (k * k); x = x + s; k++; } d) double x = 0; double s = 10; int k = 1; while (s > 0.01) { s = 1.0 / (k * k); x = x + s; k++;
a) double x = 0; double s = 1; for (int k = 1; s > 0.01; k++) { s = 1.0 / (k * k); x = x + s; }
71) Suppose that the chance to hit the jackpot in a lottery is one in one million. Which of the following code snippets simulates that random number? a) (long) (Math.random() * 1000000 + 1) b) (long) (Math.random() * 100000 + 1) c) (long) (Math.random() * 9999990 + 1) d) (long) (Math.random() * 1000001 + 1)
a) (long) (Math.random() * 1000000 + 1)
106) What is the output of this code snippet? int s = 1; int n = 1; do { s = s + n; System.out.print(s + " "); n++; } while (s < 3 * n); a) 2 4 7 11 16 22 b) 1 3 5 7 9 c) 2 3 5 6 7 d) 2 4 6 8
a) 2 4 7 11 16 22
69) What is the output of the following loop? int s = 1; int n = 1; do { s = s + n; n++; } while (s < 10 * n); System.out.println(s); a) 211 b) 210 c) 120 d) 123
a) 211
98) How many times does the following loop execute? int upperCaseLetters = 0; String str = "abcdefgHIJKL"; boolean found = false; for (int i = str.length() - 1; i >= 0 && !found; i--) { char ch = str.charAt(i); if (Character.isUpperCase(ch)) { upperCaseLetters; } else { found = false; } } a) 6 times b) 8 times c) 9 times d) 12 times
a) 6 times
83) Which statement about storyboards is true? a) A storyboard can help prevent potential user confusion early in the design process. b) Storyboards are used primarily to understand how implemented programs work. c) The storyboard helps to train users about how to use software. d) Storyboards have no relationship to the structure of an actual working program.
a) A storyboard can help prevent potential user confusion early in the design process
58) What does the following code snippet display? char ch1 = '\ u0000'; char ch2 = '\ uffff'; for (int i = 0; i < 1000; i++) { if (i % 50 == 0) { System.out.println(); } System.out.print((char)(ch1 + Math.random() * (ch2 - ch1 + 1))); } a) It displays random Unicode characters. b) It displays random ASCII characters. c) Nothing because it has compilation error. d) It displays the hexadecimal characters between '0' and 'F'.
a) It displays random Unicode characters.
81. When designing storyboards, it is a good idea to use different colors to a) Make it easy to distinguish between user input and program output. b) Match the colors your program will use when it is finally designed. c) Emphasize the difference between numbers and words. d) Draw lines to divide up panels into different regions.
a) Make it easy to distinguish between user input and program output.
90) Which for loop prints data across each row in the following code snippet? int i; int j; for (i = 1; i <= 3; i++) { for (j = 1; j <= 3; j++) { System.out.print("X"); } System.out.println(""); } a) The inner for loop b) The outer for loop c) Both for loops d) Another missing for loop
a) The inner for loop
76. When hand tracing, drawing a line through the value stored in a variable means that a) The value stored there has changed to something new b) The variable is the wrong data type for the code being executed c) The expression being evaluated uses that variable d) The variable must be inside a loop
a) The value stored there has changed to something new
92) In the following code snippet, when does the execution of the program switch from the inner loop to the outer loop? int i; int j; for (i = 0; i <= 9; i++) { for (j = 1; j < 5; j++) { System.out.println("Hello"); } } a) When the value of j becomes 5 b) When the program executes completely c) When the condition for the outer loop is met d) When the value of i is incremented
a) When the value of j becomes 5
66) Which of the following is considered a loop with a problematic condition? a) for(i = 1; i != n; i++) b) for (years = n; years > 0; years++) c) for(i = 1; i <= n; i++) d) for (int i = 20; i >= 10; i--)
a) for(i = 1; i != n; i++)
63) Which code snippet produces the sum of the first n even numbers? (0 is not considered an even number.) a) int sum = 0; for (int i = 1; i <= n; i++) { if (i % 2 == 0) { sum = sum + i; } } b) int sum = 0; for (int i = 1; i <= n; i++) { sum = sum + i * 2; } c) int sum = 0; for (int i = 0; i < n; i++) { if (i % 2 == 0) { sum = sum + i; } } d) int sum; for (int i = 1; i <= n; i++) { sum = sum + i * 2;
b) int sum = 0; for (int i = 1; i <= n; i++) { sum = sum + i * 2; }
53) What is the output of the following code snippet? int f1 = 0; int f2 = 1; int fRes; System.out.print(f1 + " "); System.out.print(f2 + " "); for (int i = 1; i < 10; i++) { fRes = f1 + f2; System.out.print(fRes + " "); f1 = f2; f2 = fRes; } System.out.println(); a) 0 1 5 7 9 11 13 15 17 19 b) 0 1 1 2 3 5 8 13 21 34 c) 0 1 4 6 8 10 12 14 16 18 d) 0 1 6 7 9 12 14 17 19 21
b) 0 1 1 2 3 5 8 13 21 34
95) What will be the output of the following code snippet? boolean token1 = true; while (token1) { for (int i = 0; i < 10; i++) { System.out.println("Hello"); } token1 = false; } a) No output. b) Hello will be displayed 10 times. c) Hello will be displayed 9 times. d) Hello will be displayed infinite times.
b) Hello will be displayed 10 times.
72) Which of the following loop(s) could possibly not enter the loop body at all? I. for loop II. while loop III. do loop a) I only b) I and II only c) II and III only d) I and III only
b) I and II only
84) What will be the result of running the following code fragment? int year = 0; double rate = 5; double principal = 10000; double interest = 0; while (year < 10) { interest = (principal * year * rate) / 100; System.out.println("Interest " + interest); } a) The code fragment will display the interest calculated for nine years. b) The code fragment will continue to display the calculated interest forever because the loop will never end. c) The code fragment will not display the calculated interest and halt abruptly. d) The code fragment will not display any output because it will not compile.
b) The code fragment will continue to display the calculated interest forever because the loop will never end
75) When hand-tracing the loop in the code snippet below, which variables are important to evaluate? int i = 10; int j = 5; int k = -10; int sum = 0; while (i > 0) { sum = sum + i + j; i--; System.out.println("Iteration: " + i); } a) The variables i and j b) The variables i and sum c) The variables i, j, and k d) The variables j and k
b) The variables i and sum
89) Is the following code snippet legal? boolean b = false; do { System.out.println("Do you think in Java?"); } while (b != b); a) Yes, it is legal but does not print anything. b) Yes, it is legal and prints "Do you think in Java?" once. c) Yes, it is legal and prints "Do you think in Java?" twice. d) No, it is not legal and gives a compilation error.
b) Yes, it is legal and prints "Do you think in Java?" once.
59) Which of the following for loops is illegal? a) for (int i = 0; ; ) { } b) for (int i = 0) { } c) for (int i = 0, k = 1; ; i++) { } d) for ( ; ; )
b) for (int i = 0) { }
104) Select the statement that correctly completes the loop in this code snippet. int years = 20; double balance = 10000; while (years > 0) { __________ double interest = balance * rate / 100; balance = balance + interest; } a) years++; b) years--; c) balance++; d) balance--;
b) years--;
86) What is the output of the following code snippet? int i = 1; while (i != 9) { System.out.print(i + " "); i++; if (i == 9) { System.out.println("End"); } } a) 1 End b) 1 End (infinite loop) c) 1 2 3 4 5 6 7 8 End d) 1 2 3 4 5 6 7 8 End (infinite loop)
c) 1 2 3 4 5 6 7 8 End
62) How many times does the following loop execute? int i = 0; boolean found = false; while (i < 100 && !found) { i++; System.out.print(i + " "); int j = i * i; if ((i * i * i) % j == j) { found = true; } } a) 10 times b) 20 times c) 100 times d) An infinite number of times
c) 100 times
88) How many times is the text "Let's have fun with Java." printed when this code snippet is run? int i = 0; do { System.out.println("Let's have fun with Java."); i++; if (i % 2 == 0) { i = 10; } } while (i <= 10); a) 1 b) 2 c) 3 d) 10
c) 3
68) What is the output of this code snippet? String str = "ABCabc"; char ch; int i = 0; while (i < str.length()) { ch = str.charAt(i); if (Character.isLowerCase(ch)) { System.out.print(i + " "); } else { i++; } } a) 3 4 5 b) 3 c) 3 3 3 3 3 ... (infinite loop) d) 0 1 2
c) 3 3 3 3 3 ... (infinite loop)
97) How many times does the following loop run? int i = 0; int j = 1; do { System.out.println("" + i + ";" + j); i++; if (i % 3 == 0) { j--; } } while (j >= 1); a) 1 time b) 2 times c) 3 times d) 4 times
c) 3 times
57) What does the following code snippet print? int a = 120; int b = 90; int n1 = Math.abs(a); int n2 = Math.abs(b); int result = 1; for (int k = 1; k <= n1 && k <= n2; k++) { if (n1 % k == 0 && n2 % k == 0) { result = k; } } System.out.println(result); a) 10 b) 20 c) 30 d) 40
c) 30
82. Suppose you must design a program to calculate the roll-out (number of inches traveled in one revolution of the pedals of a bicycle based on its gear combinations). The user must provide the gear sizes, which must be converted into roll-out for all different gear combinations. How can the flow of user interaction for this problem be designed? a) Hand-tracing can confirm code that implements gear selection. b) Pseudocode can guide algorithm design through divide-and-conquer strategy. c) A storyboard can be used. d) The physical gears can lead to ideas for the correct algorithm to use.
c) A storyboard can be used.
54) How many times does the following loop execute? double d; double x = Math.random() * 100; do { d = Math.sqrt(x) * Math.sqrt(x) - x; System.out.println(d); x = Math.random() * 10001; } while (d != 0); a) Exactly once b) Exactly twice c) Can't be determined d) Always infinite loop
c) Can't be determined
73) Which of the following loop(s) should be used when you need to ask a user to enter one data item and repeat the prompt if the data is invalid? I. for loop II. while loop III. do loop a) I only b) I and II c) III only d) II only
c) III only
74) Which of the loop(s) test the condition after the loop body executes? I. for loop II. while loop III. do loop a) I only b) II only c) III only d) II and III
c) III only
55) What is the output of this loop? int i = 0; boolean found; while (i < 20 && !found) { int sum = i * 2 + i * 3; System.out.print(sum + " "); if (sum > 50) { found = true; } i++; } a) 0 5 10 15 20 25 30 35 40 45 50 55 b) 0 c) No output, compilation error d) 0 5 10
c) No output, compilation error
101) Is the code snippet written below legal? String s = "1234"; for (int i = 0; i <= 5; i++) { System.out.print(s.substring(i, i + 1)); } a) Yes. b) No; there should be a semicolon at the end of line 2. c) No; for i = 3, s.substring(i, i + 1) will result in an StringIndexOutOfBounds error. d) No; line 4 should have no semicolon at the end.
c) No; for i = 3, s.substring(i, i + 1) will result in an StringIndexOutOfBounds error
80. Storyboards are a helpful part of the design process because the storyboard develops a) A pseudocode description of the algorithm being designed b) The mathematical formulas required for computing a correct answer c) The information needed to solve the problem, and how to present that information d) The amount of time and space needed to find a solution
c) The information needed to solve the problem, and how to present that information
105) Which statement about this code snippet is accurate? int years = 50; double balance = 10000; double targetBalance = 20000; double rate = 3; for (int i = 1; i <= years; i++) { if (balance >= targetBalance) { i = years + 1; } else { double interest = balance * rate / 100; balance = balance + interest; } } a) The loop will run 50 times. b) The loop will never stop. c) The loop will run at most 50 times, but may stop earlier when balance exceeds or equals targetBalance. d) There is a compilation error.
c) The loop will run at most 50 times, but may stop earlier when
78. What are the values of i and j after the following code snippet executes? int i = 60; int j = 50; int count = 0; while (count < 5) { i = i + i; i = i + 1; j = j - 1; j = j - j; count++; } System.out.println(i); System.out.println(j); a) i = 65, j = 1 b) i = 65, j = 45 c) i = 1951, j = 0 d) i = 1951, j = 45
c) i = 1951, j = 0
67) How do you fix this code snippet to make it print out the sum when the user enters Q? System.out.print("Enter a value, Q to quit: "); double sum = 0; Scanner in = new Scanner(System.in); boolean hasData = true; do { double value = in.nextDouble(); sum = sum + value; System.out.print("Enter a value, Q to quit: "); } while (in.hasNext()); System.out.println("sum " + sum); a) while (in.hasData()); b) while (!in.hasEnded()); c) while (in.hasNextDouble()); d) while (hasData);
c) while (in.hasNextDouble());
96) What is the output of the code snippet given below? int i = 0; while (i != 11) { System.out.print(" " + i); i = i + 2; } a) No output b) 0 2 4 6 8 c) 10 12 14 16 18 .... (infinite loop) d) 0 2 4 6 8 10 12 14 .... (infinite loop)
d) 0 2 4 6 8 10 12 14 .... (infinite loop)
102) What is the output of the code snippet given below? int i = 0; while (i != 11) { System.out.print(i + " "); i = i + 3; } a) No output b) 0 3 6 9 12 15 18 c) 0 1 3 5 7 9 d) 0 3 6 9 .... (infinite loop
d) 0 3 6 9 .... (infinite loop
51) What is the output of the following code snippet? double a = 2; int n = 16; double r = 1; double b = a; int i = n; while (i > 0) { if (i % 2 == 0) // n is even { b = b * b; i = i / 2; } else { r = r * b; i--; } } System.out.println("r = " + r); a) 16.0 b) 128.0 c) 4096.0 d) 65536.0
d) 65536.0
93) Which of the following statements is correct about a sentinel? a) A sentinel is a value that creates a bridge between a data set and unrelated input. b) A sentinel is a value that is part of the data to be processed by the program. c) A sentinel is a value that terminates a program. d) A sentinel is a value that indicates the end of an input sequence.
d) A sentinel is a value that indicates the end of an input sequence.
91) What will be the output of the following code snippet? int i; int j; for (i = 0; i < 6; i++) { for (j = 7; j > i; j--) { System.out.print("*"); } System.out.println(""); } a) A rectangle with six rows and seven columns of asterisks. The number of rows increments by one on completion of one iteration of the inner loop. b) A right triangle with six rows and seven columns of asterisks. The number of columns increments by one on completion of one iteration of the inner loop. c) A rectangle with seven rows and six columns of asterisks. The number of rows increments by one on completion of one iteration of the inner loop. d) An inverted right triangle with six rows and seven columns of asterisks. The number of columns decrements by one on completion of one iteration of the inner loop.
d) An inverted right triangle with six rows and seven columns of asterisks. The number of columns decrements by one on completion of one iteration of the inner loop
107) When will the loop in the following code snippet stop? java.util.Scanner in = new java.util.Scanner(System.in); double sum = 0; int count = 0; System.out.print("Enter values, Q to quit: "); do { double value = in.nextDouble(); sum = sum + value; count++; System.out.print("Enter values, Q to quit: "); } while (in.hasNextDouble() && count < 100); I. When the user enters an integer II. When the user enters an alphabetic character III. After the user enters 100 numbers a) I or II b) II only c) III only d) II or III
d) II or III
79. The process of hand-tracing code is valuable because a) It is usually faster than just running the code. b) It is the best way to design an algorithm. c) You must already have a working program in order to do it. d) It gives valuable insight that you do not get by running the code
d) It gives valuable insight that you do not get by running the code
94) Which statement is correct about the execution of the loop in the following code fragment? double num; int incr = 0; Scanner reader = new Scanner(System.in); do { incr = incr + 1; System.out.println("Please enter a number (0 when done): "); num = reader.nextDouble(); } while (num != 0); System.out.println("" + incr); a) The loop will execute only when 0 is entered. b) The execution of the loop is independent of user input. c) The program prints the count of positive inputs. d) The loop will execute at least once even if the user has entered the sentinel value.
d) The loop will execute at least once even if the user has entered the sentinel value.
100) What is the output of the code snippet given below? String s = "aeiou"; int i = 0; do { System.out.print(s.substring(i, i + 1)); i++; if (i >= 3) { i = 5; } } while (i < 5); a) a b) ae c) aeiou d) aei
d) aei
60) Which of the following loops executes exactly 10 times? a) for (int i = 0; i <= 10; i++) { } b) int i = 0; boolean found = false; do { i++; if (i % 10 == 0) { found = true; } } while (i < 10 && !found); c) int i = 0; while (i <= 10) { i++; } d) for (int i = 1; i <= 10; i++)
d) for (int i = 1; i <= 10; i++)
99) Which of the following code snippets will generate a random number between 0 and 79? a) int val = (int) Math.random() % 80; b) int val = (int) Math.random() * 80 - 1; c) int val = (int) Math.random() % 79; d) int val = (int) Math.random() * 80;
d) int val = (int) Math.random() * 80