【程序阅读题】
1. 运行下面的程序,并解释产生结果的过程(或原因)
#include <stdio.h> int main() { int a, b; a= 2147483642; printf("a=%d\n",a); b = a + 10; printf("b=%d\n",b); return 0; }
2. 运行下面的程序,并解释产生结果的过程(或原因)
#include <stdio.h> int main() { float a,b,c; a=12345.67890; b=987.65432; c=a+b; printf("%12.5f\n",c); return 0; }
1、
对于整型数据,由于存储位数的限制,其范围并非像数学中的整数,可以无限大和无限小,而是局限在一定范围内。这样的运行结果,是产生了“溢出”。更详细的解释,参考整型数据的表示。
2、
对于浮点型数据,除了表示数的范围外,还要注意其精度,即其有效位数有几位。在超出有效位数的部分,不能保证其准确。一般讲,float型的精度是7位左右有效数字,而double型是15位左右。
格式控制符%12.5指显示数总宽度12,小数点后保留5位。