プログラミングの基礎(擬似言語のトレース)
3つの変数の値を順に送る次のプログラムを実行した後の a、b、c の値の組はどれか。
整数型: a ← 1, b ← 2, c ← 3, t
t ← a
a ← b
b ← c
c ← t
- Aa = 2, b = 3, c = 1
- Ba = 2, b = 3, c = 2
- Ca = 3, b = 1, c = 2
答えと解説を見る
正解:A. a = 2, b = 3, c = 1
t ← a で、最初の a の値1を t に退避します。a ← b で a = 2、b ← c で b = 3 になり、最後の c ← t で退避しておいた1が c に入ります。3つの値が1つずつ前へずれるので、a = 2、b = 3、c = 1 です。t を使わずに c ← a と書くと、その時点の a はすでに2なので c = 2 になってしまいます。
- A. 正しい。退避しておいた最初の a の値1が、最後に c へ入ります。
- B. c ← t ではなく c ← a と書いた場合の結果です。その時点の a はすでに2に変わっています。
- C. 値を逆向きに回した場合の結果です。a ← b、b ← c の順なので、値は前へずれます。