- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4讲-运算符
C程序设计 授课教师:何毅 办公室:1904 内容向导 目的要求及思考题 * * 目的要求 思考题 4.2 赋值运算符 4.1 算术运算符 上机编程与练习 1 2 5 6 7 第4讲 运算符 4 3 4.4 逻辑运算符 4.3 关系运算符 4.1算术运算符 exp1-exp2 L 12 2 - 减 exp1+exp2 L 12 2 + 加 exp1%exp2 L 13 2 % 取余 exp1/exp2 L 13 2 / 除 exp1*exp2 L 13 2 * 乘 i--,--i R 15 1 -- 自减 i++,++i R 15 1 ++ 自增 举例 结合性 优先级 操作数个数 运算符 名称 算术运算符 1.关于基本算术运算符*与% (1)两个整数相除结果为整数 如: 1/2=0.5 23/5=4 23/7=3 (2)整数与小数除的结果为小数 如:1/2.5=0.400000 1./2=0.500000 1/2.0=0.500000 (3)取余%运算只适用于两个整数,结果为相除余数 如: 3.14159%6(×) 14%3=2 24%8=0 (4)/和%相结合进行整数分离 如:int x=789; int a,b,c; a = x/100; b = x/10%10; /*是否还有其它方法*/ c = x%10; /* a,b,c的值分别是什么?*/ 练习:编写程序,输入一个整数,将每位上 数字分离并输出。 main() { int x; int a,b,c; printf(“input x :”); scanf(“%d”,x); a=x/100; b=x%100/10; c=x%10; printf(“a=%d,b=%d,c=%d\n”,a,b,c); } 2.关于自增自减运算符(++,--) (1) 分前置和后置 后置:i++ 或 i- - 前置:++i 或 - -i (2)变量无论前置和后置都自加1 如: i++或++i == i=i+1 i--或--i == i=i-1 (3)参与运算前置和后置效果不同 前置时: 变量先自身加或减1,之后参与其他运算 后置时: 变量先参与其他运算,之后再加或减1 练习: (1)如: 若k=3,i=3,执行下列运算 m=++k; n=i++; 那么m,n,k,i的值分别是多少? (2)写出下面程序的输出结果 main() { int x=10,y=15,z; z=x++; y=x-(++z); printf(“x=%d,y=%d,z=%d\n”,x,y,z); } 3.优先级与结合性 说明 (1)优先级 不同运算符出现时运算的优先顺序 ()→++,--→*,/,%→+,- (2)结合性 同一级别运算符出现时运算的方向 4.2.赋值运算符 等价于 举例 y=y%x y=y/x y=y*x y=y-x y=y+x y=x y%=x %= 取余赋值 y/=x /= 除赋值 y*=x *= 乘赋值 y-=x -= 减赋值 y+=x += 加赋值 复合赋值 y=x R 2 = 赋值 简单赋值 例子 结合性 优先级 运算符 名称 分类 赋值运算符 (2)优先级 低于算术运算符 如: y=20; x=y*y+2*y; /*x=440*/ (3)结合性 都按自右向左结合,允许连续赋值 如: x=10*(y=8); /*x=80,y=8*/ 若x=10,y=20,z=30,则表达式 x+=y+=z*z ==x=x+(y=y+z*z) 之后x,y,z的值分别为多少? 练习:执行下面程序,写出执行结果并解释 main() { int x=6; x+=x-=x*x; printf(“x=%d\n”,x); } 4.3.关系运算符 exp1!=exp2 != 不等于 exp1==exp2 7 == 等于 exp1=exp2 = 大于或等于 exp1=exp2 = 小于或等于 exp1exp2 大于 e
文档评论(0)