有关如下 C++ 代码的说法,正确的是( )。
float a = 3 + 3.5;
cout << a;答案D。根据计算机/编程基础知识分析判断。
关键提醒:C++中的^是异或运算符,不是乘方!2^5=7而非32。这是最高频的错误。
【考点】浮点型运算|变量赋值
1. 考纲定位 GESP 二级 C++ 的数据类型与运算模块。命题人想卡住学生“整数与浮点数混合运算”的盲点——很多人以为 3 + 3.5 会报错或只取整数,其实 C++ 会自动类型提升。
2. 解题思维 看到 float a = 3 + 3.5; 先想表达式求值:整数 3 与浮点数 3.5 相加,C++ 会将整数提升为浮点,得到 6.5。再想输出:cout << a 会按浮点格式输出 6.5,不会截断。
3. 陷阱拆解 A 选项利用“类型转换必须显式调用”的误区,诱导学生以为 float(3) 是必须的,其实 C++ 隐式转换足够。B 选项用 3.0 替换 3 看似显式浮点,但 3.5 本身已是浮点,3.0 + 3.5 同样是 6.5,选项说“将能正常执行”却暗示原代码不能执行,逻辑自相矛盾。C 选项最阴险,利用学生“整数优先”的心理,以为 3 + 3.5 会先取 3 的整数部分,输出 6,其实浮点运算结果保留小数。如果你只背结论"float 输出是浮点”,不理解类型提升规则,就会掉进 C 选项的坑。
4. 反命题思维 如果把 3 + 3.5 改成 3.0 + 3.5,答案还是 6.5,但选项 B 的“将能正常执行”就变成废话了,命题人会改成“输出 6.5 还是 6?”来考类型精度。刷到类似题,先问自己“命题人想考我什么?”——是考类型转换、输出格式,还是考浮点运算规则?