下面 C++ 代码执行时如输入 $59.99$,将输出“及格”两个汉字。( )
int score;
cout << "请输入学生成绩:";
cin >> score;
if (score < 60)
cout << "不及格";
else
cout << "及格";答案B。追踪程序输出时注意整数除法截断和循环条件的边界值。变量初始值对结果影响很大。
整数除法截断容易忽略!if(n%i==0)中%是取余运算不是除法。
【考点】整数类型截断|输入输出格式
1. 🎯 考纲定位 GESP 二级 C++ 模块对基本数据类型有明确要求,本题精准卡住"输入自动转换为整数"这一常见盲区,多数考生会忽略 int 的截断特性,误以为浮点输入能保留小数。
2. 🧠 解题思维 看到题先确认变量类型——score 是 int,cin 对浮点输入会截断小数部分,59.99 实际存入 59;再判断条件——score < 60 成立,输出"不及格"。这类题通法:遇到输入+比较,先锁定变量类型,再模拟真实执行路径,别只看输出语句。
3. 🪤 陷阱拆解 选项 A 是典型"直觉陷阱"——只读输出语句,不看变量类型;命题人利用"浮点输入默认保留"的错觉。细节在于"输入 59.99"这个表述,考生往往忽略 cin 的类型约束,这是题目最阴险之处。
4. 🔄 反命题思维 若把 score 改为 float,输入 59.99 会输出"及格",答案翻转;若输入 60.00,无论 int 还是 float 都输出"不及格"。刷到类似题,先问"变量类型是否匹配输入形式"。