下列代码中,输出结果是( )
#include <iostream>
using namespace std;
int main()
{
double a = 0.9;
double b = 1.0;
if ((b - a) == 0.1)
{
cout << "Equal" << endl;
}
else
{
cout << "Not equal" << endl;
}
}答案B。数组和位运算的代码追踪要特别小心:数组下标从0开始,位运算结果可能不直观。建议画图辅助。
位运算追踪时建议把数字写成二进制形式再逐位计算。
【考点】浮点数精度|类型转换|条件判断
本题考查 GESP 三级"基础编程"模块中的浮点数运算特性。命题人专门在此处埋雷——它卡住的是 90% 考生的直觉误区:以为浮点数加减能像小学算术那样精准对齐,却不知计算机底层二进制存储时,0.9 和 0.1 都是无限循环小数,无法精确表示,运算结果必然存在微小偏差。