书签 分享 收藏 举报 版权申诉 / 37
上传文档赚钱

类型第5部分-基本运算符与表达式课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4514280
  • 上传时间:2022-12-16
  • 格式:PPT
  • 页数:37
  • 大小:600.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第5部分-基本运算符与表达式课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    部分 基本 运算 表达式 课件
    资源描述:

    1、 学习重点学习重点1.熟悉几种常用的运算符熟悉几种常用的运算符2.掌握运算符的运算规则掌握运算符的运算规则3.掌握表达式求值掌握表达式求值 3.1 表达式表达式一、一、表达式的概念表达式的概念 表达式是由运算符连接常量、变量、函表达式是由运算符连接常量、变量、函数所组成的式子。数所组成的式子。每个表达式都有一个值每个表达式都有一个值和类型。和类型。二、二、运算符的种类:运算符的种类:据运算对象的个数分有三种:据运算对象的个数分有三种:单目、双目、三目单目、双目、三目C运运算算符符算术运算符:(算术运算符:(+-+-*/%+-/%+-)关系运算符:(关系运算符:(=!=!=)逻辑运算符:(!逻辑

    2、运算符:(!&|&|)位运算符位运算符 :(:(|&|&)赋值运算符:(赋值运算符:(=及其扩展)及其扩展)条件运算符:(条件运算符:(?:?:)逗号运算符:(逗号运算符:(,)指针运算符:(指针运算符:(*&)求字节数求字节数 :(:(sizeofsizeof)强制类型转换:(类型)强制类型转换:(类型)分量运算符:(分量运算符:(.-.-)下标运算符:(下标运算符:()其它其它 :(:(()-()-)学习运算符应注意:学习运算符应注意:运算符功能运算符功能与运算量关系与运算量关系要求运算量个数要求运算量个数要求运算量类型要求运算量类型运算符优先级别运算符优先级别结合方向结合方向结果的类型结

    3、果的类型一、算术运算符:一、算术运算符:+-*/%/%结合方向:从左向右结合方向:从左向右优先级:优先级:-*/%/%-+-+-说明:说明:“-”可为可为单目单目运算符时运算符时,右结合性右结合性两整数相除,结果为整数两整数相除,结果为整数%要求两侧均为整型数据要求两侧均为整型数据例例 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 =-1 1%10 =1 5%1 =0 5.5%2 ()3.2 算术运算符和表达式算术运算符和表达式例例1:#include”stdio.h”main()i

    4、nt a,b;a=20/7;b=-20/7;printf(nn%d,%dn,a,b);printf(%f,%fn,20.0/7,-20.0/7);结果:结果:2,-22.857143,-2.857143例例2:#include”stdio.h”main()int i;i=100%3;printf(%dn,i);结果:结果:13.33.3 赋值运算符赋值运算符一、简单赋值运算符:一、简单赋值运算符:=格式:格式:变量变量=表达式表达式 作用:将一个数据(常量或表达式)赋给一个变量作用:将一个数据(常量或表达式)赋给一个变量例例 a=3;a=3;d=func();d=func();c=d+2;c=

    5、d+2;说明说明:结合方向:结合方向:自右向左自右向左左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式优先级:比算术低优先级:比算术低3.4 不同类型数据间的转换不同类型数据间的转换转换有两种:转换有两种:隐式:计算机自动进行的转换隐式:计算机自动进行的转换显式:强制性转换显式:强制性转换一、隐式转换(一、隐式转换(4 4种)种)v运算转换运算转换-不同类型数据混合运算时不同类型数据混合运算时v赋值转换赋值转换-把一个值赋给与其类型不同的变量时把一个值赋给与其类型不同的变量时v输出转换输出转换-输出时转换成指定的输出格式输出时转换成指定的输出格式v函数调用转换函数调用转换-

    6、实参与形参类型不一致时转换实参与形参类型不一致时转换(1)运算转换运算转换:不同类型数据运算时先不同类型数据运算时先自动自动转换成同一类型转换成同一类型数据类型的级别数据类型的级别floatlongintbitchar低低高高unsignedsigned转换规则:转换规则:当运算符两端的数据类型不同时,按当运算符两端的数据类型不同时,按“向高看向高看齐齐”的原则,对较低的类型提升。的原则,对较低的类型提升。10+a +i*f -d/l例例 int i;float d,f;long l;intintfloatfloatfloatfloatfloatfloat(2)赋值转换:)赋值转换:自动将自动

    7、将“=”右边的类型转换右边的类型转换为左边变量的类型。为左边变量的类型。实实整,舍弃小数。整,舍弃小数。例:例:int i;i=375.986;i=375intfloat,数值不变,但以浮点形式存到变量中数值不变,但以浮点形式存到变量中。例:例:float f;f=36;f=36.000000 字符字符 整型,将字符的整型,将字符的ASCII码值放到整型码值放到整型量的低八位中,高八位为量的低八位中,高八位为0。整型赋予字符型,只把低八位赋予字符变量。整型赋予字符型,只把低八位赋予字符变量。char c;c=322;例:例:int i;i=A;i=65 c=66 signedunsigned,

    8、原样照赋原样照赋例例3#include”stdio.h”main()unsigned int a;int b=-1;a=b;printf(“%u”,a);输出结果:输出结果:65535C二、显式转换(强制转换)二、显式转换(强制转换)格式:格式:(类型名类型名)(表达式)表达式)例例 (int)(x+y)(int)(x+y)(int)x+y (int)x+y (float)(3/2)(float)(3/2)(int)3.6 (int)3.6 说明:强制转换得到所需类型的中间变量,说明:强制转换得到所需类型的中间变量,原变量类型不变原变量类型不变 例例4#include”stdio.h”main

    9、()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:结果:x=3.600000,i=3精度损失问题精度损失问题较高类型向较低类型转换时可能发生较高类型向较低类型转换时可能发生v例:例:float f;f=6/7;问:问:f=?f=0.8571 f=0.0 改为:改为:f=6.0/7 或或 f=6/7.0或或 f=(float)6/7v类型转换时,只赞成低类型转换时,只赞成低高高 不赞成高不赞成高低低 只赞成有符号数只赞成有符号数无符号数无符号数 不赞成无符号数不赞成无符号数有符号数有符号数3.5 关系运算符和表达式关系运算符和表达

    10、式l运算符:运算符:=!=l结合方向:自左向右结合方向:自左向右l优先级别:优先级别:=-=!=l与其它比:算术与其它比:算术关系关系赋值赋值例例 ca+b /c(a+b)ca+b /c(a+b)ab!=c /(ab)!=c ab!=c /(ab)!=c a=bc /a=(bc)a=bc /a=(bc /a=(bc)a=bc /a=(bc)l关系表达式的值:是逻辑值,关系表达式的值:是逻辑值,1(真真)0(假假)例例 int a=3,b=2,c=1,d,f;ab (ab)=c b+cb f=abc/表达式值表达式值1/表达式值表达式值1/表达式值表达式值0/d=1/f=0注意:注意:例例 若若

    11、a=0;b=0.5;x=0.3;则则 a=x278在在C中是允许的,中是允许的,值为值为0例例 int i=1,j=7,a;a=i+(j%4!=0);则则a=2例例 a0 结果为结果为 A100 结果为结果为10例例 注意区分注意区分“=”与与“=”int a=0,b=1;if(a=b)printf(“a equal to b”);else printf(“a not equal to b”);例例5:#include”stdio.h”main()int x,y,z;printf(“input data x,y:n”);scanf(“%d%d”,&x,&y);printf(“n x y xy

    12、xy x=y x!=y x=y”);printf(“n%5d%5d”,x,y);z=xy;printf(“%5d”,z);z=xy;printf(“%5d”,z);z=x=y;printf(“%5d”,z);z=x!=y;printf(“%5d”,z);z=x=y;printf(“%5d”,z);printf(“n”);结果结果1:input data x,y:5 3 回车回车 x y xy xy x=y x!=y x=y 5 3 0 0 1 1 1 0结果结果2:-input data x,y:-5 -3 回车回车 x y xy xy x=y x!=y x=y -5 -3 1 1 0 0 1

    13、 0结果结果1:input data x,y:4 4 回车回车 x y xy xy x=y x!=y x=y 4 4 0 1 0 1 0 1ab!a!ba&ba|b真真假假真真假假假假假假真真真真3.6 逻辑运算符和表达式逻辑运算符和表达式l运算符:运算符:!&|l逻辑运算真值表逻辑运算真值表 运算量运算量:0 0(假)(假)非非0 0(真)(真)表达式值表达式值:0 0(假)(假)1 1(真)(真)真假假假假假真真假假真真真假真真例例 a=x&xb&xy a=b|x=y !a|abl优先级:优先级:l结合方向:结合方向:!:右右左左&:左左右右|:左左右右/(a=x)&(xb)&(xy)/(

    14、a=b)|(x=y)/(!a)|(ab)l与其它比:单目与其它比:单目算术算术关系关系逻辑逻辑赋值赋值!&|例例 a=4;b=5;!a a&b a|b !a|b 4&0|2 53&2|8b)&(n=cd)求求 m=?n=?/m=0,n=1例例 a&b&c /只在只在a为真时,才判别为真时,才判别b的值;的值;只在只在a、b都为真时,才判别都为真时,才判别 c的值的值v或表达式遇真结束或表达式遇真结束例例 a|b|c /只在只在a为假时,才判别为假时,才判别b的值;的值;只在只在a、b都为假时,才判别都为假时,才判别 c的值的值例例6:#include”stdio.h”main()int x,y

    15、,z;printf(“input data x,y:n”);scanf(“%d%d”,&x,&y);printf(“n x y !x x|y x&y”);printf(“n%5d%5d”,x,y);z=!x;printf(“%8d”,z);z=x|y;printf(“%8d”,z);z=x&y;printf(“%8d”,z);printf(“n”);结果结果1:input data x,y:12 8 回车回车 x y !x x|y x&y 12 8 0 1 1 结果结果2:input data x,y:9 -3 回车回车 x y !x x|y x&y 9 -3 0 1 1 结果结果3:inpu

    16、t data x,y:0 81 回车回车 x y !x x|y x&y 0 8 1 1 0 结果结果4:input data x,y:-23 0 回车回车 x y !x x|y x&y -23 0 0 1 10 结果结果5:input data x,y:0 0 回车回车 x y !x x|y x&y 0 0 1 0 0 3.7 自增、自减运算符:自增、自减运算符:+-l作用:使变量值加作用:使变量值加1 1或减或减1 1 i+或或+i i=i+1 i-或或-i i=i-1l种类:种类:前缀:前缀:+i,-i 先增先增1 1(减减1 1),再使用),再使用i i值值后缀:后缀:i+,i-先使用先

    17、使用i i值值,再增再增1 1(减减1 1)例例 j=3;k=+j;j=3;k=+j;j=3;k=j+;j=3;k=j+;j=3;printf(j=3;printf(“%d%d”,+j);,+j);j=3;printf(j=3;printf(“%d%d”,j+);,j+);a=3;b=5;c=(+a)a=3;b=5;c=(+a)*b;b;a=3;b=5;c=(a+)a=3;b=5;c=(a+)*b;b;/k=4,j=4/k=4,j=4/k=3,j=4/k=3,j=4/4/4/3/3/c=20,a=4/c=20,a=4/c=15,a=4/c=15,a=4l说明:说明:不能用于常量和表达式不能用于

    18、常量和表达式,如如5+5+,(a+b)+a+b)+结合方向:结合方向:自右向左自右向左优先级:优先级:-+-+-*/%-+-/%-+-例例-i+i+-(i+)-(i+)i=3;printf(i=3;printf(“%d%d”,-i+);,-i+);/-3/-3 例例 int a=5,b;b=a+;printf(“a=%d,b=%d”,a,b);/a=6,b=5例例 int a=5,b;b=+a;printf(“a=%d,b=%d”,a,b);/a=6,b=6例例7:#include”stdio.h”main()int x,y,z;x=y=8;z=+x;printf(“n%3d%3d%3d”,y

    19、,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”);结果:结果:8 9 9 8 8 9 8 7 7 8 8 7 3.8 逗号运算符和表达式逗号运算符和表达式 形式:形式:表达式表达式1,表达式表达式2,表达式表达式n 结合性结合性:从左向右从左向右 优先级优先级:最低最低 表达式值:等于表达式表达式值:等于表达式n的值的值 用途:常用于循环用途:常用于循环for语句中语句中例例 a=3

    20、*5,a*4 a=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例例8:#include”stdio.h”main()int x,y=7;float z=4;x=(y=y+6,y/z);printf(x=%dn,x);运行结果:运行结果:x=33.9 条件运算符与表达式条件运算符与表达式v e1?e2 :e3 (唯一的三目运算符)唯一的三目运算符)v功能:功能:e1为真,取为真,取e2值;值

    21、;e1为假,取为假,取e3值。值。(相当于条件语句,但不能取代一般(相当于条件语句,但不能取代一般if语句)语句)结合方向:结合方向:自右向左自右向左 如如 ab?a:cd?c:d ab?a:(cd?c:d)例例 if(ab)printf(“%d”,a);else printf(“%d”,b);printf(“%d”,ab?a:b);例例 求求 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=a&c=z)?c-a+A:c 3.10 3.10 求字节运算符求字节运算符 sizeof l 单目运算

    22、符单目运算符l 作用:返回变量或类型的字节长度。作用:返回变量或类型的字节长度。l 一般形式为:一般形式为:如如:sizeof(double)为为8 sizeof(int)为为2也可以求已定义的变量也可以求已定义的变量,例如例如:float f;int i;i=sizeof(f);则则i i的值将为的值将为4 4。例例9:#include main()int a,b,c,d;a=sizeof(char);b=sizeof(int);c=sizeof(long);d=sizeof(float);printf(“n char:%5d byte,a);printf(“n int:%5d bytes,b);printf(“n long:%5d byte,c);printf(“n float:%5d byte,d);运行结果:运行结果:char 1 byteInt 2 byteslong 4 bytesfloat 4 bytes

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第5部分-基本运算符与表达式课件.ppt
    链接地址:https://www.163wenku.com/p-4514280.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库