問題
次の擬似言語プログラムを実行したとき、変数sumの値はいくつか。 整数型: sum ← 0 整数型: i ← 10 while (i > 0) sum ← sum + i i ← i - 2 endwhile
選択肢
- 1ア 20
- 2イ 25
- 3ウ 30
- 4エ 55
正解
3. ウ 30
詳しい解説を見る解説を閉じる
解説
正解はウ。iが10から2ずつ減りながらsumに加算されるカウントダウン型のループである。トレースすると、i=10でsum=10、i=8でsum=10+8=18、i=6でsum=18+6=24、i=4でsum=24+4=28、i=2でsum=28+2=30となり、次にi=0となった時点で条件i>0が偽となりループを抜ける。よってsum=10+8+6+4+2=30である。アの20は途中(i=6の手前など)で打ち切った値、イの25は奇数の和1+3+5+7+9と混同した値、エの55は1から10までの総和(10×11÷2)と混同した値である。基本情報の科目Bでは、減算でループ変数を更新する繰返しが頻出であり、「どの値が加算され、どの値でループが終了するか」を見極めることがポイントである。i=0の周回は実行されない点に注意したい。
一問一答
科目A 180問+科目B 60問