表达式运算时的关键问题:(1)算符优先极问题(不同级别算符的计算次序)(2)算符结合次序(优先级平级时的计算次序)(3)算符操作数个数(一目或二目算符)(4)算符对应操作数类型3.3.2算术运算符和算术表达式1、算术运算符第29页,共64页,星期日,2025年,2月5日说明:①“+”,“-”运算符——单目运算:取正、负值运算;优先级高双目运算:加、减运算;优先级低②除法运算“/”——整数(字符)相除结果是整型(商),小数部分全部舍去实数相除,所得的商也为实数。例如:1/3=0只取结果的整数部分0,舍去0.33333315/4=3只取结果的整数部分3,舍去0.751.0/3=0.33333313/4.0=3.250000整数相除时,若不能整除将造成误差,要避免整数直接相除。③模运算%也称为求余运算。要求两个运算对象都为整型,其结果是整数除法的余数。例如:5%10=510%3=1-10%3=-1第30页,共64页,星期日,2025年,2月5日算术运算符的优先级及结合性如下:例如表达式x/(67-(12+y)*a)的运算顺序是:2、算术表达式c语言的算术表达式由算术运算符、常数、变量、函数和园括号组成,其基本形式与数学上的算术表达式类似。例如:3十512.34—23.65*2-5*(18%4+6)x/(67-(12+y)*a)第31页,共64页,星期日,2025年,2月5日带函数调用的算术表达式。以数学函数的调用为例,c语言把数学计算中常用的计算公式(或算法)抽象定义为一个个的函数,这些函数的集合构成了C语言的数学库(见附录c),在程序中用到相应的函数时只要直接调用即可。例如,数学表达式:sin(x)+cos(y/2)c语言算术表达式:sin(x)+cos(y/2)函数库:(#includemath.h)例3-6下列数学表达式:对应的c语言算术表达式为:第32页,共64页,星期日,2025年,2月5日3.3.3自增、自减运算符(++、--)(1)++i和i++最后都使i=i+1,但顺序不同,意义不同例:inti=3,j;对于j=++i;相当于①i++;②j=i;对于j=i++;相当于①j=i;②i++;(2)++,--只能用于变量(不能用于常量和表达式)++3,++(a+b),(x+5)++×++i(--i):先将i的值加(减)1,然后使用i
i++(i--):先使用i,然后将i的值加(减)1开始结果3i4j43i4j3(3)用于++,--运算的可以是有序类型的变量(4)++,--的结合性是自右向左的。第33页,共64页,星期日,2025年,2月5日例题1:inti=3,k;k=(i++)+(i++)+(i++);则:k=?i=?相当于①k=i+i+i;k=9②i++;i++;i++;i=6例题2:inti=3,k;k=(++i)+(++i)+(++i);则:k=?i=?相当于①i++;i++;i++;i=6②k=i+i+i;k=18例题3:若i=3则printf(“%d”,-i++);则:打印?;i=?输出:-3(然后,i增值为4)例题4:若i=3则printf(“%d”,i+++++i);则:打印?;i=?1.i+++++i-----取i的地址2.i+++++i-----i值加1为43.i+++++i-----1的值(4)+2的值(4)得3的值8。输出:84.表达式计算完成后,求1.i++的i自加1。i增值为:5一般写为:(i++)+(++i)。。第34页,共64页,星期日,2025年,2月5日3.3.4赋值运算符和赋值表达式1、赋值运算符(=)计算赋值运算符“=”右边表达式的值,并将计算结果赋给“=”左边的变量。