問題
次の擬似言語プログラムの実行結果として、変数sumの値はいくつか。 整数型: sum ← 0 整数型: i ← 1 while (i ≦ 10) if (i mod 2 = 0) sum ← sum + i endif i ← i + 1 endwhile
選択肢
- 1ア 25
- 2イ 30
- 3ウ 45
- 4エ 55
正解
2. イ 30
詳しい解説を見る解説を閉じる
解説
iを1から10まで1ずつ動かし、i mod 2 = 0、すなわちiを2で割った余りが0(偶数)のときだけsumに加算する処理である。加算されるのは2、4、6、8、10であり、sum = 2+4+6+8+10 = 30 となるためイが正解である。エの55は奇数も含めた1〜10の総和(条件判定を無視した場合)、アの25は奇数のみの合計(1+3+5+7+9、条件を逆に取った場合)であり、いずれも剰余条件の読み誤りを狙った選択肢である。modは剰余(割り算の余り)を求める演算子で、「i mod 2 = 0 は偶数判定、i mod 2 = 1 は奇数判定」という定石は擬似言語問題に繰り返し登場する。剰余演算による条件分岐は倍数判定などにも応用される頻出パターンであり、確実に読み取れるようにしたい。
一問一答
科目A 180問+科目B 60問