FE SUBJECT B
基本情報技術者 科目Bの問題解説
問題
次のプログラム中の[空欄]に入れる最も適切な条件式はどれか。
○整数型: firstEvenIndex(整数型の配列: a)
整数型: i
for (i を 1 から aの要素数 まで 1 ずつ増やす)
if ( [空欄] )
return i
endif
endfor
return 0この手続は、配列の先頭から見て最初の偶数要素の添字を返す。
- ア a[i] mod 2 = 1
- イ a[i] mod 2 = 0
- ウ i mod 2 = 0
- エ a[i] = 0
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲
正解と解説
正解:a[i] mod 2 = 0
正解:a[i] mod 2 = 0
この問題では、偶数かどうかを判定する対象が添字 i ではなく、配列要素 a[i] である点を見る。先頭から順に調べ、条件が真になった瞬間に return i で終了するため、最初に見つかった偶数の位置が返る。
i mod 2 = 0 は「偶数番目の要素」を調べる条件であり、要素の値が偶数かどうかは判定できない。a[i] = 0 は0だけを探す条件なので、2や4などの偶数を見落とす。
| 候補 | 見る対象 | 問題点 |
|---|---|---|
| a[i] mod 2 = 0 | 要素の値 | 偶数判定として正しい |
| i mod 2 = 0 | 添字 | 偶数番目を見てしまう |
| a[i] = 0 | 要素の値 | 0以外の偶数を見落とす |
この問題について
公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。