第4章C表达式与基本程序控制结构.ppt

上传人:王** 文档编号:603683 上传时间:2023-12-08 格式:PPT 页数:76 大小:549.50KB
下载 相关 举报
第4章C表达式与基本程序控制结构.ppt_第1页
第1页 / 共76页
第4章C表达式与基本程序控制结构.ppt_第2页
第2页 / 共76页
第4章C表达式与基本程序控制结构.ppt_第3页
第3页 / 共76页
第4章C表达式与基本程序控制结构.ppt_第4页
第4页 / 共76页
第4章C表达式与基本程序控制结构.ppt_第5页
第5页 / 共76页
第4章C表达式与基本程序控制结构.ppt_第6页
第6页 / 共76页
第4章C表达式与基本程序控制结构.ppt_第7页
第7页 / 共76页
第4章C表达式与基本程序控制结构.ppt_第8页
第8页 / 共76页
第4章C表达式与基本程序控制结构.ppt_第9页
第9页 / 共76页
第4章C表达式与基本程序控制结构.ppt_第10页
第10页 / 共76页
亲,该文档总共76页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第4章C表达式与基本程序控制结构.ppt》由会员分享,可在线阅读,更多相关《第4章C表达式与基本程序控制结构.ppt(76页珍藏版)》请在优知文库上搜索。

1、第第4章章 C+表达式表达式与基本程序控制结构与基本程序控制结构 运算符是指用来表示在数据上执行运算符是指用来表示在数据上执行某些特定操作的符号。某些特定操作的符号。参与运算的数据称为操作数。参与运算的数据称为操作数。根据参与运算的操作数的个数是一根据参与运算的操作数的个数是一个、两个或三个,运算符分为一元运算个、两个或三个,运算符分为一元运算符、二元运算符和三元运算符。符、二元运算符和三元运算符。4 41 1 运算符与表达式运算符与表达式表达式表达式是指用运算符和圆括号把常量、变量用运算符和圆括号把常量、变量和函数等运算成分连接起来的有意义的式子和函数等运算成分连接起来的有意义的式子。单个常

2、量、变量和函数也都可以看成是一个单个常量、变量和函数也都可以看成是一个表达式。表达式。表达式经过计算后都会得到一个确定的表达式经过计算后都会得到一个确定的值,这个值就是表达式的值。值,这个值就是表达式的值。每个表达式都具有唯一确定的值每个表达式都具有唯一确定的值和唯一确定的类型。和唯一确定的类型。例如:例如:98.56,(98.56),x,876-78,3*(2.5+5),sqrt(9)都是合法的表达式。都是合法的表达式。它们的值分别为它们的值分别为98.56、98.56、x的值、的值、794、22.5、3。其中其中sqrt()是一个计算平方根的标准函是一个计算平方根的标准函数,包含在库数,包

3、含在库math.h中。中。C+中有一种表达式称为逗号表达式,指中有一种表达式称为逗号表达式,指的是用逗号分隔开的表达式序列。的是用逗号分隔开的表达式序列。比如:比如:x=3,y=8,x+y逗号表达式的求值次序是从左到右依次计逗号表达式的求值次序是从左到右依次计算各表达式的值,以最后一个表达式的值和类算各表达式的值,以最后一个表达式的值和类型作为整个逗号表达式的值和类型。比如上面型作为整个逗号表达式的值和类型。比如上面这个逗号表达式的值为这个逗号表达式的值为11。4.1.1 算术表达式算术表达式用算术运算符(用算术运算符(+、-、*、/)连接起)连接起来的表达式就称为算术表达式。来的表达式就称为

4、算术表达式。用除法运算符进行整数除法与进行浮点用除法运算符进行整数除法与进行浮点数除法是不同的。用于整数时,表示整除,如数除法是不同的。用于整数时,表示整除,如果有余数,余数部分就被省略了。如:果有余数,余数部分就被省略了。如:5/2 得到的结果为得到的结果为 2(int型)型)8/5 得到的结果为得到的结果为 1(int型)型)而用于浮点数时:而用于浮点数时:5.0/2.0 得到的结果为得到的结果为 2.5(float型)型)8.0/5.0 得到的结果为得到的结果为 1.6(float型)型)取余运算符用于取整数除法的余数,是对取余运算符用于取整数除法的余数,是对除法运算符的一个必要的补充。

