問題
次の擬似言語プログラムを実行したとき、変数resultの値はいくつか。 整数型: result ← 0 整数型: i ← 1 while (i ≦ 5) if (i mod 2 = 1) result ← result + i else result ← result - i endif i ← i + 1 endwhile
選択肢
- 1ア -3
- 2イ 3
- 3ウ 5
- 4エ 15
正解
2. イ 3
詳しい解説を見る解説を閉じる
解説
正解はイ。iが1から5まで変化し、i mod 2=1(奇数)なら加算、偶数なら減算する処理である。トレースすると、i=1(奇数)でresult=0+1=1、i=2(偶数)でresult=1-2=-1、i=3(奇数)でresult=-1+3=2、i=4(偶数)でresult=2-4=-2、i=5(奇数)でresult=-2+5=3となり、最終値は3である。アの-3は加算と減算の分岐を逆に読んだ場合の値、ウの5は最後に加えたiの値、エの15はすべて加算した場合(1+2+3+4+5)の値である。基本情報の科目Bでは、ループ内に条件分岐を含むプログラムのトレースが頻出であり、各周回で「iの値→奇偶判定→実行される分岐→resultの新しい値」を表に書いて追跡するのが確実である。modによる奇偶判定(奇数は余り1)も頻出ポイントである。
一問一答
科目A 180問+科目B 60問