下面 C++ 代码用于交换两个正整数 $a$ 和 $b$ 的值,不能实现交换的代码是( )。
A.
cout << "输入第一个正整数:";
cin >> a;
cout << "输入第二个正整数:";
cin >> b;
temp = a;
a = b;
b = temp;
cout << "a=" << a << " b=" << b << endl;B.
cout << "输入第一个正整数:";
cin >> a;
cout << "输入第二个正整数:";
cin >> b;
b = a - b;
a = a - b;
b = a + b;
cout << "a=" << a << " b=" << b << endl;C.
cout << "输入第一个正整数:";
cin >> a;
cout << "输入第二个正整数:";
cin >> b;
a = a + b;
b = a - b;
a = a - b;
cout << "a=" << a << " b=" << b << endl;D.
cout << "输入第一个正整数:";
cin >> a;
cout << "输入第二个正整数:";
cin >> b;
a, b = b, a;
cout << "a=" << a << " b=" << b << endl;答案D。注意C++运算符语法:算术运算符(+-*/%)、自增自减(++--)都有正确的书写格式。a++b属于语法错误。
C++运算符必须使用正确的语法格式。a++b缺少操作数之间的运算符,是非法的。
【考点】变量赋值|算术交换|Python语法陷阱
GESP 一级"基本编程"模块第 3 章变量与数据类型。命题人专门放这道题,就是要筛掉一类"会 Python 不会 C++"的选手——看到 a, b = b, a 这种 Python 元组解包写法就自信选对,殊不知 C++ 的赋值运算符 = 不支持这种语法糖。