C语言基本运算符与表达式ppt课件_第1页
C语言基本运算符与表达式ppt课件_第2页
C语言基本运算符与表达式ppt课件_第3页
C语言基本运算符与表达式ppt课件_第4页
C语言基本运算符与表达式ppt课件_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

.,1,基本运算符和表达式,表达式算术运算符和表达式赋值运算符不同数据类型间的转换关系运算符和表达式逻辑运算符和表达式自增和自减运算符逗号运算符和表达式条件运算符和表达式求字节运算符,.,2,学习重点,熟悉几种常用的运算符掌握运算符的运算规则3.掌握表达式求值,.,3,3.1表达式,一、表达式的概念表达式是由运算符连接常量、变量、函数所组成的式子。每个表达式都有一个值和类型。,.,4,二、运算符的种类:,据运算对象的个数分有三种:单目、双目、三目,.,5,.,6,学习运算符应注意:运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向结果的类型,.,7,一、算术运算符:+-*/%结合方向:从左向右优先级:-*/%-+-说明:“-”可为单目运算符时,右结合性两整数相除,结果为整数%要求两侧均为整型数据,例5/2=-5/2.0=,例5%2=-5%2=1%10=5%1=5.5%2,例5/2=2-5/2.0=-2.5,例5%2=1-5%2=-11%10=15%1=05.5%2(),3.2算术运算符和表达式,.,8,例1:#include”stdio.h”main()printf(nn%d,%dn,20/7,-20/7);printf(%f,%fn,20.0/7,-20.0/7);,结果:2,-22.857143,-2.857143,例2:#include”stdio.h”main()printf(%dn,100%3);,结果:1,.,9,3.3赋值运算符一、简单赋值运算符:=格式:变量=表达式作用:将一个数据(常量或表达式)赋给一个变量,二、复合赋值运算符种类:+=-=*=/=%=,x*=y+8,x=x*(y+8),例a=3;d=func();c=d+2;,.,10,说明:结合方向:自右向左左侧必须是变量,不能是常量或表达式优先级:比算术低,例3=x-2*y;a+b=3;,例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2),/表达式值为5,a,b,c值为5,/b=5;a=5,/表达式值11,c=6,a=11,/表达式值10,a=10,b=4,c=6,/表达式值5,a=5,b=10,c=2,例:a=12;a+=a-=a*a;,/a=-264等价于a=a+(a=a-(a*a),例:inta=2;a%=4-1;a+=a*=a-=a*=3;,/a=0等价于a=a+(a=a*(a=a-(a=a*3),.,11,例3:#include”stdio.h”main()inta,b,c,d,x,y,z;a=100;b=45;c=-19;d=94;x=-2;y=5;z=28;a+=6;b-=x;c*=10;d/=x+y;z%=8;printf(n%6d%6d%6d%6d%6dn,a,b,c,d,z);,结果:10647-190314,.,12,3.4不同类型数据间的转换转换有两种:,隐式:计算机自动进行的转换,显式:强制性转换,一、隐式转换(4种)运算转换-不同类型数据混合运算时赋值转换-把一个值赋给与其类型不同的变量时输出转换-输出时转换成指定的输出格式函数调用转换-实参与形参类型不一致时转换,.,13,(1)运算转换:,不同类型数据运算时先自动转换成同一类型,数据类型的级别,.,14,转换规则:当运算符两端的数据类型不同时,按“向高看齐”的原则,对较低的类型提升。,10+a+i*f-d/l,例inti;floatd,f;longl;,.,15,(2)赋值转换:自动将“=”右边的类型转换为左边变量的类型。,实整,舍弃小数。例:inti;i=375.986;,i=375,intfloat,数值不变,但以浮点形式存到变量中。,例:floatf;f=36;,f=36.000000,.,16,字符整型,将字符的ASCII码值放到整型量的低八位中,高八位为0。,整型赋予字符型,只把低八位赋予字符变量。,例4:#include”stdio.h”main()inta,b=322,i;floatx,y=8.88;charc1=k,c2;a=y;x=b;i=c1;c2=b;printf(%d,%f,%d,%c,a,x,i,c2);,.,17,signedunsigned,原样照赋,例5#include”stdio.h”main()unsignedinta;intb=-1;a=b;printf(“%u”,a);,输出结果:65535,C,.,18,二、显式转换(强制转换)格式:(类型名)(表达式)例(int)(x+y)(int)x+y(float)(3/2)(int)3.6说明:强制转换得到所需类型的中间变量,原变量类型不变,例6#include”stdio.h”main()floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:x=3.600000,i=3,精度损失问题,.,19,例:,floatf;f=6/7;问:f=?,f=0.8571f=0.0,改为:f=6.0/7或f=6/7.0或f=(float)6/7,类型转换时,只赞成低高不赞成高低只赞成有符号数无符号数不赞成无符号数有符号数,.,20,3.5关系运算符和表达式运算符:=!=结合方向:自左向右优先级别:=-=!=与其它比:算术关系赋值,例ca+b/c(a+b)ab!=c/(ab)!=ca=bc/a=(bc),关系表达式的值:是逻辑值,1(真)0(假),例inta=3,b=2,c=1,d,f;ab(ab)=cb+cbf=abc,/表达式值1,/表达式值1,/表达式值0,/d=1,/f=0,.,21,注意:,例若a=0;b=0.5;x=0.3;则a78在C中是允许的,值为,0,例inti=1,j=7,a;a=i+(j%4!=0);则a=,2,例a0结果为A100结果为,1,0,.,22,例注意区分“=”与“=”inta=0,b=1;if(a=b)printf(“aequaltob”);elseprintf(“anotequaltob”);,.,23,例7:#include”stdio.h”main()intx,y,z;printf(“inputdatax,y:n”);scanf(“%d%d”,.,24,结果1:inputdatax,y:53回车xyxyx=yx!=yx=y53001110,结果2:-inputdatax,y:-5-3回车xyxyx=yx!=yx=y-5-3110010,结果1:inputdatax,y:44回车xyxyx=yx!=yx=y44010101,.,25,3.6逻辑运算符和表达式运算符:!b=5;!aaprintf(“inputdatax,y:n”);scanf(“%d%d”,.,30,结果1:inputdatax,y:128回车xy!xx|yxk=+j;j=3;k=j+;j=3;printf(“%d”,+j);j=3;printf(“%d”,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,.,33,说明:不能用于常量和表达式,如5+,(a+b)+结合方向:自右向左优先级:-+-*/%-+-,例-i+-(i+)i=3;printf(“%d”,-i+);/-3,例inta=5,b;b=a+;printf(“a=%d,b=%d”,a,b);,/a=6,b=5,例inta=5,b;b=+a;printf(“a=%d,b=%d”,a,b);,/a=6,b=6,.,34,例9:#include”stdio.h”main()intx,y,z;x=y=8;z=+x;printf(“n%3d%3d%3d”,y,z,x);x=y=8;z=x+;printf(“n%3d%3d%3d”,y,z,x);x=y=8;z=-x;printf(“n%3d%3d%3d”,y,z,x);x=y=8;z=x-;printf(“n%3d%3d%3d”,y,z,x);printf(“n”);,结果:899889877887,.,35,3.8逗号运算符和表达式形式:表达式1,表达式2,表达式n结合性:从左向右优先级:最低表达式值:等于表达式n的值用途:常用于循环for语句中,例a=3*5,a*4a=3*5,a*4,a+5例a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);,/a=15,表达式值60,/a=15,表达式值20,/1,2,3,/3,2,3,.,36,例10:#include”stdio.h”main()intx,y=7;floatz=4;x=(y=y+6,y/z);printf(x=%dn,x);,运行结果:x=3,.,37,3.9条件运算符与表达式e1?e2:e3(唯一的三目运算符)功能:e1为真,取e2值;e1为假,取e3值。(相当于条件语句,但不能取代一般if语句),结合方向:自右向左如ab?a:cd?c:dab?a:(cd?c:d),例求a+|b|printf(“a+|b|=%dn”,b0?a+b:a-b);,例(a=b)?Y:N(x%2=1)?1:0(x=0)?x:-x(c=ainti;i=sizeof(f);则i的值将为4。,.,39,例11:#include”std

温馨提示

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

评论

0/150

提交评论