下列 C++ 代码中 a 和 b 都是整型变量,执行后,其结果是( )。
a = 13;
b = 5;
cout << a / b << a %// b << a % b;
a * b;答案C。注意C++运算符语法:算术运算符(+-*/%)、自增自减(++--)都有正确的书写格式。a++b属于语法错误。
C++运算符必须使用正确的语法格式。a++b缺少操作数之间的运算符,是非法的。
【考点】cout 输出语法|运算符优先级|注释符号 //
🎯 考纲定位 本题落在 GESP 一级“程序语法与输出”模块,核心考点是 cout 语法与运算符优先级。命题人盯住新手最容易栽跟头的“注释符号”:// 是单行注释,不是运算符。把 a %// b 当合法表达式,是绝大多数孩子会踩的坑。
🧠 解题思维 看到 cout 先别急着算数:C++ 里 // 是注释符,a %// b 根本构不成表达式,编译器直接报错。正确通法是“语法先行”——任何带输出/计算的代码,第一步先扫一遍符号,确认没有注释、分号缺失或非法运算符。本题若把 // 看成 % 的变体,就会误入歧途。
🪤 陷阱拆解 A 项“2 3”是 a / b = 2 和 a % b = 3 的正常输出,但前提是代码合法;B 项“23”同理,只是没空格;C 项“20”毫无依据——13×5=65 而非 20,命题人故意用错误计算结果迷惑人;D 项才是正解:因为 // 是注释,cout 语句本身语法错误,程序无法运行,自然不可能输出任何数字。
🔄 反命题思维 命题人若把 // 改成空格或去掉,答案就会变回 A 或 B;若再补上 ; 让 a * b 成为有效语句但无输出,仍选 D。这提醒我们:刷到类似题先问“语法是否合法”,再谈计算结果。