5、除法运算符的一个必要的补充。如:如:5 2 得到的结果为得到的结果为 1 8 5 得到的结果为得到的结果为 3在在/和和%运算中,注意除数不能为零,否则将运算中,注意除数不能为零,否则将产生溢出错误。产生溢出错误。在做在做+和和*运算特别是运算特别是*运算时,很容易出现运算时,很容易出现运算结果产生溢出的情况,要注意将数据定义为足运算结果产生溢出的情况,要注意将数据定义为足够长度的类型。够长度的类型。当赋值运算符的两边出现相同的变量时,当赋值运算符的两边出现相同的变量时,C+还提供了一个简洁的表达方式:还提供了一个简洁的表达方式:x=。其中的。其中的x可可为为+、-、*、/、等。、等。假定假定

6、e1和和e2是表达式,那么是表达式,那么 e1=(e1)x(e2)就等价于就等价于 e1 x=e2例如,表达式例如,表达式a=a+9可以用可以用+=写成如下形式:写成如下形式:a+=9 注意围绕注意围绕 e2 的括号。例如,表达式的括号。例如,表达式y-=x+1实际上是实际上是y=y-(x+1)+和和-运算符运算符增增1运算符和减运算符和减1运算符分别对其操作数进行运算符分别对其操作数进行加加1和减和减1操作,它们既可以用在变量前,作为操作,它们既可以用在变量前,作为前缀运算符,例如:前缀运算符,例如:int m,n;+m;-n;又可用在变量后,作为后缀运算符。例如又可用在变量后,作为后缀运算

7、符。例如:m+;n-;前缀增(减)前缀增(减)1运算符在使用变量的值之运算符在使用变量的值之前就使变量值加前就使变量值加1或减或减1,后缀增(减)后缀增(减)1运算符在使用变量的值之运算符在使用变量的值之后才使变量值加后才使变量值加1或减或减1。例如,若例如,若n的值为的值为5,那么,那么 x=n+;先将先将n的值的值5赋给赋给x,即,即x的值为的值为5,再将,再将 n的值的值加加1,则,则n为为6。而。而 x=+n;先将先将n的值加的值加1得到得到6,再将,再将n的值赋给的值赋给x,则,则x和和n的值都为的值都为6。4.1.2 关系运算关系运算C+的关系运算符都是二元的,有的关系运算符都是二

8、元的,有、=、=4 的值为的值为1,而表达式而表达式 67!=67 的值为的值为0。例例4.1 关于关系运算的一个例子关于关系运算的一个例子#include void main()double x=45.3,y;couty;cout(xy)10)&(x20)例如,当例如,当 x=14 时,上述表达式为时,上述表达式为1;当当 x=8 时,上述表达式为时,上述表达式为0。|运算符左右两边的表达式只要有一个为运算符左右两边的表达式只要有一个为真(非真(非0),整个表达式的值就为),整个表达式的值就为1。只有当其。只有当其左右两边的表达式都为左右两边的表达式都为0时,整个表达式的值时,整个表达式的值

9、才为才为0。例如:例如:(x20)当当x=36时,此表达式的值为时,此表达式的值为1;x=8时,此表时,此表达式的值也为达式的值也为1;x=16 时,此表达式的值为时,此表达式的值为0。!运算符用在表达式的前面,表示取表达运算符用在表达式的前面,表示取表达式的非。若表达式值为式的非。若表达式值为0,取非以后为,取非以后为1;若表若表达式值为非达式值为非0,取非以后为,取非以后为0。例如:例如:!(32)的值为的值为0,因为,因为(32)的值为的值为1。C+在计算逻辑表达式的值时,若从左到右计在计算逻辑表达式的值时,若从左到右计算到某处就已经能够确定表达式的值,则不再继续算到某处就已经能够确定表

10、达式的值,则不再继续后面部分的求值。后面部分的求值。例如,形如例如,形如 e1&e2 的表达式,的表达式,在已求得表在已求得表达式达式e1的值为的值为0的情况下,已经能够确定整个逻辑表的情况下,已经能够确定整个逻辑表达式的值为达式的值为0,C+就不再对就不再对e2求值。求值。同样,形如同样,形如 e1|e2 的表达式,的表达式,如果已经求得如果已经求得e1的值为的值为1,则整个表达式的值一定为,则整个表达式的值一定为1,C+就不再就不再对对e2求值。求值。4.1.4 条件运算符条件运算符条件运算符条件运算符?:是是C+中唯一的一个三元运算符。中唯一的一个三元运算符。条件运算符的表达式具有如下形

