問題
次の擬似言語プログラムは配列dataから偶数を抜き出してresultに格納する。空欄(A)に入れるべき処理はどれか。 整数型の配列: data ← {1, 2, 3, 4, 5, 6} 整数型の配列: result ← {} 整数型: i ← 1 while (i ≦ 6) if (data[i] mod 2 = 0) (A) endif i ← i + 1 endwhile
選択肢
- 1ア resultの末尾にdata[i]を追加
- 2イ resultの末尾にiを追加
- 3ウ data[i]を削除
- 4エ resultをクリア
正解
1. ア resultの末尾にdata[i]を追加
詳しい解説を見る解説を閉じる
解説
正解はア。このプログラムは配列dataを先頭から走査し、data[i] mod 2=0(2で割り切れる=偶数)と判定された要素だけをresultに集める抽出処理である。空欄(A)には、条件を満たした要素の値そのものを格納する「resultの末尾にdata[i]を追加」が入る。実行するとi=2、4、6のときに条件が成立し、result={2, 4, 6}が得られる。イは要素の値ではなく添字(位置)を格納する処理であり、本問の配列ではたまたま値が一致するものの、偶数の値を抜き出すという目的に合わない。ウのdata[i]の削除は元の配列を壊すだけで収集にならず、エのresultのクリアではせっかく集めた結果が消えてしまう。基本情報の科目Bでは、条件に合う要素を別の配列へ抽出するフィルタ処理が頻出パターンである。
一問一答
科目A 180問+科目B 60問