アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20221211 実施分 問9
配列 A の 1 番目から N 番目の要素に整数が格納されている(N>1)。次の図は,X と同じ値が何番目の要素に格納されているかを調べる流れ図である。この流れ図の実行結果として,適切な記述はどれか。
流れ図: 開始 → k ← 1 → 判定「k : N」。k : N が「>」なら終了へ。「≦」なら判定「X : A(k)」へ。X : A(k) が「=」なら終了へ。「≠」なら k ← (k + 1) を実行して,再び判定「k : N」の直前へ戻る(ループ)。終了。
- ア X と同じ値が配列中にない場合,k には 1 が設定されている。
- イ X と同じ値が配列中にない場合,k には N が設定されている。
- ウ X と同じ値が配列の 1 番目と N 番目の 2 か所にある場合,k には 1 が設定されている。
- エ X と同じ値が配列の 1 番目と N 番目の 2 か所にある場合,k には N が設定されている。
出典:基本情報技術者試験 科目A免除 修了試験 20221211 実施分 問9
答えと解説を見る
正解:ウ
覚える知識
線形探索の流れ図読解
線形探索では最初に一致した要素の位置で探索を打ち切り、一致なしの場合は添字が範囲外まで進む。
この問題で必要なこと
先頭から調べ、最初に一致した位置で終了する。なければk=N+1で終了する。複数一致なら最初の位置が残る。
ひっかけ
見つからない場合のkをNと誤解したり、複数一致時に最後の位置が残ると考えたりする。
この知識の出題:本試験系 0 回・免除試験 2 回(公開問題での観測値)