预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共33页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第3章数据运算计算机的基本功能是进行数据处理,而数据处理主要是通过对表达式的计算完成的。表达式是将运算量用运算符连接起来组成的式子,其中运算量可以是常量、变量或函数。由于运算量划分为不同的数据类型,每一种数据类型都规定了自己特有的运算或操作,这就形成了对应于不同数据类型的运算符集合及其相应的求值规则。必须连接两个运算量的运算符称为二元运算符a+ba%ba/b只连接一个运算量的运算符称为一元运算符-aa++--b用算术运算符连接数值型的运算量而得到的式子。-5*3+6%4/2-1(a+b)/(a-b)a+(b++)*c①++或--可以用于前缀,也可以用于后缀。++n表示先令n=n+1,然后取n的值//先运算后变化n++表示先取n的值,然后令n=n+1//先运算后变化②如果前缀或后缀运算形成一条语句,其运算结果是相同的。例如,设i=5,则i++;及++i;运算后,i的值均为6。100101101100运算符【例】算术表达式计算优先级和结合性规则。①C编绎系统先将所有的char和shortint都转换成int,所有的float都转换成double。②如果表达式中只含同类型的运算量,则直接进行运算,运算结果即表达式的值也是同类型的。3/2值为1(整型)3.0/2.0值为1.5(双精度型)‘A’+’B’值为131(int)型③如果表达式中含有不同运算类型的运算量,先将精度较低的运算量转化成精度较高的类型,再与精度较高的运算量进行运算,得到的运算结果为精度较高的类型。【例】算术表达式计算自动类型转换规则ch/i+i*k-(j+k)*(f*d)/(f+i)││││││││││int│long│long│double│doubledouble││││││││││└┬┘└┬┘└┬┘└┬┘└┬┘④⑤①②③long│double││└─┬─┘└──┬─┘double⑧⑥│double└──-─┬──┘│⑦└─────┬──────-─┘⑨(3)强制类型转换规则使用强制应注意以下几点:(1)在进行强制类型转换时,类型关键字必须用括号括住。例如(int)x不能写成intx。(2)在对一个表达式进行强制类型转换时,整个表达式也应该用括号括住。例如,(float)(a+b)若写成(float)a+b就只对变量a进行了强制类型转换。(3)在对变量或表达式进行了强制类型转换后,并不改变原变量或表达式的类型。例如,设x为float型,y为double型,则(int)(x+y)为int型,而x+y仍然是double型。(4)将float型或double型强制转换成int型时,对小数部分是四舍五入还是简单地截断,取决于具体的系统。VC++采用的是截断小数的办法。2.5000001VC++对高精度类型转换乘低精度类型增强了检查能力,因此,对float型变量用double型常数初始化将给出警告。3.2赋值运算2.赋值表达式的值和类型在赋值表达式中,被赋值的变量得到的值就是赋值表达式的值,而被赋值的变量的类型就是赋值表达式的类型。例如,在形如v=e的赋值表达式中,变量v的值就是该赋值表达式的值,变量v的类型也就是赋值表达式的类型。#include<stdio.h>voidmain(){inta=-1;unsignedintb;b=a;//低精度转换成高精度printf("%d%u\n",a,b);}-2643.3逗号运算【例】逗号运算符及逗号表达式。#include<stdio.h>voidmain(){intc=5;printf("%d,%d,%d\n",c+=c++,c+8,++c);c=5;printf("%d\n",(c+=c++,c+8,++c));c=5;printf("%d\n",c+=c++,c+8,++c);}(1)用一个逗号表达式语句可代替多个赋值语句,如a=0;b=1;c=2;可写成a=0,b=1,c=2;(2)用一个逗号表达式语句可得到多个计算结果,如y=10;x=(y=y-5,60/y);执行后,x的值为12,y的值为5。(3)当某些语法位置只允许出现一个表达式时,用逗号表达式可实现多个表达式的运算,例如后面要介绍的for循环:for(i=0,j=0;i<8,j<10;i++,j++)中的三个语法位置:循环变量赋初值、循环终止条件判断和循环变量增值都只允许一个表达式,用逗号表达式可实现两个或多个表达式的运算。运算符2.关系表达式【例】关系表达式的计算。3.逻辑运算符4.逻辑表达式1逻辑表达式的特殊计算问题①形如(表达式1)&&(表达式2)&&…的逻辑表达式计算到第一个为逻辑假的表达式,就可判定整个逻辑表达式为逻辑假