基本情報トップに戻る
B難易度: 標準2026年度

基本情報技術者 一問一答B 第218問

問題

temp変数なしのスワップ(x=10,y=5, x=x+y, y=x-y, x=x-y)の結果は何か。

選択肢

  1. 1x=5,y=10
  2. 2x=10,y=5
  3. 3x=15,y=10
  4. 4x=0,y=5

正解

1. x=5,y=10

詳しい解説を見る

解説

x=10、y=5から代入を1行ずつ追う。まずx=x+yでx=10+5=15(yは5のまま)、次にy=x-yでy=15-5=10、最後にx=x-yでx=15-10=5となる。結果はx=5、y=10であり、一時変数を使わずに2つの変数の値が交換(スワップ)される。誤答のx=10,y=5は交換前の初期値のまま、x=15,y=10は2行目が終わった時点の途中経過、x=0,y=5は減算の適用を誤った値である。基本情報の科目B(アルゴリズム)では、このように変数の値を順にトレースする力が必須であり、加減算による交換のほかに排他的論理和(XOR)を3回適用しても同様のスワップができる点も知っておくと役立つ。

一問一答

科目A 180問+科目B 60問

Bの関連問題

この調子で演習を続けよう

スキマ資格では基本情報の全2398問を分野別・難易度別に体系的に学習できます。基本情報技術者は科目A(広く浅く)と科目B(プログラミング・アルゴリズム)の両輪での対策が必要です。