プログラミングの基礎(擬似言語のトレース)

二重ループの中に条件分岐がある次のプログラムを実行した後の c の値はどれか。

整数型: c ← 0
for (i を 1 から 4 まで 1 ずつ増やす)
  for (j を 1 から i まで 1 ずつ増やす)
    if (j mod 2 = 1)
      c ← c + 1
    endif
  endfor
endfor
  1. A4
  2. B6
  3. 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 を数えた値です。
この分野を解く 分野ページへ

関連する計算ツール

プログラミングの基礎(擬似言語のトレース)の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

プログラミングの基礎(擬似言語のトレース)のほかの問題

  1. 配列 a のすべての要素の合計を求めるつもりで、次のプログラムを書いた。配列の要素番号は1から始まる。実行した後の s の値はどれか。
  2. 配列の要素番号は1から始まる。最大の要素を探す次のプログラムを実行した後の m の値はどれか。
  3. 配列 a の要素を逆順に並べ替えるつもりで、次のプログラムを書いた。配列の要素番号は1から始まる。実行した後の a の内容はどれか。
  4. 配列の要素番号は1から始まる。次のプログラムを実行した後の配列 a の内容はどれか。
  5. 配列の要素番号は1から始まる。隣り合う要素を比べる次のプログラムを実行した後の c の値はどれか。