c++课件-第二章3-C++程序设计基础-QA.pptVIP

  • 7
  • 0
  • 约 8页
  • 2017-06-05 发布于浙江
  • 举报
C++程序设计基础 QA 第二章 北京邮电大学信通院 方莉 mrs.fangli@ Q:2.6 若有以下定义: char a; int b;float c; double d;则表达式 a*b+d-c 值的类型是什么? A: double QA QA 2.18 以下程序通过for 语句重复相加0.01 共10 次,最后判定相加结果和0.1 是否相等。请写出运行的结果,并进行解释。 void main() { float a=0.1,b=0.0; for(int i=0;i10;i++) b=b+0.01; coutbendl; if(a==b) cout相等endl; else cout不相等endl; } 答案:运行结果是:0.1,不相等 因为float 数在机器内部是按浮点数存放的。看到的数和机器内部的数存在差别。看到的0.1在机器内部不一定刚好是0.1。这是实数运算时必须注意的。 * QA 2.19 以下程序执行的结果是什么?为什么?如果数据定义为double 类型,结果又将如何? void main() { float a=5.0000001,b=5.0000002; coutsetprecision(8) b-aendl; } 答案:0 因为float 数本身的精度所限制。即使规定输出精度是8 位,也只能显示为0。

文档评论(0)

1亿VIP精品文档

相关文档