GESPPASSGESP C++ 真题 · 逐题精解
GESP 2025年9月 C++一级 单选题 第12题
C++一级单选题2025年9月第12题
所属知识点:cin / cout 输入输出 难度要求:掌握 考频:中频
下面 C++ 代码用于交换两个正整数 a 和 b 的值,不能实现交换的代码是( )。
cin >> a;
cin >> b;
/* —— 此处填入四个选项各自的“交换”代码 —— */
cout << "a=" << a << " b=" << b;
- A. temp = a; a = b; b = temp;
- B. b = a - b; a = a - b; b = a + b;
- C. a = a + b; b = a - b; a = a - b;
- D. a, b = b, a;
正确答案:D
题目解析
A 用中间变量
temp 暂存最稳,能换;B、C 靠加减腾挪(代入 a=13,b=5 验证最后都得 a=5,b=13)也能换。D 的
a, b = b, a; 是
Python 的并行赋值,C++ 没有——逗号让它变成「算 a;b=b;算 a」,根本没换,选 D。
💡 C++ 没有 a,b=b,a 这种同时赋值。交换要用中间变量(最稳)或加减/异或。逗号在 C++ 里是运算符,不是「同时」。