Java Topic Practice
Array Search
Practice mode with 15 Java-focused questions, immediate answer checks, and explanations.
For practice use only.
Array Search MCQ Practice
Array Search Java practice with 15 questions, code tracing, and a worked explanation for every answer.
Answered 0 of 15
Choose one answer.
Code Tracing 01 - Array Search: track the final printed value.
int[] data = {4, 9, 2, 7, 5, 1};
int target = 7;
int found = -1;
for (int i = 0; i < data.length; i++) {
if (data[i] == target) {
found = i;
break;
}
}
System.out.print(found);All 15 array search questions
Work through the interactive quiz above first. This is the full array search question set with worked solutions, so students can review any question after attempting it.
1.Code Tracing 01 - Array Search: track the final printed value.
int[] data = {4, 9, 2, 7, 5, 1}; int target = 7; int found = -1; for (int i = 0; i < data.length; i++) { if (data[i] == target) { found = i; break; } } System.out.print(found);- 7
- -1
- 4
- 3
Show worked solution
Correct answer: 3
A linear search returns the position of the first match, and the break stops the scan as soon as it is found.
2.Code Tracing 12 - Array Search: follow the variable updates.
int[] data = {6, 7, 4, 9, 7, 3}; int target = 999; int found = -1; for (int i = 0; i < data.length; i++) { if (data[i] == target) found = i; } System.out.print(found);- -1
- 0
- 6
- 999
Show worked solution
Correct answer: -1
The sentinel value of -1 survives untouched when no element matches, which is how callers detect a failed search.
3.Code Tracing 28 - Array Search: trace the branch and loop path.
int[] data = {9, 7, 2, 8, 10, 6}; int target = 2; int first = -1; int last = -1; for (int i = 0; i < data.length; i++) { if (data[i] == target) { if (first == -1) first = i; last = i; } } System.out.print(first + ":" + last);- 2:2
- -1:-1
- The code does not compile.
- A runtime exception is thrown.
Show worked solution
Correct answer: 2:2
Guarding the first assignment keeps it pinned to the earliest match, while last is overwritten on every match.
4.Code Tracing 39 - Array Search: watch the index changes.
int[] data = {11, 8, 4, 10, 6, 8}; int count = 0; for (int v : data) { if (v > 8) count++; } System.out.print(count);- 3
- 2
- 4
- 6
Show worked solution
Correct answer: 2
Counting matches requires scanning the whole array, so no break appears here.
5.Code Tracing 50 - Array Search: evaluate the state change step by step.
int[] data = {13, 9, 6, 8, 8, 10}; int target = 9; int idx = 0; while (idx < data.length && data[idx] != target) { idx++; } System.out.print(idx < data.length ? idx : -1);- 2
- 9
- 1
- -1
Show worked solution
Correct answer: 1
Checking the bounds before the array access is what stops this loop from reading past the end when the target is missing.
6.What is printed by the following code segment?
int[] a = {1, 3, 5, 7, 9}; int lo = 0; int hi = a.length - 1; int c = 0; while (lo <= hi) { int mid = (lo + hi) / 2; c++; if (a[mid] == 7) { lo = hi + 1; } else if (a[mid] < 7) { lo = mid + 1; } else { hi = mid - 1; } } System.out.print(c);- 3
- 1
- 2
- 5
Show worked solution
Correct answer: 2
The midpoints examined are 5 and then 7, so two comparisons find the target.
7.What is printed by the following code segment?
int[] a = {4, 4, 4}; int first = -1; int last = -1; for (int i = 0; i < a.length; i++) { if (a[i] == 4) { if (first == -1) { first = i; } last = i; } } System.out.print(first + " " + last);- 0 0
- 2 2
- -1 -1
- 0 2
Show worked solution
Correct answer: 0 2
The first index is recorded only once while the last is overwritten on every match.
8.What is printed by the following code segment?
int[] a = {2, 4, 6}; int t = 5; int pos = -1; for (int i = 0; i < a.length && pos == -1; i++) { if (a[i] >= t) { pos = i; } } System.out.print(pos);- 2
- -1
- 1
- 3
Show worked solution
Correct answer: 2
The loop condition itself stops the search once a position is recorded, and 6 is the first value at least 5.
9.What is printed by the following code segment?
int[] a = {5, 2, 8, 2}; int c = 0; for (int i = 0; i < a.length; i++) { if (a[i] == 2) { c++; } else if (a[i] > 5) { c += 2; } } System.out.print(c);- 3
- 4
- 2
- 5
Show worked solution
Correct answer: 4
Two matches add one each and the single larger value adds two.
10.Why does binary search fail on the array below?
int[] a = {9, 1, 7, 3, 5};- The array has an odd number of elements.
- Binary search requires values greater than 5.
- The array is not sorted, so discarding half the range can discard the target.
- The array must contain no duplicates.
Show worked solution
Correct answer: The array is not sorted, so discarding half the range can discard the target.
The halving decision is only meaningful when the data is ordered, and unsorted input produces a wrong answer rather than an error.
11.What is printed by the following code segment?
int[] a = {1, 2, 3, 4, 5, 6, 7, 8}; int lo = 0; int hi = a.length - 1; int mid = 0; while (lo <= hi) { mid = (lo + hi) / 2; if (a[mid] == 3) { lo = hi + 1; } else if (a[mid] < 3) { lo = mid + 1; } else { hi = mid - 1; } } System.out.print(mid);- 3
- 1
- 4
- 2
Show worked solution
Correct answer: 2
The search examines index 3, then 1, then 2, where it finds the value.
12.What is printed by the following code segment?
int[] a = {3, 1, 4}; int best = -1; for (int i = 0; i < a.length; i++) { if (best == -1 || a[i] > a[best]) { best = i; } } System.out.print(best);- 2
- 0
- 1
- -1
Show worked solution
Correct answer: 2
Short-circuit evaluation seeds the index on the first pass without a separate initialisation step.
13.What is printed by the following code segment?
int[] a = {10, 20, 30, 40}; int c = 0; int lo = 0; int hi = a.length - 1; while (lo < hi) { c++; lo++; hi--; } System.out.print(c);- 4
- 2
- 3
- 1
Show worked solution
Correct answer: 2
Two indexes converge from the ends and meet after two steps in a four-element array.
14.What is printed by the following code segment?
int[] a = {1, 2, 3}; int target = 4; boolean found = false; for (int v : a) { found = found || v == target; } System.out.print(found);- true
- The code does not compile.
- false
- 4
Show worked solution
Correct answer: false
The accumulating disjunction stays false because no element matches.
15.What is printed by the following code segment?
int[] a = {5, 3, 5, 1, 5}; int c = 0; int i = 0; while (i < a.length) { if (a[i] == 5) { c++; i += 2; } else { i++; } } System.out.print(c);- 2
- 5
- 1
- 3
Show worked solution
Correct answer: 3
Matching advances the index by two, so index 1 is skipped, but the matches at indexes 0, 2, and 4 are all reached.
