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

次の関数 isLeap は、西暦 y 年がうるう年なら true を返す。and は or より先に計算する。isLeap(y) が true を返す y はどれか。

○論理型: isLeap(整数型: y)
  return y mod 4 = 0 and y mod 100 ≠ 0 or y mod 400 = 0
  1. A1800
  2. B1900
  3. C2000
答えと解説を見る

正解:C. 2000

and が or より優先されるので、条件は (y mod 4 = 0 and y mod 100 ≠ 0) or y mod 400 = 0 と同じ意味です。4で割り切れて100で割り切れない年か、400で割り切れる年がうるう年になります。1800 と 1900 は100で割り切れて400では割り切れないので false です。2000 は400で割り切れるので true になります。

  • A. 1800 mod 100 = 0 で and の側は偽、1800 mod 400 = 200 で or の右側も偽なので false です。
  • B. 1900 mod 100 = 0 で and の側は偽、1900 mod 400 = 300 で or の右側も偽なので false です。
  • C. 正しい。2000 mod 400 = 0 なので true です。
この分野を解く 分野ページへ

関連する計算ツール

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

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

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

  1. ÷ は除算で、整数型の変数(引数を含む)に代入するときは小数点以下を切り捨てる。次の関数 pow を pow(2, 10) として呼び出したとき、pow が呼ばれる回数(最初の呼出しを含む)はどれか。
  2. 次の関数 s を s(7) として呼び出したときの戻り値はどれか。
  3. 次の手続 p を p(3) として呼び出したとき、出力される値の並びはどれか。
  4. 次の関数 fib を fib(10) として呼び出したときの戻り値はどれか。
  5. 次の関数 c を c(4, 2) として呼び出したとき、c が呼ばれる回数(最初の呼出しを含む)はどれか。