资源描述:
《c语言课件第3章顺序程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章顺序程序设计1一、算术运算和算术表达式二、赋值运算和赋值表达式三、自增自减运算四、优先级和类型转换五、赋值语句六、顺序结构程序设计主要内容2C语言运算符简介1、算术运算符+-*/%2、关系运算符><==>=<=!=3、逻辑运算符!&&
2、
3、4、位运算符<<>>~
4、^&5、赋值运算符=及其扩展赋值运算符6、条件运算符?:7、逗号运算符,8、指针运算符*&9、求字节数运算符sizeof10、强制类型转换运算符(类型)11、分量运算符.12、下标运算符[]13、其他如函数调用运算符()分类运算符3一、算术运算符和算术表达式基本算术运算符+-*/%说明例:5/3=1-5/3=-1模运算符或求余
5、运算符算术表达式用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子。优先级和结合性先乘除、后加减,有括号先算括号。自左至右常量、变量、函数等说明如果一个运算符两侧的数据类型不同,先自动进行类型转换,使二者具有同一类型,然后进行运算。两个整数相除的结果为整数,舍去小数部分。当商为负数时,多采用“向零取整”的方法。求余运算的两侧均应为整数例:5%3=2例:a*b/c-1.5+’a’4举例:已知三角形的边长a、b、c,求三角形周长的一半(数学公式为s=-(a+b+c))。#includevoidmain(){floata,b,c,s;a=3;b=4;c=5
6、;s=1/2*(a+b+c);printf("s=%8.2f",s);}s=0.00程序运行结果:?s=6.00程序运行结果:改为:1.0/2(1/2.0)或(float)1/2(1/(float)2)125二、赋值运算符和赋值表达式赋值运算符简单赋值运算符:=复合赋值运算符:+=,-=,*=,/=,%=……简单赋值运算符的一般形式为:变量=表达式它的作用是将一个表达式的值赋给一个变量。复合赋值运算的一般格式为:变量双目运算符=表达式└──┬──┘复合赋值运算符它等价于:变量=变量双目运算符(表达式)。只有当表达式简化为一个变量或一个常数时,两边的括号可以省略。6例1floata;intb;
7、a=1.2;b=a*3;?bb=3例2a+=3;x*=y+8a=a+3;x=x*(y+8)例3a=b=5;a=7+(b=8)?a,ba=5;b=5a=15;b=8自右而左的结合性赋值表达式格式:<变量><赋值运算符><表达式>赋值表达式的值:被赋变量的值类型转换转换条件:当赋值运算符两侧的数据类型不一致时转换原则:转换为被赋值变量的类型。具体见P54。7两种格式:运算符前置:++i--i运算符后置:i++i--作用:(1)自增运算符(++)使单个变量的值增1;(2)自减运算符(--)使单个变量的值减1。i=i+1i=i-1两种格式的区别:(1)运算符前置,则遵守前置规则:在使用i之前,使i的
8、值加(减)1)(2)运算符后置,则遵守后置规则:在使用i之后,使i的值加(减)1)两种格式的共同点:运算符++,不论前置还是后置,都使变量的值增1;运算符--,不论前置还是后置,都使变量的值减1。三、自增(++)、自减(--)运算8例如:下面的程序使用了++和--运算符。#includeintmain(){inti,j;i=2;j=2;++i;/*表达式++i加上分号后,就构成了一条合法的C语句*/i++;/*这种语句称为表达式语句*/--j;j--;printf("i=%d,j=%d",i,j);return0;}请大家写出该程序的每条语句执行后,变量i和j的值。9在
9、赋值语句中右侧的表达式中使用了自增运算符后:(自减运算同理)k=++i;和k=i++;在赋值语句中右侧的表达式中使用了++运算符,此时将执行两个操作:(1)将i的值赋给k;(2)i的值增1。k=++i;因为++运算符在变量i的前面,即++前置,则按照前置规则:i先加1,后使用(即先给i的值加1,后将i的值赋给k)k=i++;因为++运算符在变量i的前面,即++前置,则按照后置规则:i先加1,后使用(即先给i的值加1,后将i的值赋给k)10程序举例#includeintmain(){inti,j,k;i=2;j=2;++i;/*表达式语句*/k=++i;/*赋值语句*/k=
10、i++;/*++运算符后置,则遵守后置规则:先使用i赋值,后给i加1*/k=--j;/*前置运算*/k=j--;/*后置运算*/printf("i=%d,j=%d,k=%d",i,j,k);printf("i=%d,j=%d,k=%d",i,j,--k);/*按照前置规则处理--k*/return0;}请大家写出该程序的每条语句执行后,变量i,j,k的值。(i,j,k)=(3,2,不定),(4,2,4