再上一篇:第 2 章 常量和变量
上一篇:2 .2 变量
主页
下一篇:3 .2 赋值表达式
再下一篇:3 .3 关系表达式
文章列表

第 3 章 基本运算与表达式

《程序设计基础》(基于C语言讲解) 石光华 编著 —北京: 清华大学出版社

为了使程序完成一定的功能,基本的运算是不可缺少的。通过基本运算,可以构成不同的表达式,进而在程序中表达我们的思想和要求。C语言的基本运算包括:算术运算、赋值运算、关系运算和逻辑运算等,相应的基本运算符有算术运算符、赋值运算符、关系运算符和逻辑运算符等。

所谓表达式(expressions),就是在程序中表达一定意思的句子。为了让程序能够理解我们的意思,程序中的表达与生活中的语言表达是不一样的。在程序中表达不同的意思,需要用特定的表达方式,例如,如果要表达两个数相加,则先要用变量a,b来分别表达两个数,然后写成a+b就可以了。这时的a+ b就是一个算术表达式,表达了算术运算。

通常,表达式由多个(两个或两个以上)标识符用各种运算符号连接起来而成。例如, - a+10。单个的常量、变量等可以看做是表达式的特例。

表达式的数据类型取决于其运算结果的数值类型。一个表达式有一个值及其类型,它们等于计算表达式所得结果的值和类型。

3 .1 算术表达式

算术运算是程序的基本运算,表达算术运算意思的式子就是算术表达式(arithmeticexpressions)。

1 .算术运算符

算术运算包括加( + )、减( - )、乘( * )、除(/ )、求余(%)5 种,相应的算术运算符(arithmetic operations)也有+ , - , * ,/ ,% 5种。

其中,加( +)、减( - )、乘( * )3种运算与中学学过的数学运算规则相同,但除(/ )和求余(%)的运算规则却有很大的不同,下面分别叙述之。

第3章 基本运算与表达式 25

(1) 除法规则

① 参与运算的运算量均为整型时,结果为整型,舍去小数部分。

例如,7/ 4的结果为1,8/ 4的结果为2, - 7/ 4的结果为- 1,2/ 5的结果为0。

② 如果运算量中有一个是实型,则结果为实型。

例如,7 .0/ 4的结果为1 .75,8/ 4 .0的结果为2 .0, - 7 .0/ 4的结果为- 1 .75,2/ 5 .0的结果为0 .4。

③ 如果需要保存整数相除产生的小数,应该用float变量来保存结果。

应该特别注意除法运算的规则,因为按原来的数学运算规则去推断,有可能会出现一些意想不到的错误结果。如上例中的“2/ 5”的结果为0。

(2) 求余(%)规则

① 参与运算的运算量必须为整型,结果为两数相除后的余数;如果被除数小于除数,则结果为被除数。

例如,7%4的结果为3,8%4的结果为0,2%5的结果为2。

② 求余运算的符号与被除数相同。

例如, - 7%4的结果为- 3,7%( - 4)的结果为3, - 2%5结果为- 2。

2 .算术表达式

算术表达式是由算术运算符和括号连接起来的式子。例如,

a+b (a*2)/ c (x+r) *8 - (a+b)/ 7 sin(x) +sin(y)

应该注意,在C语言中使用的算术运算符与中学所学的不同。在C语言中,以“/ ”表示除,以“*”表示乘。例如, 5/ 7”表示“5除以7”, 3*4”表示“3乘以4”。

3 .算术表达式的值

算术表达式的值是按算术表达式计算得出的结果。例如表达式a+10/ 3,当变量a的值为5时,表达式的值等于8,而表达式a+10%3的值则等于6。

【例3-1】 输出算术表达式a+b* (a/ (a - b))的值。

#include< stdio .h>

void main()

{

int ifirst=0,isecond=0,itmp=0;

printf(″Please input two number(a,b)\n″);

scanf(″%d%d″,&ifirst,&isecond);

itmp=ifirst+isecond * (ifirst/ (ifirst - isecond));

26 程序设计基础

printf(″Result is %d\n″,itmp);

}

注意,在运算符的前后均应留一个空格,以便程序看起来更清楚。