問題
次の擬似言語プログラムを実行したとき、変数sumの値はいくつか。 整数型の配列: data ← {10, 20, 30, 40, 50} 整数型: sum ← 0 整数型: i ← 1 while (i ≦ 5) sum ← sum + data[i] i ← i + 2 endwhile
選択肢
- 1ア 60
- 2イ 90
- 3ウ 100
- 4エ 150
正解
2. イ 90
詳しい解説を見る解説を閉じる
解説
ループの更新式が i ← i + 2 となっている点が本問の鍵である。iは1→3→5と進み、次にi=7となった時点で条件 i≦5 が偽になり終了する。したがって参照されるのは data[1]=10、data[3]=30、data[5]=50 の3要素であり、sum = 10 + 30 + 50 = 90 でイが正解である。エの150は全要素の合計(更新式を i ← i + 1 と誤読した場合)、アの60は偶数番要素 data[2]+data[4] = 20+40 を加算した場合の値である。トレースの際は、ループ変数の増分(ステップ幅)を必ず最初に確認する習慣が重要で、増分2は「1つおきに処理する」典型パターンである。どの添字が実際に参照されるかを書き出してから合計すれば、確実に正答できる。
一問一答
科目A 180問+科目B 60問