欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    华中科技大学光电子学院C语言第二章.ppt

    • 资源ID:6183783       资源大小:242.99KB        全文页数:20页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    华中科技大学光电子学院C语言第二章.ppt

    第二章 运算符与表达式1 表达式 三个问题:1.运算符运算次序(求值)2.表达式的书写 3.表达式的类型转换C语言是一种表达式语言,任何表达式后跟“;”都是语句.,一表达式 表达式是由运算对象(常量,变量,函数)与运算符 组成的有意义的式子。例:代数式 表达式,(a+b)/(c e/(4*f),sqrt(x)+sin(41*3.14159/180),pow(y,1/5)+log(3*x),(c=0),注:1.一个表达式书写只能占一行。层次性通过加圆括号体现。2.任何表达式计算的结果只能是一个值,且其值的类型就是 表达式的类型。3.常量,变量,有返回值的函数调用等都可视为简单表达式。,表达式的分类(按运算符分类),算术表达式关系表达式逻辑表达式赋值表达式条件表达式逗号表达式位运算表达式,表达式的求值由运算符的功能和运算符优先级与结合性决定的。,二.运算符与优先级及结合性,算术运算符:+,*,/,%,+,关系运算符:,=,=,!=,=逻辑运算符:!(非),&(与),|(或)赋值运算符:=复合赋值运算符:+=,=,*=,/=,%=,=,&=,.条件运算符:?:逗号运算符:,位运算符:(按位加),|(按位或),(右移),(左移),&(按位与),(求反),2 运算符的优先级与结合性(p26),2.运算符及运算 一算术运算 1.运算符;+,*,/,%单目运算符:(求负),+(正号)%(求余):只用于整型数运算,且余数的符号取自被 除数,结果类型为整型 例:7%4=3,7%4=3 结果为整形/(求商):用于整,实数的运算,结果类型分别为整型和双精度浮点型 例:5/3=1(整除),5.0/2=2.5(实数除,双精度浮点型double)例:int a=2,b=3,c=7,d=19;d%c b/a*5+5/*表达式结果类型为整型值为15*/,2.混合类型数据运算的类型转换规则。1)自动转换规则(隐式转换)一般转换原则,值域窄的类型向值域宽的类型转换 char/short int unsigned long unsigned long float double long double,例:int i;char c;long p;double d;short s;float f;unsigned u;c s/i/*表达式类型为int*/u*3 i/*表达式类型为unsigned*/u*3.0 i/*表达式类型为 double*/f*3 i/*表达式类型为float*/c+1/*表达式类型为int*/3*s*p/*表达式类型为long*/,赋值号两边类型不同时,将右边的类型转换成左边类型(不受上面规则的约束)右边类型左边类型float int 截去小数部分(降格)double float 四舍五入(降格)int float 小数部分均为(降格)int char 丢掉高出位(降格)long int 丢掉高出位(与机器有关)(降格)强制类型(显式)转换 一般形式:(类型名)(表达式)例:(char)(3 3.14*x)/*表达式类型为char*/(float)i+3/*表达式类型为 float 原i类型不变*/注:被强制转换的变量类型不发生变化,二赋值运算及复合赋值运算 赋值运算符:复合赋值运算符:,=,&=,=,|=,=注:二目运算符,从右向左结合,赋值运算:形式:左值表达式表达式例:int x;x=0;/*赋值语句 单元中为*/x=x+1/*赋值语句单元中为*/,语义:将赋值号右边表达式的值计算出来并赋给左边的 左值表达式所代表的单元中如:X=X+1;x+1=0;(错误)用X单元地址 用X单元中的值 算术表达式注:赋值号的左边左值表达式可以是度量名,下标表达 式,指针变量名和访问表达式,结构成员选择表达 式和结构变量名。.赋值表达式的类型与左值表达式的类型相同.如:i;i();多重赋值表达式但:int i=j=0;(错误)多重赋值表达式不能出现在说明部分。,复合赋值运算 形式:左值表达式op=表达式;其中:op 为,*,,,展开式:左值表达式左值表达式op(表达式)例:2 2*3 k*(3)*3 注:1.如果赋值号左边只能是变量或用表达式表示的变量(左值表达式)即用表达式表示的单元地址,而不能出现结果为算术类型的表达式 如:13*75(错误)13*13*75 但:13*(7)5(正确)*p=10(正确)2.复合赋值表达式的语义与展开式语义不一定等价:如:a+i+=3 与展开式:a+i=a+i+3 语义不同 前一个 i 增 1,后面的 i 增 2 就是说:赋值号左部是个左值表达式的变量,则该表达式在整个 计算中只能执行一次。,三.自增和自减运算运算符:,(单目运算)单目运算符,由右向左结合运算,且运算对象只能是变量而不能是常量或表达式。例:int i;i=i 1(前缀式:先加,再使用值)i=i 1(前缀式:先减,再使用值)(后缀式:使用中值后,中值自动加)(后缀式:使用中值后,中值自动减)例:b=a=3;a+b;即(a+)+b;结果为6,a为4;b不变.规定:自左向右取尽可能多的符号组成运算符j=i+;(从右往左结合)j=(i+)若:j=(-i)+(错误);+(x/y)(错误)算术表达式 int x=0,j=1;(x+x+);取x的当前值,结果为0,的值为2 j&/*结果为1,的值为1*/注:后缀,延迟到&,|,?:,或完整表达式之 后为止,四.关系运算与逻辑运算,关系表达式和逻辑表达式的结果类型为整型,仅有两个值,真值为,假值为0若关系成立时,则关系表达式的值为,否则为0逻辑运算符的运算规则,如:!a(a 为任何类型):若a为非0,则!a为0;若a为0,则!a为1 a&b 若表达式a的值与b表达式的值同时为非0时,则结果为1,否则为0 a|b若表达式a的值与b表达式的值同时为0时,则结果为0,否则 为1,例:判断ch中是否为小写字母则可用。ch=a x!=xy x!=(x+y)结果为=x=(x+y)结果为!结果为(不为10)x!=y&x=!y(!=)&(x=(!=y)结果为0注:!与0 相等,五.按位运算对单元中二的位进行运算,不能用于float,double 类型,只能用于整形,结果为整型,运算符:(与),(按位或),(按位加),(求反),(右移),(左移)&运算法则:两对应位同时为,结果为,否则为)运算法则:两对应为同时为,结果为,否则为)运算法则:两对应为相同为,不同为)将原来为的位变,为的位变,例:0XABCD&0XFF 用0XFF与 0XABCD按位与,则可取后位二进制数结果为0XCD注:&和&,|和|的区别&,|是对位进行逐位运算,&,|对整个表达式进行逻辑运算&,|要计算表达式的具体值,&,|要判断表达式为或&,|具有交换性,即x|y=y|x,x&y y&x,但&,|不可交换例:&结果为&结果为,)e 1 e 2 将右移位,左边空出位填充右的类型决定,若是无符号类型由填,否则由符号位填例:int x=10则:结果为左移位则将原来值扩大倍左移为则将原来值扩大的次方倍类似:右移为则将原来值缩小的次方倍,六.条件运算 一般形式:e1?e2:e3 其中:e1,e2,e3为表达式,?:为条件运算符 功能:e1的值为非零(即真),则计算e2的值,作为 表达式的值,否则,计算e3的值,作为表达式 的值 例:求,中较大的一个数送z中z=(a b)?a:例:求绝对值送absx中 absx=x=a&ch=z)?(ch-a+A):ch,七.“,”运算符“,”有两个作用:.用作分隔符:如int x,y;.在逗号表达式中作逗号运算符 逗号表达式:e1,e2 逗号表达式的值和类型取自最右边表达式的值和类型,且从左向右结合运算。例:int a,b;char c;a=1,b=2,c=3;/*逗号表达式,其结果为,类型为字符型例:(,)(,)/*结果为*/,练习题 将下列数学式写成语言的表达式 已知变量说明如下 char c=a;int a=3,b=4,d=-7;double x=1.8,y=3.15;求下列表达式的值:)a%b+c/a/b)a+1c)a+/+d-b)x+x!=x y)a!=b&x=y)!x|!y=0,*,*,

    注意事项

    本文(华中科技大学光电子学院C语言第二章.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开