GESP 三级 · GESP 202312 C++ 三级 第 12 题

选择题 · 答案 B

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

题目

C++ 的数据类型转换让人很难琢磨透,下列代码输出的值是()。

int a=3;
int b=2;
cout<<a/b*1.0<<endl;
答案:B

解题思维

这题考的是C++里整数除法会直接截断小数,乘法优先级和类型转换的时机。拿到题先盯运算符优先级:/和*同级左结合,所以是(a/b)*1.0,别被1.0误导以为整除变浮除。

常见错误

很多学生看到1.0就以为整个表达式变成了浮点运算,结果选了A 1.5;还有人把运算顺序想反,以为先算b*1.0再乘a,或者觉得截断后还能进位选了C 2;D 1.50更是误以为cout会补两位小数。其实1.0只在乘法那一步生效,a/b已经按整数规则算出1了,再乘1.0还是1.0,cout默认只输一位小数。

详细解析(节选)

【考点】整数运算|运算优先级|类型转换

1. 考纲定位

GESP三级《编程语言基础》第3-2节"基本运算",命题人专门卡住"整数除法会截断小数"这个认知盲区,再借1.0这个浮点数制造"类型转换"的假象,看学生是否真的懂运算顺序。

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