
3.6 程序示例
【例3-1】求半径为r,高为2.5的圆柱体体积。
算法分析:使用符号常量在程序中不能赋值,好处是含义清楚,能做到“一改全改”。
C源程序(文件名lt3_1.c):

运行结果如下:
输入r=1。

【例3-2】使用整型变量。
算法分析:变量定义必须放在变量使用之前,一般放在函数体的开头部分。因为定义了变量a=12、b=-24、u=10、c=a+u、d=b+u,所以可以求出c和d值。
C源程序(文件名lt3_2.c):

运行结果如下:

【例3-3】各种数据类型之间的转换。
算法分析:a为整型,赋予实型量y值8.88后只取整数8;x为实型,赋予整型量b值322后增加了小数部分;字符型量c1赋予a变为整型;整型量b赋予c2后取其低8位成为字符型(b的低8位为01000010,即十进制数66,对应于ASCII码字符B)。
C源程序(文件名lt3_3.c):

运行结果如下:

【例3-4】分析以下程序的运行结果。
C源程序(文件名lt3_4.c):

算法分析如下。
(1)语句x1=++a&&b&&++a;的计算过程。
由于单目运算符++比双目运算符优先级更高,因此表达式++a&&b等价于表达式(++a)&&b。表达式++a的值为2,变量a的值也为2,然后执行2&&b的结果为0。表达式0&&++a等价于0&&(++a),此时系统完全可以确定表达式的运算结果是0。因此不再处理表达式0&&(++a)中的后一个操作数,并将0赋值给变量x1。
(2)语句x2=--c||a||b++;的计算过程。
与上面类似,表达式--c||a等价于表达式(--c)||a。而表达式--c的值为0,变量c的值也为0,然后执行0||a的结果为1。表达式1||b++等价于1||(b++),此时系统完全可以确定表达式的运算结果是1。因此不再处理表达式1||(b++)中的后一个操作数,并将1赋值给变量x2。
运行结果如下:
