基本情報技術者科目Bの擬似言語とデータ構造オリジナル・公式資料照合難易度★★☆☆☆
添字1~5の配列a={6,4,9,2,7}を次の処理で探索する。x=9のとき、返す値はどれか。 i ← 1 while i ≦ 5 and a[i] ≠ x i ← i + 1 endwhile if i ≦ 5 return i else return 0 endif andは左側が偽なら右側を評価しない。
A
0
0を返すのは5要素のどこにもxが見つからなかった場合です。
B
2
2は0始まりなら9の位置ですが、この設問の添字は1から始まります。
C
3★ 正解
a[1]=6、a[2]=4を通過し、a[3]=9でループを抜けて3を返します。
D
9
返すのは見つかった要素の値9ではなく、その添字iです。
解説
線形探索は先頭から比較します。見つかった時点の添字3が返り、ループ中の比較回数は3回です。
根拠資料・確認情報
対応範囲:2026年度 基本情報技術者試験 科目A・B
資料確認日:2026-10-28
同じレッスンの問題
問題 1
配列a={3,8,2,7,4}の添字は1から始まる。次の擬似言語を実行した後のsはどれか。
s ← 0
for i を 1 から 5 まで1ずつ増やす
if a[i] mod 2 = 0
s ← s + a[i]
endif
endfor
modは整数の剰余を表す。
問題 3
昇順配列a={2,5,8,12,16,23,38}の添字は1~7である。二分探索でlow=1, high=7から開始し、mid=floor((low+high)/2)とする。x=16を探し、a[mid]<xならlow=mid+1、a[mid]>xならhigh=mid-1にする。比較する添字midの順序はどれか。
問題 4
空のスタックに対して、push(4)、push(7)、x←pop()、push(2)、y←pop()、z←pop()を順に実行する。pushは先頭へ積み、popは最後に積んだ要素を取り出す。x,y,zの組はどれか。
問題 5
配列a={2,2,5,5,5,2}の隣接する同じ値を一つのまとまりとして数える。次の処理のgroupsは最終的に幾つか。添字は1~6である。
groups ← 1
for i を 2 から 6 まで1ずつ増やす
if a[i] ≠ a[i-1]
groups ← groups + 1
endif
endfor