第五讲 运算符和表达式-算术运算及赋值运算_第1页
第五讲 运算符和表达式-算术运算及赋值运算_第2页
第五讲 运算符和表达式-算术运算及赋值运算_第3页
第五讲 运算符和表达式-算术运算及赋值运算_第4页
第五讲 运算符和表达式-算术运算及赋值运算_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目二程序设计基础知识第五讲运算符和表达式-算术运算符及表达式C语言程序设计任务驱动式教程运算符和表达式C程序基础知识概述数据类型常量变量目录数据类型转换问题导入运算符和表达式任务五按运算符的性质分类:算术运算符、关系运算符、逻辑运算符、赋值运算符、……。按操作数的个数分类:单目运算符、双目运算符和三目运算符。运算符+运算对象(操作数)=表达式运算对象可以是常量、变量或子表达式。运算符和表达式-----算术运算符及表达式任务五1.算术运算符及表达式运算符和表达式-----算术运算符任务五1.算术运算符及表达式运算符和表达式-----算术运算符任务五运算符类型运算含义-单目-x取负值*双目x*y乘法运算/双目x/y除法运算%双目x%y求余(模)运算-双目x-y减法运算+双目x+y加法运算1.算术运算符及表达式运算符和表达式-----算术运算符优先级别及结合性任务五运算符类型优先级结合性-单目高↓低从右向左*/%双目从左向右+-双目从左向右1.算术运算符及表达式运算符和表达式-----算术运算符任务五1.算术运算符及表达式运算符和表达式-----算术运算符任务五增1、减1运算符都是单目运算符,具有右结合性。操作数只能是变量,不能是常量或表达式。它们既可以作为前缀运算符,也可以作为后缀运算符。假设整型变量i=3表达式计算过程执行该语句后的res的值执行该语句后的i的值res=i++;

res=i;i=i+1;34res=i--;res=i;i=i-1;32res=++i;i=i+1;res=i;44res=--i;i=i-1;res=i;22i++:使用变量i之后,再自身加1。++i:先自身加1,再使用变量i。1.算术运算符及表达式运算符和表达式-----算术运算符任务五【注意】(1)常量和表达式是不能做增1、减1运算。例如:8++(m+n)++

(2)++和--的结合方向是“自右至左”。例如:inti=3;printf(“%d”,-i++);表达式-i++的值为:

-3变量i的值为:

41.算术运算符及表达式运算符和表达式-----算术运算符任务五【注意】(3)良好的程序设计风格提倡在一行语句中,一个变量最多只出现一次增1或减1运算。(i++)+(i++)+(i++);相同的表达式用不同的编译程序编译时,采用从左向右或从右向左不同的编译顺序,可能产生不同的运算结果。printf("%d,%d",i,i++);不良风格不良风格1.算术运算符及表达式运算符和表达式-----算术运算符任务五运算符含义举例结果说明+加法运算符a+ba与b的和从左向右-减法运算符a-ba与b的差从左向右*乘法运算符a*ba与b的乘积由于键盘无×号,乘法运算以*代替。从左向右/除法运算符a/ba除以b的商由于键盘无÷号,除法运算以/代替。注意:两个整数相除的结果为整数,如3/2的结果为1,舍去小数部分。从左向右%求余运算符a%ba除以b的余数求余运算%仅用于整数间的运算,若存在负整数,则余数的正负号与被除数相同,如-3%2的结果为-1。从左向右++自增1运算符a++或++a使a的值加1++和--为单目运算,且只能用于单一变量运算;从右向左++a和--a,是在使用a之前,先使a的值加1或减1;a++和a--,是在使用a之后,再使a的值加1或减1。--自减1运算符a--或--a使a的值减1运算符和表达式-----算术表达式任务五运算符和表达式-----算术表达式任务五

运算符和表达式-----赋值运算符和表达式任务五1.简单赋值运算符“=”双目运算符,具有右结合性。格式:

变量名=表达式【注意】(1)“=”可以连用。例如:

a=b=c=d=3;(2)赋值号的左边只能是变量,而不允许是算术表达式或常量。例如:

45+x=100 45=x+y

2.赋值运算符及表达式运算符和表达式-----赋值运算符和表达式任务五2.复合赋值运算符5个涉及算术运算:+=、-=、*=、/=、%=5个涉及位运算:&=、|=、^=、<<=、>>=复合赋值运算符的优点:书写简洁,产生的代码短,运行速度快。格式:

变量名复合赋值运算符

表达式例如:a+=3a=a+3x*=y+8 x=x*(y+8)等价于等价于运算符和表达式-----赋值运算符和表达式任务五2.复合赋值运算符例:已知a=12,求表达式a+=a-=a*a解:①②①求“a-=a*a”a=a-a*a

=12-144

=-132

②求“a+=-132”a=a+(-132)

=-132-132

=-264最后a的值为-264。运算符和表达式-----示例任务五分析程序输出结果。#include<stdio.h> voidmain() {inta=3,b=-5,i=2,j=2;printf("%d,%d,%d,%d,%d\n",a+b,a-b,a*b,a/b,a%b);printf("%d,%d,%d,%d\n",a++,b--,++i,--j);printf("%d,%d,%d,%d\n",a,b,i,j);}程序输出结果技能实训编程实现下列表达式。练一练技能实训任务五y=7+3x2+5x3z=x%2/5-x;技能实训任务五#include<stdio.h>intmain(){ intx,y; floatz; scanf("%d",&x); y=x%2/5-x;

z=7+3*x*x+5*x*x*x; printf("y=%d,z=%f\n",y,z); return0;}学习总结答一答【问题1】

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论