GESP 一级 · GESP 202509 C++ 一级 第 12 题

选择题 · 答案 D

← 整套速查表 GESP 一级 全部真题

题目

下面 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

解题思维

答案D。注意C++运算符语法:算术运算符(+-*/%)、自增自减(++--)都有正确的书写格式。a++b属于语法错误。

常见错误

C++运算符必须使用正确的语法格式。a++b缺少操作数之间的运算符,是非法的。

详细解析(节选)

【考点】变量赋值|算术交换|Python语法陷阱

1. 🎯 考纲定位(考点定位)

GESP 一级"基本编程"模块第 3 章变量与数据类型。命题人专门放这道题,就是要筛掉一类"会 Python 不会 C++"的选手——看到 a, b = b, a 这种 Python 元组解包写法就自信选对,殊不知 C++ 的赋值运算符 = 不支持这种语法糖。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断