平成22年度 春期 ITパスポート試験 問53
テクノロジ/アルゴリズム変数 A と B に格納されているデータを入れ替えたい。データを一時的に格納するための変数を TMP とすると,データが正しく入れ替わる手順はどれか。ここで “x ← y” は,y のデータで x の内容を置き換えることを表す。

出典:平成22年度 春期 ITパスポート試験 問53
- ア図ア
- イ図イ
- ウ図ウ
- エ図エ
正解:イ
解説
A の値を TMP に退避してから A に B の値を入れ,最後に退避しておいた A の元の値(TMP)を B に入れると,値が入れ替わります。コップ二つの中身を入れ替えるとき,空のコップを一つ使うのと同じ考え方です。
選択肢ごとの解説
- ア誤り。TMP ← A,A ← B,B ← A の順では,最後に B に入る A は既に B の値になっているため,両方が B の元の値になってしまいます。
- イ正しい。A の元の値を TMP に退避し,A ← B で A に B の値を入れ,B ← TMP で A の元の値を B に入れます。
- ウ誤り。TMP ← B,A ← B,B ← TMP では,A の元の値が失われ,A と B がどちらも B の元の値になります。
- エ誤り。TMP ← B で B を退避した後,A ← B,B ← A とすると,A と B が B の元の値になり,A の元の値は消えます。