参考资料:C语言程序设计(第四版)谭浩强著
目录
Q2:浮点型数据是用来表示具有小数点的实数的。为什么在C中把实数称为浮点数呢?
Q3:在C语言中,不仅变量有类型,常量也有类型。为什么要把常量分为不同的类型呢?
Q4:为什么说“使用C语言进行编程时,还存在语法错误之外的错误?”
Q5:“不要以为计算机输出的所有数字都是绝对精确有效的”这句话如何理解?
Q1:为什么在用计算机运算时,要指定数据的类型?
A1:因为在数学中,数值是不分类型的,数值的运算是绝对准确的,例如: 78与97之和为175,1/3 的值是0. 3333333...(循环小数)。数学是一门研究抽象的学科,数和数的运算都是抽象的。而在计算机中,数据是存放在存储单元中的,它是具体存在的。而且,存储单元是由有限的字节构成的,每一个存储单元中存放数据的范围是有限的,不可能存放“无穷大”的数,也不能存放循环小数。
例如用C程序.计算和输出1/3:
printf("%d" ,1.0/3.0);
得到的结果是0.333333,只能得到6位小数,而不是无穷位的小数。
Q2:浮点型数据是用来表示具有小数点的实数的。为什么在C中把实数称为浮点数呢?
A2:因为在C语言中,实数是以指数形式存放在存储单元中的。一个实数表示为指数可以有不止一种形式,如3.1416可以表示为: 3. 14159X10° 、0. 314159X 10' 、0. 0314159X10² 、31.4159X10ˉ¹ 、314. 159X10ˉ²等,它们代表同一个值。可以看到:小数点的位置是可以在31416几个数字之间和之前或之后(加0)浮动的,只要在小数点位置浮动的同时改变指数的值,就可以保证它的值不会改变。由于小数点位置可以浮动,所以实数的指数形式称为浮点数。
Q3:在C语言中,不仅变量有类型,常量也有类型。为什么要把常量分为不同的类型呢?
A3:因为在程序中出现的常量是要存放在计算机中的存储单元中的。这就必须确定分配给它多少字节,按什么方式存储。例如,程序中有整数12,在Visual C++ 6.0中会分配给它4个字节,按补码方式存储。
Q4:为什么说“使用C语言进行编程时,还存在语法错误之外的错误?”
A4:由于C语言使用灵活,在不同类型数据之间赋值时,常常会出现数据的失真,而且这不
属于语法错误,编译系统并不提示出错,全靠程序员的经验来找出问题。这就要求编程人员
对出现问题的原因有所了解,以便迅速排除故障。
Q5:“不要以为计算机输出的所有数字都是绝对精确有效的”这句话如何理解?
A5:因为在用%f输出时要注意数据本身能提供的有效数字,比如double型数据能保证15位有效数字。float型数据的存储单元只能保证6位有效数字。来看下面两个例子你就应该明白了↓
... 待更新 ...