c语言运算符与表达式课件

上传人:hloru****lorv6 文档编号:240975387 上传时间:2024-05-21 格式:PPT 页数:21 大小:121.61KB
返回 下载 相关 举报
c语言运算符与表达式课件_第1页
第1页 / 共21页
c语言运算符与表达式课件_第2页
第2页 / 共21页
c语言运算符与表达式课件_第3页
第3页 / 共21页
点击查看更多>>
资源描述
第三讲第三讲运算符与表达式运算符与表达式第三讲 运算符与表达式1内容摘要:1,变量赋初值2,掌握C语言中的各种运算符3,掌握运算符的优先级与结合性教学重点:C语言中各种运算符的使用教学难点:混合表达式中运算符的运算顺序运算符与表达式内容摘要:1,变量赋初值2,掌握C语言中的各种运算符3,掌握22.6 变量赋初值变量赋初值程序中常需要对一些变量预先设置初值。程序中常需要对一些变量预先设置初值。C语言允许在定义变语言允许在定义变量时对变量赋初值量时对变量赋初值-变量的初始化。变量的初始化。int a=3;/*指定指定a为整型变量,初值为为整型变量,初值为3*/float f=3.56;/*指定指定f为实型变量,初值为为实型变量,初值为3.56*/char c=a;/*指定指定c为字符变量,初值为为字符变量,初值为a*/1.可以对定义变量的一部分初始化可以对定义变量的一部分初始化 如:如:int aint a,b b,c=5;c=5;2.如果对几个变量赋以同一个初值,不能写成:如果对几个变量赋以同一个初值,不能写成:int a=b=c=3;int a=b=c=3;而而应写成应写成:int a=3 int a=3,b=3b=3,c=3;c=3;3.初始化不是在编译阶段完成的,而是在程序运行时,执行函数初始化不是在编译阶段完成的,而是在程序运行时,执行函数时赋初值的,相当于有一个赋值语句。例如:时赋初值的,相当于有一个赋值语句。例如:inta=3;相当于:相当于:inta;a=3;2.6 变量赋初值程序中常需要对一些变量预先设置初值。C32.7 运算符和表达式运算符和表达式C C的运算符有以下几类的运算符有以下几类 1 1算术运算符算术运算符 (+-*/%)+-*/%)2 2赋值运算符赋值运算符(=及其扩展赋值运算符)及其扩展赋值运算符)3 3.逗号运算符逗号运算符(,)(,)4 4关系运算符关系运算符 (=!=)5 5逻辑运算符逻辑运算符 (!(!&|&|)6 6位运算符位运算符 (|&)&)7 7条件运算符条件运算符 (?:?:)8 8其它其它 2.7.1C语言运算符语言运算符2.7 运算符和表达式C的运算符有以下几类 1算术运42 2、学习运算符应注意:学习运算符应注意:运算符功能运算符功能与运算量关系与运算量关系要求运算量个数要求运算量个数要求运算量类型要求运算量类型运算符优先级别运算符优先级别结合方向结合方向运算结果的类型运算结果的类型2.7 运算符和表达式运算符和表达式2.7.1C语言运算符语言运算符2、学习运算符应注意:2.7 运算符和表达式2.7.1 C52.7 运算符和表达式运算符和表达式C C语言允许使用以下类型的表达式语言允许使用以下类型的表达式2.7.2C语言表达式类型语言表达式类型(1)赋值表达式,如:)赋值表达式,如:a=1(6)逗号表达式,如:)逗号表达式,如:a=1,b=2,c=3(2)算术表达式,如:)算术表达式,如:1*2+3/4.5(3)关系表达式,如:)关系表达式,如:47(4)逻辑表达式,如:)逻辑表达式,如:84&ab?a:b2.7 运算符和表达式C语言允许使用以下类型的表达式2.762.7 运算符和表达式运算符和表达式2.7.3表达式的求值规则表达式的求值规则(1)按运算符的优先级别高低次序执行。)按运算符的优先级别高低次序执行。(2)如果运算对象两侧优先级别相同,则按)如果运算对象两侧优先级别相同,则按规定的规定的“结合方向结合方向”处理。处理。如:算术运算符的结合方向为如:算术运算符的结合方向为“从左至右从左至右”赋值运算符的结合方向为赋值运算符的结合方向为“从右至左从右至左”2.7 运算符和表达式2.7.3 表达式的求值规则(1)按7 1.1.基本的算术运算符基本的算术运算符 +(加法运算符,或正值运算符。如(加法运算符,或正值运算符。如3 35 5、3 3)-(减法运算符,或负值运算符,如(减法运算符,或负值运算符,如5-25-2、-3-3)*(乘法运算符。如(乘法运算符。如3*53*5)(除法运算符。如(除法运算符。如5 53 3)(模运算符,或称求余运算符,要求两侧均为整型数据,(模运算符,或称求余运算符,要求两侧均为整型数据,如如7 74 4的值为的值为3 3)。)。说明说明1.1.两个整数相除结果为整数。两个整数相除结果为整数。2.2.如果参加运算的两个数中有一个数为实数,则结果是如果参加运算的两个数中有一个数为实数,则结果是doubledouble型。型。2.7 运算符和表达式运算符和表达式2.7.4算术运算符和算术表达式算术运算符和算术表达式 1.基本的算术运算符说明1.两个整数相除结果为整数82.2.算术表达式和运算符的优先级与结合性算术表达式和运算符的优先级与结合性用算术运算符和括号将运算对象(也称操作数)连接起来的、用算术运算符和括号将运算对象(也称操作数)连接起来的、符合符合C C语法规则的式子,称语法规则的式子,称C C算术表达式算术表达式。运算对象包括常量、。运算对象包括常量、变量、函数等。例如,下面是一个合法的变量、函数等。例如,下面是一个合法的C C算术表达式:算术表达式:a*b/c-1.5+aa*b/c-1.5+a 在表达式求值时:在表达式求值时:先按运算符的优先级别高低次序执行先按运算符的优先级别高低次序执行 同一优先级的运算符,运算次序由结合方向决定同一优先级的运算符,运算次序由结合方向决定C C语言规定了运算符的优先级和结合性。语言规定了运算符的优先级和结合性。算术运算符的结合方向为算术运算符的结合方向为“自左至右自左至右”,即先左后右即先左后右.单目运算符、三目运算符、赋值运算符的结合方向单目运算符、三目运算符、赋值运算符的结合方向为“自右至左自右至左”,即先右后左即先右后左.2.7 运算符和表达式运算符和表达式2.7.4算术运算符和算术表达式算术运算符和算术表达式2.算术表达式和运算符的优先级与结合性用算术运算符和括号将运9运算符的优先级运算符的优先级(由高到低由高到低)附录附录B B初等运算符初等运算符()-.()-.单目运算符单目运算符算术运算符算术运算符(先乘除,后加减先乘除,后加减)关系运算符关系运算符 逻辑运算符逻辑运算符 (不包括(不包括!)条件运算符条件运算符 赋值运算符赋值运算符 逗号运算符逗号运算符 2.7 运算符和表达式运算符和表达式运算符的优先级(由高到低)附录B初等运算符()103.3.强制类型转换运算符强制类型转换运算符可以利用强制类型转换运算符将一个表达式转换成所需类型。可以利用强制类型转换运算符将一个表达式转换成所需类型。一般形式一般形式:(类型名类型名)()(表达式表达式)例如:例如:(double)a (double)a (将(将a a的值转换成的值转换成doubledouble类型)类型)(int)(x+y)(int)(x+y)(将(将x+yx+y的值转换成整型)的值转换成整型)(float)(5 (float)(53)3)(将(将5 53 3的值转换成的值转换成floatfloat型)型)强制类型转换时,得到一个所需类型的中间量,原来变量的类型强制类型转换时,得到一个所需类型的中间量,原来变量的类型未发生变化。未发生变化。main()main()float x float x;int i;int i;x=3.6;x=3.6;i=(int)x;i=(int)x;printf printf(x=%f,i=%dx,i);x=%f,i=%dx,i);运行结果如下运行结果如下:x=3.600000,i=3x=3.600000,i=32.7 运算符和表达式运算符和表达式3.强制类型转换运算符可以利用强制类型转换运算符将一个表达式114 4,自增、自减运算符,自增、自减运算符+-+-作用:使变量值加作用:使变量值加1 1或减或减1 1种类:种类:前置前置 +i,-i (+i,-i (在使用在使用i i之前,先使之前,先使i i的值加的值加(减减)1)1)后置后置 i+,i-(i+,i-(先使用先使用i i值,再使值,再使i i的值加的值加(减减)1)1)例例 j=3;k=+j;j=3;k=+j;j=3;k=j+;j=3;k=j+;j=3;printf(“%d”,+j);j=3;printf(“%d”,+j);j=3;printf(“%d”,j+);j=3;printf(“%d”,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;a=3;b=5;c=(a+)*b;/k=4,j=4/k=3,j=4/4/3/c=20,a=4/c=15,a=42.7 运算符和表达式运算符和表达式说明说明:+-+-不能用于常量和表达式不能用于常量和表达式,如如5+5+,(a+b)+(a+b)+-+-结合方向:结合方向:自右向左自右向左 4,自增、自减运算符+-例 j=3;k=+j12例例自增、自减运算符的用法与运算规则示例。自增、自减运算符的用法与运算规则示例。/*程序功能:自增、自减运算符的用法与运算规则示例程序功能:自增、自减运算符的用法与运算规则示例*/main()intx=6,y;printf(x=%dn,x);/*输出输出x的初值的初值*/y=+x;/*前置运算前置运算*/printf(y=+x:x=%d,y=%dn,x,y);y=x-;/*后置运算后置运算*/printf(y=x-:x=%d,y=%dn,x,y);程序运行结果:程序运行结果:x=6y=+x:x=7,y=7y=x-:x=6,y=7程序演示程序演示2.7 运算符和表达式运算符和表达式 例 自增、自减运算符的用法与运算规则示例。2.7 运131.1.赋值运算符(赋值运算符(=)作用作用:将一个数据赋给一个变量,也可以将一个表达式的值将一个数据赋给一个变量,也可以将一个表达式的值赋给一个变量。赋给一个变量。如:如:a=3a=32.2.类型转换类型转换(1)(1)将实型数据将实型数据(包括单、双精度包括单、双精度)赋给整型变量时赋给整型变量时,舍弃实数的小数部分。舍弃实数的小数部分。(2)将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中。储到变量中。(3)(3)将一个将一个doubledouble型数据赋给一个型数据赋给一个floatfloat变量时,截取其前面的变量时,截取其前面的7 7位有效数字,位有效数字,存放到存放到floatfloat变量的存储单元中变量的存储单元中(32(32位位)。但应注意数值范围不能溢出。但应注意数值范围不能溢出。(4).(4).其它转换规则参考教材其它转换规则参考教材2.7 运算符和表达式运算符和表达式2.7.5赋值运算符和赋值表达式赋值运算符和赋值表达式1.赋值运算符(=)作用:将一个数据赋给一个变量,也可以将一143 3、赋值运算符、赋值运算符简单赋值运算符简单赋值运算符符号:符号:=格式:格式:变量标识符变量标识符=表达式表达式作用:将一个数据(常量或表达式)赋给一个变量作用:将一个数据(常量或表达式)赋给一个变量复合赋值运算符复合赋值运算符在在赋值运算符赋值运算符“=”“=”之前加上其他预算符号,可以构成复合的预算之前加上其他预算符号,可以构成复合的预算符。符。例如,可以有:例如,可以有:a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%32.7.5 赋值运算符和赋值表达式赋值运算符和赋值表达式3、赋值运算符复合赋值运算符a+=3a=a+3x*=y+8x15定义:定义:由赋值运算符将一个变量和一个表达式连接起来的式子。由赋值运算符将一个变量和一个表达式连接起来的式子。形式:形式:求解过程求解过程:先求赋值运算符右侧先求赋值运算符右侧“表达式表达式”的值,然后赋给赋值运算符左侧的变量。的值,然后赋给赋值运算符左侧的变量。例如:例如:a=b=c=6;a=(b=4)+(c=6);(表达式值为;(表达式值为10,a值为值为10,b等于等于4,c等于等于6)4、赋值表达式赋值表达式2.7.5 赋值运算符和赋值表达式赋值运算符和赋值表达式说明:说明:1、赋值运算后,左边变量的值被右边表达式的值替换;、赋值运算后,左边变量的值被右边表达式的值替换;2、若右边表达式的值的类型与左边变量类型不一致,则以左边变量、若右边表达式的值的类型与左边变量类型不一致,则以左边变量的类型为准,将表达式的类型转换为左边变量的类型。的类型为准,将表达式的类型转换为左边变量的类型。3、赋值运算符的优先级仅高于逗号运算符。结合方向为、赋值运算符的优先级仅高于逗号运算符。结合方向为“从右向左从右向左”。4、赋值表达式2.7.5 赋值运算符和赋值表达式说明:16形式:形式:表达式表达式1,表达式表达式2,表达式表达式n结合性结合性:从左向右从左向右优先级优先级:所有运算符中优先级最低所有运算符中优先级最低逗号表达式逗号表达式的值:等于表达式的值:等于表达式n的值的值求解过程:先求表达式求解过程:先求表达式1,再求表达式再求表达式2,依次求下去依次求下去,直到求直到求出表达式出表达式n,整个逗号表达式的值就是表达式整个逗号表达式的值就是表达式n的值的值例 a=3*5,a*4 a=3*5,a*4,a+5例 x=(a=3,6*3)x=a=3,6*a例 a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);/a=15,表达式值60/a=15,表达式值20/赋值表达式,表达式值18,x=18/逗号表达式,表达式值18,x=3/1,2,3/3,2,32.7.6 逗号运算符和逗号表达式逗号运算符和逗号表达式例 a=3*5,a*4/a=15,表达式值60/a=17求解过程分析:求解过程分析:自自左左至至右右,依依次次计计算算各各表表达达式式的的值值,“表表达达式式n”的的值即为整个逗号表达式的值。值即为整个逗号表达式的值。例例如如,逗逗号号表表达达式式“a=3*5,a*4”的的值值=60:先先求求解解a=3*5,得得a=15;再再求求a*4=60,所所以以逗逗号号表表达达式式的值的值=60。又又例例如如,逗逗号号表表达达式式“(a=3*5,a*4),a+5”的的值值=20:先先求求解解a=3*5,得得a=15;再再求求a*4=60;最最后后求求解解a+5=20,所以逗号表达式的值,所以逗号表达式的值=20。注注意意:并并不不是是任任何何地地方方出出现现的的逗逗号号,都都是是逗逗号号运运算算符符。很多情况下,逗号仅用作分隔符。很多情况下,逗号仅用作分隔符。2.7.6 逗号运算符和逗号表达式逗号运算符和逗号表达式求解过程分析:2.7.6 逗号运算符和逗号表达式182.7.7 关系运算符及关系表达式关系运算符及关系表达式1,关系运算符及其优先次序,关系运算符及其优先次序在在C语言中提供语言中提供6种关系运算符种关系运算符关系运算符关系运算符含义含义优先级与结合方向优先级与结合方向小于小于优先级相同(高)优先级相同(高)结合方向(从左向右)结合方向(从左向右)大于大于=大于或等于大于或等于=等于等于优先级相同(低)优先级相同(低)结合方向(从左向右)结合方向(从左向右)!=不等于不等于关系运算符的优先级低于算术运算符关系运算符的优先级高于赋值运算符2.7.7 关系运算符及关系表达式1,关系运算符及其优先次192.7.7 关系运算符及关系表达式关系运算符及关系表达式2,关系表达式,关系表达式用关系运算符将两个表达式(算术表达式、关系表达式、逻辑表达用关系运算符将两个表达式(算术表达式、关系表达式、逻辑表达式、赋值表达式、字符表达式)连接起来的式子,称为关系表达式。式、赋值表达式、字符表达式)连接起来的式子,称为关系表达式。如:如:ab,(A=3)(B=5),AB这些都是合这些都是合法的关系表达式。法的关系表达式。在在C语言中关系表达式的值是一个逻辑值,即语言中关系表达式的值是一个逻辑值,即“真真”或或“假假”。C语言中以语言中以“1”代表代表“真真”,以,以“0”代表代表“假假”。例:若例:若a=3,b=2,c=1则:则:ab的值为的值为“真真”,此表达式的值为,此表达式的值为1。(ab)=c的值为的值为“真真”,表达式的值为,表达式的值为1。(此处。(此处ab的值为的值为1,1=c的值当然为的值当然为1)f=abcf的值为的值为02.7.7 关系运算符及关系表达式2,关系表达式用关系运算20小结变量赋初值变量赋初值运算符与表达式运算符与表达式算术运算符与算术表达式算术运算符与算术表达式赋值运算符与赋值表达式赋值运算符与赋值表达式逗号运算符与逗号表达式逗号运算符与逗号表达式关系运算符与关系表达式关系运算符与关系表达式运运算算符符与与表表达达式式小结变量赋初值运算符与表达式算术运算符与算术表达式赋值运算符21
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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