アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20120722 実施分 問7
次のような一連の代入文がある。
x+y→x
x−y→y
x−y→x
x,yの初期値をそれぞれA,Bとするとき,最後の代入文の実行が終了した時点におけるxとyの値の適切な組合せはどれか。
x,yの値の組合せの表。
| x | y | |
|---|---|---|
| ア | A | B |
| イ | B | A |
| ウ | 2B | A−B |
| エ | A−B | A−B |
- ア x=A,y=B
- イ x=B,y=A
- ウ x=2B,y=A−B
- エ x=A−B,y=A−B
出典:基本情報技術者試験 科目A免除 修了試験 20120722 実施分 問7
答えと解説を見る
正解:イ
覚える知識
代入文のトレース(加減算による値の交換)
加減算を使えば作業変数なしで2変数の値を交換できる。
この問題で必要なこと
x=A+B, y=(A+B)−B=A, x=(A+B)−A=B となり、xとyの値が入れ替わる。
ひっかけ
途中のxの値を更新後と取り違え、元の値のままと誤解させる。
この知識の出題:本試験系 0 回・免除試験 1 回(公開問題での観測値)