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

÷ は除算で、整数型の変数(引数を含む)に代入するときは小数点以下を切り捨てる。次の関数 f を f(9087) として呼び出したときの戻り値はどれか。

○整数型: f(整数型: x)
  整数型: s ← 0
  while (x > 0)
    s ← s + x mod 10
    x ← x ÷ 10
  endwhile
  return s
  1. A4
  2. B15
  3. C24
答えと解説を見る

正解:C. 24

x mod 10 は x の一の位を取り出し、x ← x ÷ 10 は小数点以下を切り捨てる整数除算になるので、一の位を取り除きます。mod は + より優先順位が高いので、s ← s + x mod 10 は s ← s + (x mod 10) の意味です。x は 9087、908、90、9、0 と変わり、s には 7、8、0、9 が順に足されて 7 + 8 + 0 + 9 = 24 になります。各桁の数字の和を求める関数です。

  • A. (s + x) mod 10 と、+ を先に計算した場合の値です。mod は + より先に計算します。
  • B. while (x ≧ 10) のように、最上位の桁9を足す前に止めた場合の値です。
  • C. 正しい。9 + 0 + 8 + 7 = 24 です。
この分野を解く 分野ページへ

関連する計算ツール

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

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

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

  1. ÷ は除算で、整数型の変数(引数を含む)に代入するときは小数点以下を切り捨てる。次の関数 toBin を toBin(12) として呼び出したときの戻り値はどれか。
  2. 2つの整数 a、b を引き算で等しくしていく次のプログラムを実行した後の k の値はどれか。
  3. 次の関数 isLeap は、西暦 y 年がうるう年なら true を返す。and は or より先に計算する。isLeap(y) が true を返す y はどれか。
  4. ÷ は除算で、整数型の変数(引数を含む)に代入するときは小数点以下を切り捨てる。次の関数 pow を pow(2, 10) として呼び出したとき、pow が呼ばれる回数(最初の呼出しを含む)はどれか。
  5. 次の関数 s を s(7) として呼び出したときの戻り値はどれか。