关于变量与算术表达式
使用公式℃=(5/9)(℉-32)打印华氏温度与摄氏温度对照表:
0 -17 20 -6 40 4 60 15 80 26 100 37 120 48 140 60 160 71 180 82 200 93 220 104 240 115 260 126 280 137 300 148
程序如下所示
#include <stdio.h> /* 当fahr = 0,20,.....,300时,分别 打印华氏温度与摄氏温度对照表 */ main() { int fahr,celsius; int lower,upper,step; lower = 0; upper = 300; step = 20; fahr = lower; while(fahr <= upper){ celsius = 5 * (fahr - 32) / 9; printf ("%d\t%d\n ",fahr,celsius); fahr = fahr + step; } return 0; }
其中的两行
/* 当fahr = 0,20,.....,300时,分别 打印华氏温度与摄氏温度对照表 */
称为注释,此处,它简单地解释了程序是做什么用的。包含在/*与*/之间的字符序列将被编译器忽略。注释可以自由地运用在程序中,使得程序更易于理解。程序中允许出现空格,制表符或换行符之处,都可以使用注释。
在C语言中,所有变量都必须先声明在使用。声明通常放在函数起始处,在任何可执行语句之前。声明用于说明变量的属性,它由一个类型名和一个变量表组成,例如:
int fahr,celsius; int lower,upper,step;
其中,类型int表示其后所列变量为整数,与之相对应,float表示所列变量为浮点数(即可带有小数部分的数)。int与float类型的取值范围取决于具体的机器。对于int类型,通常为16位,其取值范围为-32768~+32768,也有用32位表示的int类型。float类型通常是32位,它至少有6位有效数字,取值范围一般为 -3.4E+38 ~ 3.4E+38 。
除int和floa类型之外,C语言还提供了其他一些基本数据类型,例如:
char 字符———一个字节
short 短整型
long 长整型
double 双精度浮点型
这些数据类型对象的大小也取决于具体的机器。另外,还存在这些基本数据类型的数组,结构,联合,指向这些类型的指针以及返回这些类型值的函数。
在上面的温度转换程序中,最开始执行的计算是下列4个赋值语句:
lower = 0; upper = 300; step = 20; fahr = lower;
它们为变量设置初值。各条语句均以分号结束。
温度转换表中的各行计算方式相同,因此可以用循环语句重复输出各行。这是while循环语句的用途。
while(fahr <= upper){ ... }
while循环语句的执行方式为:首先调试圆括号中的条件,如果条件为真条件(fahr<=upper),则执行循环体(括在花括号中3条语句);然后再重新测试圆括号中条件,如果为真,则再次执行循环体;当圆括号中的条件测试结果为假(fahr>upper)循环结束,并继续执行跟在while循环语句之后的下一条语句。
while语句的循环体可以是用花括号括起来的一条或多条语句(如上面的温度转换程序),也可以是不用花括号括起来的单条语句,例如
while (i < j) i = 2 * j;
在这两种情况下,我们总是把由while控制的语句缩进一个制表符,这样就可以很容易的看出循环语句中包含哪些语句。这种缩进方式突出了程序的逻辑结构。尽管C编译器并不关心程序的外观形式,但正确的缩进及保留适当空格的程序设计风格对程序的易读性非常重要。
在该程序中,绝大部分工作都是在循环体中完成的。循环体中的赋值语句
celsius = 5 * (fahr - 32) / 9;
用于计算与指定华氏温度相对应的摄氏温度值,并将结果赋值给变量celsius。在该语句中,之所以把表达式写成先乘5然后再除以9而不是直接写成5/9,其原因实在C语言及许多语言中,证书除法操作将执行舍位,结果中的任何小数部分都会被舍弃。由于5和9都是整数,5、9后经截取所得的结果为0,因此这样求得的所有摄氏温度都为0。

浙公网安备 33010602011771号