アルゴリズムとプログラミング

基本情報技術者試験 科目A免除 修了試験 20120722 実施分 問7

次のような一連の代入文がある。 x+y→x x−y→y x−y→x x,yの初期値をそれぞれA,Bとするとき,最後の代入文の実行が終了した時点におけるxとyの値の適切な組合せはどれか。
x,yの値の組合せの表。
xy
アAB
イBA
ウ2BA−B
エA−BA−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 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「流れ図の基本構造とループの終了条件」で学ぶ