プログラミングの基礎(擬似言語のトレース)
二重ループの中に条件分岐がある次のプログラムを実行した後の c の値はどれか。
整数型: c ← 0
for (i を 1 から 4 まで 1 ずつ増やす)
for (j を 1 から i まで 1 ずつ増やす)
if (j mod 2 = 1)
c ← c + 1
endif
endfor
endfor
- A4
- B6
- C10
答えと解説を見る
正解:B. 6
内側の繰返しは j = 1〜i で、j が奇数のときだけ c を増やします。i = 1 では j = 1 の1回、i = 2 では j = 1 の1回、i = 3 では j = 1、3 の2回、i = 4 では j = 1、3 の2回で、合計 1 + 1 + 2 + 2 = 6 です。内側の処理は全部で 1 + 2 + 3 + 4 = 10 回実行されますが、そのうち条件を満たすのは6回です。繰返しの中に条件分岐を入れた、制御構造の組合せの基本形です。
- A. j が偶数のときを数えた値です。j mod 2 = 1 は j が奇数のときに真になります。
- B. 正しい。1 + 1 + 2 + 2 = 6 回です。
- C. if の条件を無視して、内側の処理の実行回数 1 + 2 + 3 + 4 を数えた値です。