問題
次の擬似言語プログラムの実行後、配列dataの内容はどれか。 整数型の配列: data ← {1, 2, 3, 4, 5} 整数型: i ← 1 while (i ≦ 5) data[i] ← data[i] × 2 i ← i + 1 endwhile
選択肢
- 1ア {1, 2, 3, 4, 5}
- 2イ {2, 3, 4, 5, 6}
- 3ウ {2, 4, 6, 8, 10}
- 4エ {0, 2, 4, 6, 8}
正解
3. ウ {2, 4, 6, 8, 10}
詳しい解説を見る解説を閉じる
解説
正解はウ。このプログラムは、配列dataの全要素を先頭から順に2倍して同じ位置に書き戻す処理である。トレースすると、i=1でdata[1]=1×2=2、i=2でdata[2]=2×2=4、i=3でdata[3]=3×2=6、i=4でdata[4]=4×2=8、i=5でdata[5]=5×2=10となり、実行後の配列は{2, 4, 6, 8, 10}である。アは更新が一度も行われていない初期状態、イは各要素に1を加えた場合、エは2倍した後に2を引いた場合の結果であり、いずれも本問の更新式とは一致しない。基本情報の科目Bでは、配列の全要素を走査して加工する処理は頻出の基本パターンであり、添字iが動く範囲(1〜5)と、更新式data[i]←data[i]×2が各要素にちょうど1回ずつ適用されることを確認するのがポイントである。
一問一答
科目A 180問+科目B 60問