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

次のプログラムで、x と y の値を入れ替えるつもりで2つの代入文を書いた。実行した後の x と y の値の組はどれか。

整数型: x ← 3, y ← 7
x ← y
y ← x
  1. Ax = 3, y = 3
  2. Bx = 7, y = 3
  3. Cx = 7, y = 7
答えと解説を見る

正解:C. x = 7, y = 7

擬似言語の代入文は、上から順に1つずつ実行されます。x ← y で x は7になり、元の値3はこの時点で失われます。続く y ← x では新しい x の値7が y に入るので、x = 7、y = 7 になります。値を入れ替えるには、t ← x、x ← y、y ← t のように、作業用の変数に元の値を退避してから代入します。

  • A. y ← x を先に実行した場合の結果です。このプログラムでは x ← y が先です。
  • B. 入れ替えができたと考えた場合の値です。x ← y の時点で元の x の値3は失われています。
  • C. 正しい。x ← y で x が7になり、続く y ← x でも7が代入されます。
この分野を解く 分野ページへ

関連する計算ツール

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

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

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

  1. 3つの変数の値を順に送る次のプログラムを実行した後の a、b、c の値の組はどれか。
  2. x を3倍することを繰り返す次のプログラムを実行した後の n の値はどれか。
  3. i を2ずつ増やす次の for 文を実行した後の s の値はどれか。
  4. 内側の繰返しの初期値が外側の変数 i で決まる次の二重ループを実行した後の c の値はどれか。
  5. 二重ループの中に条件分岐がある次のプログラムを実行した後の c の値はどれか。