ITパスポート試験 過去問解説

変数交換とは?ITパスポート試験 2010年 (平成22年 春期) 問53を解説

ITパスポート試験 2010年 (平成22年 春期) 問53は、変数交換に関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。

問題文

変数AとBに格納されているデータを入れ替えたい。データを一時的に格納するための変数をTMPとすると,データが正しく入れ替わる手順はどれか。ここで"x←y"は,yのデータでxの内容を置き換えることを表す。

この問題の出題ポイント

  • 変数交換の定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
  • テクノロジ系分野では、用語の目的・主体・責任範囲の違いが選択肢で問われやすい。
  • 関連タグ: 変数交換。

選択肢

  1. アTMP←A → A←B → B←A
  2. イTMP←A → A←B → B←TMP正解
  3. ウTMP←B → A←B → B←TMP
  4. エTMP←B → A←B → B←A

正解

イ: TMP←A → A←B → B←TMP

解説

二つの変数の値を入れ替えるには、上書きで失われる値を一時変数に退避しておく必要がある。まず元のAをTMPに退避し、AにBの値を入れ、最後にBへTMP(元のAの値)を入れると入れ替わる。例えばAが1、Bが2なら、TMPは1、Aは2、Bは1になる。

なぜ他の選択肢が違うのか

  • ア

    二つ目でAがBの値に置き換わるため、三つ目のB←Aは同じ値を書き戻すだけになる。TMPに退避した元のAの値を使っておらず、A、Bとも元のBの値になる。

  • イ(正解)

    正しい。TMPに元のAを退避してからAにBの値を入れ、最後にBへTMP(元のAの値)を入れるので、二つの値が入れ替わる。

  • ウ

    退避したのが元のBなので、A←Bでは元のAの値が失われる。最後のB←TMPはBに元の値を戻すだけで、AもBも元のBの値になる。

  • エ

    TMPを使わずにAとBを書き換えており、A←Bの時点で元のAの値は失われる。最後のB←Aでも元のBの値が入り、入れ替わらない。

解き方の整理

変数交換の問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。

関連問題

前後の問題

2010年 (平成22年 春期) の関連する問題

復習を続ける

間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。