問題
次の擬似言語プログラムの空欄(A)に入るべき式はどれか。配列dataの要素を2つずつ合計して配列sumに格納する。 整数型の配列: data ← {1, 2, 3, 4, 5, 6} 整数型の配列: sum ← {0, 0, 0} 整数型: i ← 1 while (i ≦ 3) sum[i] ← data[(A)] + data[(A) + 1] i ← i + 1 endwhile
選択肢
- 1ア i
- 2イ i × 2
- 3ウ 2 × i - 1
- 4エ i + 1
正解
3. ウ 2 × i - 1
詳しい解説を見る解説を閉じる
解説
sumは3要素なのでループはi=1〜3で回り、dataの6要素を先頭から2個ずつ組にして合計する必要がある。求める組合せはsum[1]=data[1]+data[2]、sum[2]=data[3]+data[4]、sum[3]=data[5]+data[6]であるから、空欄(A)はi=1のとき1、i=2のとき3、i=3のとき5を与える式でなければならない。ウの2×i−1は順に1・3・5となり条件を満たすため正解である。アのiでは1・2・3となり組がずれて重複し、イのi×2は2・4・6となりdata[7]を参照して範囲外アクセスになる。エのi+1も2・3・4で組がずれる。実行結果はsum={3, 7, 11}である。頻出ポイント:穴埋め問題は候補の式にiの具体値を順に代入し、期待する添字の並びと一致するか検証するのが最も確実な解法である。
一問一答
科目A 180問+科目B 60問