【程序阅读题】
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位。