版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三讲运算符与表达式第三讲运算符与表达式1内容摘要:1,变量赋初值2,掌握C语言中的各种运算符3,掌握运算符的优先级与结合性教学重点:C语言中各种运算符的使用教学难点:混合表达式中运算符的运算顺序运算符与表达式内容摘要:1,变量赋初值2,掌握C语言中的各种运算符3,掌握22.6变量赋初值程序中常需要对一些变量预先设置初值。C语言允许在定义变量时对变量赋初值----变量的初始化。inta=3;/*指定a为整型变量,初值为3*/floatf=3.56;/*指定f为实型变量,初值为3.56*/charc='a';/*指定c为字符变量,初值为'a'*/1.可以对定义变量的一部分初始化如:inta,b,c=5;2.如果对几个变量赋以同一个初值,不能写成:inta=b=c=3;而应写成:inta=3,b=3,c=3;3.初始化不是在编译阶段完成的,而是在程序运行时,执行函数时赋初值的,相当于有一个赋值语句。例如:inta=3;相当于:inta;a=3;2.6变量赋初值程序中常需要对一些变量预先设置初值。C32.7运算符和表达式C的运算符有以下几类
1.算术运算符(+-*/%)2.赋值运算符(=及其扩展赋值运算符)3.逗号运算符(,)
4.关系运算符(><==>=<=!=)5.逻辑运算符(!&&||)6.位运算符(<<>>~|∧&)7.条件运算符(?:)8.其它2.7.1C语言运算符2.7运算符和表达式C的运算符有以下几类1.算术运42、学习运算符应注意:运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向运算结果的类型2.7运算符和表达式2.7.1C语言运算符2、学习运算符应注意:2.7运算符和表达式2.7.1C52.7运算符和表达式C语言允许使用以下类型的表达式2.7.2C语言表达式类型(1)赋值表达式,如:a=1(6)逗号表达式,如:a=1,b=2,c=3(2)算术表达式,如:1*2+3/4.5(3)关系表达式,如:4>7(4)逻辑表达式,如:8>4&&a<b(5)条件表达式,如:a>b?a:b2.7运算符和表达式C语言允许使用以下类型的表达式2.762.7运算符和表达式2.7.3表达式的求值规则(1)按运算符的优先级别高低次序执行。(2)如果运算对象两侧优先级别相同,则按规定的“结合方向”处理。如:算术运算符的结合方向为“从左至右”赋值运算符的结合方向为“从右至左”2.7运算符和表达式2.7.3表达式的求值规则(1)按71.基本的算术运算符
+(加法运算符,或正值运算符。如3+5、+3)-(减法运算符,或负值运算符,如5-2、-3)*(乘法运算符。如3*5)/(除法运算符。如5/3)%(模运算符,或称求余运算符,要求%两侧均为整型数据,如7%4的值为3)。说明1.两个整数相除结果为整数。
2.如果参加运算的两个数中有一个数为实数,则结果是double型。2.7运算符和表达式2.7.4算术运算符和算术表达式1.基本的算术运算符说明1.两个整数相除结果为整数82.算术表达式和运算符的优先级与结合性用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称C算术表达式。运算对象包括常量、变量、函数等。例如,下面是一个合法的C算术表达式:
a*b/c-1.5+'a’在表达式求值时:先按运算符的优先级别高低次序执行同一优先级的运算符,运算次序由结合方向决定C语言规定了运算符的优先级和结合性。算术运算符的结合方向为“自左至右”,即先左后右.单目运算符、三目运算符、赋值运算符的结合方向为“自右至左”,即先右后左.2.7运算符和表达式2.7.4算术运算符和算术表达式2.算术表达式和运算符的优先级与结合性用算术运算符和括号将运9运算符的优先级(由高到低)附录B初等运算符()[]->.单目运算符算术运算符(先乘除,后加减)关系运算符逻辑运算符(不包括!)条件运算符赋值运算符逗号运算符2.7运算符和表达式运算符的优先级(由高到低)附录B初等运算符()[103.强制类型转换运算符可以利用强制类型转换运算符将一个表达式转换成所需类型。一般形式:(类型名)(表达式)例如:(double)a(将a的值转换成double类型)(int)(x+y)(将x+y的值转换成整型)(float)(5%3)(将5%3的值转换成float型)强制类型转换时,得到一个所需类型的中间量,原来变量的类型未发生变化。main(){floatx;inti;x=3.6;i=(int)x;printf("x=%f,i=%d"x,i);}运行结果如下:x=3.600000,i=32.7运算符和表达式3.强制类型转换运算符可以利用强制类型转换运算符将一个表达式114,自增、自减运算符++--作用:使变量值加1或减1种类:前置++i,--i(在使用i之前,先使i的值加(减)1)后置i++,i--(先使用i值,再使i的值加(减)1)例j=3;k=++j;j=3;k=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;//k=4,j=4//k=3,j=4//4//3//c=20,a=4//c=15,a=42.7运算符和表达式说明:++--不能用于常量和表达式,如5++,(a+b)++++--结合方向:自右向左
4,自增、自减运算符++--例j=3;k=++j12
[例]自增、自减运算符的用法与运算规则示例。/*程序功能:自增、自减运算符的用法与运算规则示例*/main(){intx=6,y;printf("x=%d\n",x); /*输出x的初值*/y=++x; /*前置运算*/printf("y=++x:x=%d,y=%d\n",x,y);y=x--; /*后置运算*/printf("y=x--:x=%d,y=%d\n",x,y);}程序运行结果:x=6y=++x:x=7,y=7y=x--:x=6,y=7 [程序演示]2.7运算符和表达式[例]自增、自减运算符的用法与运算规则示例。2.7运131.赋值运算符(=)作用:将一个数据赋给一个变量,也可以将一个表达式的值赋给一个变量。如:a=32.类型转换(1).将实型数据(包括单、双精度)赋给整型变量时,舍弃实数的小数部分。(2).将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中。(3).将一个double型数据赋给一个float变量时,截取其前面的7位有效数字,存放到float变量的存储单元中(32位)。但应注意数值范围不能溢出。(4).其它转换规则参考教材2.7运算符和表达式2.7.5赋值运算符和赋值表达式1.赋值运算符(=)作用:将一个数据赋给一个变量,也可以将一143、赋值运算符简单赋值运算符符号:=格式:变量标识符=表达式作用:将一个数据(常量或表达式)赋给一个变量复合赋值运算符在赋值运算符“=”之前加上其他预算符号,可以构成复合的预算符。例如,可以有: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*4a=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,关系表达式用关系运算符将两个表达式(算术表达式、关系表达式、逻辑表达式、赋值表达式、字符表达式)连接起来的式子,称为关系表达式。如:
a>b,(A=3)>(B=5),'A'>'B'这些都是合法的关系表达式。
在C语言中关系表达式的值是一个逻辑值,即“真”或“假”。C语言中以“1”代表“真”,以“0”代表“假”。例:若a=3,b=2,c=1则:
a>b的值为“真”,此表达式的值为1。
(a>b)==c的值为“真”,表达式的值为1。(此处a>b的值为1,1==c的值当然为1)
f=a>b>cf的值为02.7.7关系运算符及关系表达式2,关系表达式用关系运算20小结变量赋初值运算符与表达式算术运算符与算术表达式赋值运算符与赋值表达式逗号运算符与逗号表达式关系运算符与关系表达式运算符与表达式小结变量赋初值运算符与表达式算术运算符与算术表达式赋值运算符21第三讲运算符与表达式第三讲运算符与表达式22内容摘要:1,变量赋初值2,掌握C语言中的各种运算符3,掌握运算符的优先级与结合性教学重点:C语言中各种运算符的使用教学难点:混合表达式中运算符的运算顺序运算符与表达式内容摘要:1,变量赋初值2,掌握C语言中的各种运算符3,掌握232.6变量赋初值程序中常需要对一些变量预先设置初值。C语言允许在定义变量时对变量赋初值----变量的初始化。inta=3;/*指定a为整型变量,初值为3*/floatf=3.56;/*指定f为实型变量,初值为3.56*/charc='a';/*指定c为字符变量,初值为'a'*/1.可以对定义变量的一部分初始化如:inta,b,c=5;2.如果对几个变量赋以同一个初值,不能写成:inta=b=c=3;而应写成:inta=3,b=3,c=3;3.初始化不是在编译阶段完成的,而是在程序运行时,执行函数时赋初值的,相当于有一个赋值语句。例如:inta=3;相当于:inta;a=3;2.6变量赋初值程序中常需要对一些变量预先设置初值。C242.7运算符和表达式C的运算符有以下几类
1.算术运算符(+-*/%)2.赋值运算符(=及其扩展赋值运算符)3.逗号运算符(,)
4.关系运算符(><==>=<=!=)5.逻辑运算符(!&&||)6.位运算符(<<>>~|∧&)7.条件运算符(?:)8.其它2.7.1C语言运算符2.7运算符和表达式C的运算符有以下几类1.算术运252、学习运算符应注意:运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向运算结果的类型2.7运算符和表达式2.7.1C语言运算符2、学习运算符应注意:2.7运算符和表达式2.7.1C262.7运算符和表达式C语言允许使用以下类型的表达式2.7.2C语言表达式类型(1)赋值表达式,如:a=1(6)逗号表达式,如:a=1,b=2,c=3(2)算术表达式,如:1*2+3/4.5(3)关系表达式,如:4>7(4)逻辑表达式,如:8>4&&a<b(5)条件表达式,如:a>b?a:b2.7运算符和表达式C语言允许使用以下类型的表达式2.7272.7运算符和表达式2.7.3表达式的求值规则(1)按运算符的优先级别高低次序执行。(2)如果运算对象两侧优先级别相同,则按规定的“结合方向”处理。如:算术运算符的结合方向为“从左至右”赋值运算符的结合方向为“从右至左”2.7运算符和表达式2.7.3表达式的求值规则(1)按281.基本的算术运算符
+(加法运算符,或正值运算符。如3+5、+3)-(减法运算符,或负值运算符,如5-2、-3)*(乘法运算符。如3*5)/(除法运算符。如5/3)%(模运算符,或称求余运算符,要求%两侧均为整型数据,如7%4的值为3)。说明1.两个整数相除结果为整数。
2.如果参加运算的两个数中有一个数为实数,则结果是double型。2.7运算符和表达式2.7.4算术运算符和算术表达式1.基本的算术运算符说明1.两个整数相除结果为整数292.算术表达式和运算符的优先级与结合性用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称C算术表达式。运算对象包括常量、变量、函数等。例如,下面是一个合法的C算术表达式:
a*b/c-1.5+'a’在表达式求值时:先按运算符的优先级别高低次序执行同一优先级的运算符,运算次序由结合方向决定C语言规定了运算符的优先级和结合性。算术运算符的结合方向为“自左至右”,即先左后右.单目运算符、三目运算符、赋值运算符的结合方向为“自右至左”,即先右后左.2.7运算符和表达式2.7.4算术运算符和算术表达式2.算术表达式和运算符的优先级与结合性用算术运算符和括号将运30运算符的优先级(由高到低)附录B初等运算符()[]->.单目运算符算术运算符(先乘除,后加减)关系运算符逻辑运算符(不包括!)条件运算符赋值运算符逗号运算符2.7运算符和表达式运算符的优先级(由高到低)附录B初等运算符()[313.强制类型转换运算符可以利用强制类型转换运算符将一个表达式转换成所需类型。一般形式:(类型名)(表达式)例如:(double)a(将a的值转换成double类型)(int)(x+y)(将x+y的值转换成整型)(float)(5%3)(将5%3的值转换成float型)强制类型转换时,得到一个所需类型的中间量,原来变量的类型未发生变化。main(){floatx;inti;x=3.6;i=(int)x;printf("x=%f,i=%d"x,i);}运行结果如下:x=3.600000,i=32.7运算符和表达式3.强制类型转换运算符可以利用强制类型转换运算符将一个表达式324,自增、自减运算符++--作用:使变量值加1或减1种类:前置++i,--i(在使用i之前,先使i的值加(减)1)后置i++,i--(先使用i值,再使i的值加(减)1)例j=3;k=++j;j=3;k=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;//k=4,j=4//k=3,j=4//4//3//c=20,a=4//c=15,a=42.7运算符和表达式说明:++--不能用于常量和表达式,如5++,(a+b)++++--结合方向:自右向左
4,自增、自减运算符++--例j=3;k=++j33
[例]自增、自减运算符的用法与运算规则示例。/*程序功能:自增、自减运算符的用法与运算规则示例*/main(){intx=6,y;printf("x=%d\n",x); /*输出x的初值*/y=++x; /*前置运算*/printf("y=++x:x=%d,y=%d\n",x,y);y=x--; /*后置运算*/printf("y=x--:x=%d,y=%d\n",x,y);}程序运行结果:x=6y=++x:x=7,y=7y=x--:x=6,y=7 [程序演示]2.7运算符和表达式[例]自增、自减运算符的用法与运算规则示例。2.7运341.赋值运算符(=)作用:将一个数据赋给一个变量,也可以将一个表达式的值赋给一个变量。如:a=32.类型转换(1).将实型数据(包括单、双精度)赋给整型变量时,舍弃实数的小数部分。(2).将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中。(3).将一个double型数据赋给一个float变量时,截取其前面的7位有效数字,存放到float变量的存储单元中(32位)。但应注意数值范围不能溢出。(4).其它转换规则参考教材2.7运算符和表达式2.7.5赋值运算符和赋值表达式1.赋值运算符(=)作用:将一个数据赋给一个变量,也可以将一353、赋值运算符简单赋值运算符符号:=格式:变量标识符=表达式作用:将一个数据(常量或表达式)赋给一个变量复合赋值运算符在赋值运算符“=”之前加上其他预算符号,可以构成复合的预算符。例如,可以有:a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%32.7.5赋值运算符和赋值表达式3、赋值运算符复合赋值运算符a+=3a=a+3x*=y+8x36定义:由赋值运算符将一个变量和一个表达式连接起来的式子。形式:<变量><赋值运算符><表达式>求解过程:先求赋值运算符右侧“表达式”的值,然后赋给赋值运算符左侧的变量。例如: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赋值运算符和赋值表达式说明:37形式:表达式1,表达式2,……表达式n结合性:从左向右优先级:所有运算符中优先级最低逗号表达式的值:等于表达式n的值求解过程:先求表达式1,再求表达式2,依次求下去,直到求出表达式n,整个逗号表达式的值就是表达式n的值例a=3*5,a*4a=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,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河南省公务员人员招聘考试模拟试题与答案详解
- 2026福建福州国有资本投资运营集团有限公司社会招聘3人考试备考试题及答案解析
- 2026年大庆市红岗区公务员人员招聘考试模拟试题与答案详解
- 北京海淀区八里庄社区卫生服务中心招聘9人考试模拟试题及答案解析
- 2027中国航空集团建设开发有限公司高校毕业生校园招聘4人考试参考题库及答案解析
- 家电厂售后服务流程准则
- 2026铜梁区蒲吕街道公益性岗位公开招聘2人笔试备考题库及答案解析
- 2026年承德市双滦区公务员人员招聘考试模拟试题与答案详解
- 2026年阿克苏地区公务员人员招聘考试备考题库与答案详解
- 2026年启东市医疗保险基金管理中心 公开招聘工作人员1人(编外)考试模拟试题及答案解析
- 2026年广东省环保集团有限公司人员招聘考试模拟试题及答案
- 2026-2027北京初中语文秋季期七年级上册期中模拟试卷(三)
- 专项债项目运营管理指南
- 2026年《中国慢性阻塞性肺疾病诊疗指南(2026版)》
- 2026新能源领域薄膜过滤材料应用场景开发与商业模式探索报告
- 《第2课 有趣的平面空间》教学设计-2026-2027学年五年级美术上册岭美版
- 乌鲁木齐辅警考试仿真试题及答案解析
- 2026年六盘水市钟山区法检系统书记员招聘考试参考试题及答案详解
- 第九章 三维点云数据标注
- 纪委谈话室建设标准方案
- 2025中国铁路南宁局招聘笔试考生回忆版真题及官方参考答案
评论
0/150
提交评论