C语言运算符与表达式课件,C语言课件(运算符和表达式).ppt

253b171540df25e1b84436cbe50dfc72.gifC语言课件(运算符和表达式).ppt

运算符与表达式第二讲 运算符和表达式,引例 概念及分类 优先级和结合性 算术运算 关系运算 逻辑运算 位运算 赋值运算符 逗号运算符 条件运算符,引例,引例 问题 输入一个四位的正整数,反序输出该四位数的四个数字字符。 设计 用一个无符号整型变量number保存输入的四位正整数。 依次分解出个位数字、十位数字、百位数字和千位数字,并分别放到字符变量c1、c2、c3和c4中。 怎么分解 利用除法、取模等运算。 顺序输出变量c1、c2、c3和c4中的字符。,引例,引例 源程序(cw04-01.c),include void main unsigned number; char c1, c2, c3, c4; printf“请输入一个四位的正整数“; scanf“u“, ,请输入一个四位的正整数 1234 4321,相关概念,运算符 在C语言中用来表示某种计算的符号。 操作数 运算符操作的对象,可以为变量(已赋值)、常量或其他有切确值的表达式。 表达式 运算符和合适的操作数组成的具有切确值的式子称为表达式。,运算符分类,单目运算符(一元运算符) 只有1个操作数。 双目运算符(二元运算符) 具有2个操作数。(主要类型) 三目运算符(三元运算符) 需要3个操作数。(唯一条件运算符 ),运算符的优先级和结合性,运算符的优先级 某些运算符先于其他运算符被执行。 例如,x y * 4,先乘除后加减。 必要时可以用圆括号()改变计算顺序。 例如,求三个数的平均值。 错误的写法a b c / 3 正确的写法a b c / 3 运算符的结合性 当出现并列的运算优先级别相同的运算符时,由运算符的结合性决定计算的次序。 例如,x * y / z,算术运算符,常用的算术运算及运算符 说明 取模运算(),结果是两个整数相除的余数。 例如,75 2,-23 -2。,运算符和表达式,自增和自减运算符,自增和自减运算符 自增运算符 将操作数的值增一。 自减运算符 将操作数的值减一。 操作数必须是整型和字符型变量。 单目运算符。 优先级2。 结合性从右往左。,运算符和表达式,算术运算符(特殊问题),除号运算符的使用问题 当除号前后操作数全为整型数(包括char、int、long)时,除号为整除运算。 当有任一操作数为实型数时则为普通除法运算。 取模运算符的使用问题 操作数只能整型数据(char、int、long)。 自加/自减运算符的使用问题 ()在前先加(减)后用; ()在后先用后加(减)。,自增和自减运算,举例(cw0404.c),include void main int i6, a, b; printf“dn“, i; printf“dn“, i; ai; printf“dn“, a; bi; printf“dn“, b; printf“dn“, -i; printf“idn“, i; ,7 7 7 7 -6,i ,关系运算,关系运算(比较运算) 比较两个值,结果为“真”或“假”。 举例a3 如果a8,则结果为“真” 如果a1,则结果为“假” 用关系运算进行条件判断 关系表达式表示一个条件,根据其结果判断条件是否满足。 举例a3 如果a8,结果为“真”,即条件满足 如果a1,结果为“假”,即条件不满足,关系运算符,关系运算符,关系表达式,关系表达式 表达式1和表达式2可以是任何表达式。 举例,ab mnzyz,关系表达式,关系表达式的值是一个逻辑值“真”或“假” C语言没有逻辑类型,因此 用整数 1 表示“真” 用整数 0 表示“假” 即关系表达式的值是整数 1 或 0 。 举例 若a1,b2,c3,ab abcbc Yy,0 1 1 1,关系表达式的使用,举例写出下面各条件的关系表达式 x为不小于 -5 的整数 x为非零的数 x的平方大于m与n的和,x-5 x0 x*xmn,关系运算的不足,关系表达式只能表达一些简单的条件 grade60 total1000 每个判断只是对一个条件进行测试。 如果要对多个条件进行测试就要在独立的语句或嵌套的if或if-else结构中进行测试。 例110y5 例2x0,if y5 if y10 ;,if x0 ;,逻辑运算,逻辑运算 通过逻辑运算符把简单的条件组合起来,能够形成更加复杂的条件。 例110y5 的逻辑表达式 y5y0 的逻辑表达式 x0 逻辑运算符 (逻辑非) (逻辑与) (逻辑或)逻辑表达式,逻辑表达式 表达式1和表达式2可以是任何表达式。 举例,x5xcacbbca,逻辑表达式的值 1真 0假 整数逻辑运算,逻辑运算真值表,,,,逻辑表达式的使用,将下面的条件用C语言的逻辑表达式表示 例11x10且x7 x1x65 如果gender不等于F,整个表达式的值就是假,求值过程结束。 例2average90finalExam90 如果average大于等于90,整个表达式的值就是真,求值过程结束。,程序设计举例,举例(cw0602.c) 问题任意输入一个字符,判断它是字母还是数字。,include void main char c; cgetchar; if cA ,位运算,位左移,位与 n的值为3。,运算符和表达式,cab abcd10 xa5b8,aab abcd10 a5, b8, xab,复合赋值运算,复合赋值运算符, -, *, /, 简化了赋值表达式 由下面的表达式简化而来 举例,运算符和表达式,a5 x*y7 xx-x*x,aa5 xx*y7 xxxx-xx*x逗号运算符,逗号运算符, 优先级15。 结合性从左往右。 逗号表达式 , , , x1, ab1, i 求解过程先求表达式1的值,再求表达式2的值直至求出表达式n的值。 表达式的值为表达式n的值。,条件运算符,条件运算符 三目运算符 右结合 条件表达式 举例,printf“s”,grade60 “Passed”“Failed”;,grade60printf“Passed”printf“Failed”;,cabab;,小结,运算符的相关概念 运算符的分类 按操作数个数分 按操作类型分 各类运算符及表达式知识 优先级和结合性总结,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值