Skip to main content
Contents Index
Dark Mode Prev Up Next Scratch ActiveCode Profile
\(
\newcommand{\lt}{<}
\newcommand{\gt}{>}
\newcommand{\amp}{&}
\definecolor{fillinmathshade}{gray}{0.9}
\newcommand{\fillinmath}[1]{\mathchoice{\colorbox{fillinmathshade}{$\displaystyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\textstyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\scriptstyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\scriptscriptstyle\phantom{\,#1\,}$}}}
\)
Section 2.23 Loops Multiple Choice Exercises (2.7-2.12)
Subsection 2.23.1 Easier Multiple Choice Questions
These problems are easier than most of those that you will usually see on the AP CSA exam.
Activity 2.23.1 .
What does the following code print?
for (int i = 3; i <= 12; i++)
{
System.out.print(i + " ");
}
What is i set to in the initialization area?
What is i set to in the initialization area?
This loop changes i by 1 each time in the change area.
The value of i starts at 3 and this loop will execute until i equals 12. The last time through the loop the value of i is 12 at the begininng and then it will be incremented to 13 which stops the loop since 13 is not less than or equal to 12.
Activity 2.23.2 .
How many times does the following method print a
*
?
for (int i = 3; i < 9; i++)
{
System.out.print("*");
}
This would be true if i started at 0.
Note that it stops when i is 9.
Since i starts at 3 and the last time through the loop it is 8 the loop executes 8 - 3 + 1 times = 6 times.
This would be true if i started at 0 and ended when i was 10. Does it?
Activity 2.23.3 .
What does the following code print?
int x = -5;
while (x < 0)
{
x++;
System.out.print(x + " ");
}
x is initialized (set) to -5 to start.
x is incremented (x++) before the print statement executes.
x is set to -5 to start but then incremented by 1 so it first prints -4.
Activity 2.23.4 .
How many times does the following method print a
*
?
for (int i = 5; i <= 12; i++)
{
System.out.print("*");
}
This would be true if it stopped when i was 12, but it loops when i is 12.
Note that it stops when i is 13 so 13 - 5 is 8.
This would be true if i started at 1.
This would be true if i started at 0.
Activity 2.23.5 .
How many times does the following method print a
*
?
for (int i = 1; i < 5; i++)
{
System.out.print("*");
}
The loop starts with i = 1 and loops as long as it is less than 5 so i is 1, 2, 3, 4.
This would be true if the condition was i <= 5.
This would be true if i started at 0 and ended when it reached 6 (i <= 5).
Activity 2.23.6 .
How many times does the following method print a
*
?
for (int i = 0; i <= 8; i++)
{
System.out.print("*");
}
This would be true if i started at 1 and ended when it reached 8.
This would be true if the loop ended when i reached 8.
This loop starts with i = 0 and continues till it reaches 9 so (9 - 0 = 9).
Activity 2.23.7 .
How many times does the following method print a
*
?
for (int x = 0; x < 5; x++)
{
System.out.print("*");
}
This would be true if x started at 1 instead of 0.
The loop starts with x = 0 and ends when it reaches 5 so 5 - 0 = 5.
This would be true if the condition was x <= 5 instead of x = 5.
Activity 2.23.8 .
How many times does the following method print a
*
?
for (int x = 2; x < 8; x++)
{
System.out.print("*");
}
This loop starts with x = 2 and continues while it is less than 8 so 8 - 2 = 6.
This would be true if the loop ended when x was 9 instead of 8 (x <= 8).
This would be true if the loop started with x = 0.
Activity 2.23.9 .
What does the following code print?
int x = 0;
while (x <= 5)
{
System.out.print(x + " ");
x++;
}
This would be true if x started at 1 and ended when x was 5.
This would be true if x started at 1.
This would be true if the loop ended when x was 5.
This loop starts with x = 0 and ends when it reaches 6.
Activity 2.23.10 .
What does the following code print?
int x = 3;
while (x < 9)
{
System.out.print(x + " ");
}
Notice that x isnβt changed in the loop.
Notice that x isnβt changed in the loop.
Notice that x isnβt changed in the loop.
Notice that x isnβt changed in the loop.
Since x is never changed in the loop this is an infinite loop.
Subsection 2.23.2 Medium Multiple Choice Questions
These problems are similar to those you will see on the AP CSA exam.
Activity 2.23.11 .
How many stars are output when the following code is executed?
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++)
System.out.println("*");
}
The second loop executes 5 times for each of the 5 times the first loop executes, so the answer should be 5 * 5.
The second loop executes 5 times for each of the 5 times the first loop executes, so the answer should be 5 * 5.
The first loop will execute 5 times, and for each time through, the second loop will execute 5 times. So the answer is the number of times through the first loop times the number of times through the second.
The second loop executes 5 times for each of the 5 times the first loop executes, so the answer should be 5 * 5.
The second loop executes 5 times for each of the 5 times the first loop executes, so the answer should be 5 * 5.
Activity 2.23.12 .
Which of the following code segments will produce the displayed output?
1
22
333
4444
55555
I. for (int i = 1; i <= 5; i++) {
for (int j = i; j > 0; j--) {
System.out.print(i);
}
System.out.println();
}
II. for (int i = 0; i < 5; i++) {
for (int j = 0; j < i; j++) {
System.out.print(i);
}
System.out.println();
}
III. for (int i = 1; i < 5; i++) {
for (int j = i; j > 0; j--) {
System.out.print(i);
}
System.out.println();
}
IV. for (int i = 1; i < 6; i++) {
for (int j = 0; j < i; j++) {
System.out.println(i);
}
}
V. for (int i = 0; i < 5; i++) {
for (int j = 0; j < i; j++) {
System.out.print(i+1);
}
System.out.println();
}
This will loop with i changing from 1 to 5 and then for each i, j will loop from i to 0 printing the value of i and then a new line.
This will loop i from 0 to 4 and j from 0 to i, neglecting to ouput 5.
This will loop with i changing from 1 to 4 and j from i to 0.
This will loop with i changing from 1 to 5 and j from 0 to i but it will print each value on a different line.
This will loop with i changing from 0 to 4 and j from 0 to i.
Activity 2.23.13 .
What is printed as a result of the following code segment?
for (int k = 0; k < 20; k+=2) {
if (k % 3 == 1)
System.out.print(k + " ");
}
This would be correct if we were printing out all of the values of k, not just the ones that have a remainder of 1 when divided by 3.
This is missing the value 10 (10 divided by 3 does have a remainder of 1).
None of these answers have a remainder of 1 when divided by 3.
This answer would be correct if k was incremented by 1 instead of 2. K will be 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 in this loop.
This will loop with k having a value of 0 to 18 (it will stop when k = 20). It will print out the value of k followed by a space when the remainder of dividing k by 3 is 1.
Activity 2.23.14 .
Which of the following code segments will produce the displayed output?
11111
2222
333
44
5
I. for (int j = 1; j <= 5; j++) {
for (int k = 5; k >= j; k--) {
System.out.print(j);
}
System.out.println();
}
II. for (int j = 1; j <= 5; j++) {
for (int k = 5; k >= 1; k--) {
System.out.print(j);
}
System.out.println();
}
III. for (int j = 1; j <= 5; j++) {
for (int k = 1; k <= j; k++) {
System.out.print(j);
}
System.out.println();
}
IV. for (int j = 1; j <= 5; j++) {
for (int k = 1; k <= 5; k++) {
System.out.println(j);
}
}
V. for (int j = 1; j <= 5; j++) {
for (int k = j; k <= 5; k++) {
System.out.print(k);
}
System.out.println();
}
This will loop with j from 1 to 5 and k from 5 to j and print out the value of j and a space. So the first time through the loop it will print 1 five times and the next time it will print out 2 four times and so on.
This will print out each value from 1 to 5 five times.
This will loop with j from 1 to 5 and k from 1 times.
This will loop j from 1 to 5 and k from 1 to 5, printing each number 5 times.
This loops with j from 1 to 5 and k from j to 5 and prints out the value of k, printing 1 through 5 on the first line, 2 through 5 on the next, and so on.
Activity 2.23.15 .
What are the values of var1 and var2 after the following code segment is executed and the while loop finishes?
int var1 = 0;
int var2 = 2;
while ((var2 != 0) && ((var1 / var2) >= 0)) {
var1 = var1 + 1;
var2 = var2 - 1;
}
This would be true if the body of the while loop never executed. This would have happened if the while check was if var1 != 0 instead of var2 != 0
This would be true if the body of the while loop only execued one time, but it executes twice.
This would be true if the body of the while loop executed 3 times, but it executes twice.
The loop starts with var1=0 and var2=2. The while checks that var2 isnβt 0 and that var1/var2 is greater than or equal to zero (0/2=0) so this is equal to zero and the body of the while loop will execute. The variable var1 has 1 added to it for a new value of 1. The variable var2 has 1 subtracted from it for a value of 1. At this point var1=1 and var2=1. The while condition is checked again. Since var2 isnβt 0 and var1/var2 (1/1=1) is >=0 so the body of the loop will execute a second time. The variable var1 has 1 added to it for a new value of 2. The variable var2 has 1 subtracted from it for a value of 0. At this point var1=2 and var2=0. The while condition is checked again. Since var2 is zero the while loop stops and the value of var1 is 2 and var2 is 0.
The loop wonβt finish executing because of a division by zero.
0/2 wonβt cause a division by zero. The result is just zero.
Subsection 2.23.3 More Practice
Here are some recommended problems
You have attempted
of
activities on this page.