11、式条件运算符的表达式具有如下形式:e1?e2:e3 其中其中e1、e2、e3皆为表达式。皆为表达式。条件运算执行的操作是:先计算表达式条件运算执行的操作是:先计算表达式e1的值,如果为非的值,如果为非0,则计算表达式,则计算表达式 e2 的的值并把它作为整个表达式的值值并把它作为整个表达式的值;而如果而如果e1的值为的值为0,则计算表达式,则计算表达式e3的值,并用它的值,并用它作为整个表达式的值。作为整个表达式的值。例如,表达式例如,表达式 (x y)?10:20 如果如果x的值大于的值大于y的值,则表达式的值为的值,则表达式的值为10,否则表,否则表达式的值为达式的值为20。又如,在语句又

12、如,在语句 max=(ab)?a:b;中,中,max将赋值将赋值为为a、b中较大的数。中较大的数。4.1.5 位运算位运算在计算机存储器中,所有的数据都是以二进在计算机存储器中,所有的数据都是以二进制形式存放的。位运算是对二进制机器数进行的制形式存放的。位运算是对二进制机器数进行的操作。操作。C+中的位运算符有中的位运算符有6种种:按优先级顺序为按优先级顺序为,(),&,|。位运算符的运算对象只能是整型(位运算符的运算对象只能是整型(int)或)或字符型(字符型(char),位运算不改变运算对象本身。),位运算不改变运算对象本身。例例4.2 下面的小程序将输出下面的小程序将输出:fedcba9

13、8#includevoid main()int a=0 x01234567;/0000 0001 0010 0011 0100 0101 0110 0111 couthexaendl;/1111 1110 1101 1100 1011 1010 1001 1000(1)(按位求反):(按位求反):一元运算,将运算对象各位求反。一元运算,将运算对象各位求反。(2)(右移)(右移):二元运算,左操作数为移位对象,右操作数为二元运算,左操作数为移位对象,右操作数为移动位数移动位数n。返回移位对象整体向右移动。返回移位对象整体向右移动n位,高位,高位用位用n个个0填补以后的值。(当移位对象为负数的填补

14、以后的值。(当移位对象为负数的补码时,高位用补码时,高位用n个个1填补。)填补。)例例4.3 左移和右移左移和右移#includevoid main()int a=0 x0089abcd;/0000 0000 1000 1001 1010 1011 1100 1101int b=-100;/1111 1111 1111 1111 1111 1111 1001 1100 couthex(a5)endl;/0001 0001 0011 0101 0111 1001 1010 0000couthex5)endl;/0000 0000 0000 0100 0100 1101 0101 1110 cou

15、thex(b5)endl;/1111 1111 1111 1111 1111 0011 1000 0000couthex5)endl;/1111 1111 1111 1111 1111 1111 1111 1100程序输出:程序输出:113579a044d5efffff380fffffffc(4)&(按位与):(按位与):二元运算,将两个运算对象按位相与。二元运算,将两个运算对象按位相与。(5)(按位异或):(按位异或):二元运算,将两个运算对象按位异或。二元运算,将两个运算对象按位异或。(6)|(按位或):(按位或):二元运算,将两个运算对象按位相或。二元运算,将两个运算对象按位相或。例例4

16、.4 按位逻辑运算按位逻辑运算#includevoid main()int a=0 x01234567;/0000 0001 0010 0011 0100 0101 0110 0111int b=0 x89abcdef;/1000 1001 1010 1011 1100 1101 1110 1111 couthex(a&b)endl;/0000 0001 0010 0011 0100 0101 0110 0111couthex(ab)endl;/1000 1000 1000 1000 1000 1000 1000 1000 couthex(a|b)endl;/1000 1001 1010 1011 1100 1101 1110 1111程序输出:程序输出:12345678888888889abcdef4.1.6 求字节数运算求字节数运算求字节数运算为一元运算,用求字节数运算为一元运算,用sizeof()运算符。其功能是求变量或表达式的数据运算符。其功能是求变量或表达式的数据类型在内存中占据的字节数。待求字节数类型在内存中占据的字节数。待求字节数的表达式放在括号中,返回值为整型。的表达式

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > C/C++资料

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!