欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > PPT文档下载  

    第02章数据类型、运算符和表达式.ppt

    • 资源ID:675483       资源大小:874.50KB        全文页数:59页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第02章数据类型、运算符和表达式.ppt

    目 录,第1章 C+概述第2章 数据类型、运算符和表达式第3章 简单的输入/输出第4章 C+的流程控制第5章 函数第6章 编译预处理第7章 数组第8章 结构体、共同体和枚举类型第9章 指针和引用第10章 类和对象第11章 类和对象的其他特性第12章 继承和派生第13章 多态性第14章 输入/输出流第15章 模板,第一部分 面向过程的程序设计,第二部分 面向对象的程序设计,第2章 数据类型、运算符与表达式,简单地说:程序=数据结构+算法,C+程序的构成:(1)数据描述(2)执行步骤(算法),例1.1一个简单的C+程序#include void main(void)int num,square;cout num;square=num*num;cout num的平方为:square n;,下面学习:程序的各种语法元素,2.1 保留字和标识符,2.1.1 保留字(Reserved Word or Keyword)C+语言自身使用的,已有特殊含义和用途的英文单词称为保留字或关键字。如例1.1中的类型说明符 int,用于定义整型变量。,用户不能将其作为自己的变量名或函数名使用。,2.1.2 标识符,标识符(identifier):有效字符序列,用来标识用户自己定义的 变量名、符号常量名、函数名、数组名、类型名、文件名等,命名规则:只能由字母、数字和下划线三种字符组 成,且第一个字符必须为字母或下划线 最大长度为 1 247 个字符。,如:MyName average GetDay StudentName _above Lotus_1_2_3,非法标识符如:M.D.John$123 3Dmax,合法标识符如:(有时用匈牙利命名法),例:#include void main(void)int a,b,sum;/*定义变量*/a=123;b=456;sum=a+b;coutsum is sumn;,2.2 C+的基本数据类型,数据类型,基本类型,导出类型,整型实型字符型空类型(无值型),单精度型双精度型,数组类型指针类型结构体类型共用体类型枚举类型,不论是变量还是常数,在计算机内部都要按照某种形式存放,存放形式由数据类型决定。,以上基本类型数据占内存字节不相同,因此数值范围也不同,见表 2-1 及表 2-2,对基本类型,可以加修饰,如:,int:signed int unsigned int short int:signed short int unsigned short intlong int:signed long int unsigned long int,再加修饰,如:,注意:int 型变量与 unsigned int 型变量的区别,2.3 常量和变量2.3.1 常量,常量:在程序运行过程中,其值不能被改变的量,1.整型常量,十进制整数 123,-456,八进制整数 0123,-011,十六进制整数 0 x123,-0 xAB,长整型与无符号型常数 12L,0234L,-0 xABL 12U,0234U,0 xABU,2.实型常量(在内存中以浮点形式存放),(均为十进制,无数制区分),小数形式:必须有小数点 1.65 1.123,指数形式(也称为科学表示法):如 123000.0 可写为 1.23e5 0.00368 可写为 3.68E-3 e 或 E前必须有数字,1000写为 1e3 不能写为 e3,3.字符型常量,用于表示ASCII字符,见附录A。,在内存中存放对应的ASCII码值,如 a 的ASCII码为 97,则在内存中用一个字节存放:,在源程序中最基本的表示形式为:单引号括起来的一个字符,如:a A?,0 1 1 0 0 0 0 1,对于不可打印的字符,可以用转义字符形式表示。,注意:n 与 n 的区别!,转义字符:以反斜杠“”引导的特殊形式的 非显示字符或表示特定意义的字符常量,n t b ddd xhh 见表 2-3,注意:字母 A 的 ASCII 码是(65)10=(101)8=(41)16在程序中表示字母A,可以有三种方法:A 101 x41,n 表示一个控制字符,n 表示一个字母。,4.字符串常量-用双引号括起来的字符序列(在内存中存放字符序列的ASCII码值,最后加一个结尾标志),如:How do you do.CHINA a,字符串结束标志符是:0,注意:a 和 a 是不同的。,符号常量:用标识符代表一个常量,必须先定义后使用。,例:定义标识符常量#define PRICE 30#define PI 3.1425926#define S Chinaconst f loat pi=3.14,2.3.2 符号常量,例2.1 符号常量的使用#include#define PI 3.1425926void main(void)double angle,radian;cin angle;radian=angle*PI/180;/角度弧度cout radian n;,好处:(1)提高程序的可读性。(2)程序中使用多处,一改全改。,2.3.3 变量,变量:其值可以改变的量。,变量名:一个变量的符号名,由标识符构成。一个变量占据内存一定的存储单元,在存储单元中存放该变量的值。,int a,b;/定义2个整型变量a,bunsigned u;/定义1个无符号整型变量ufloat f;/定义1个单精度实型变量double d;/定义1个双精度实型变量char c1,c2,c3;/定义3个字符型变量c1,c2,c3,1.定义变量,注意:,(1)区别大小写:如 sum 与 Sum 为不同的变量名。,(2)先定义后使用:分配单元、确定类型、语法检查,(3)在一个程序单元中不能重复定义。,(4)关键字(保留字)不能作为标识符。,(5)最大长度随不同的 C+语言系统而定:VC+识别前 247 个字符,超过无效。,(6)按义取名。,2变量赋初值给变量赋初值的方法有两种:(1)变量定义后,用赋值语句赋初值。例如:int a,b;a=12;b=24;char c1,c2;c1=A;c2=B;,(2)在定义变量的同时,直接赋初值(称为变量的初始化)。例如:int a=12,b=-24;char c1=A,c2=B;,2.4 基本运算符和表达式,2.4.1 C+运算符及表达式简介,完成对常量、变量作运算的符号称为运算符。把参与运算的对象称为操作数。操作数可以是常量和变量等。,各种运算符见表 2-4,一元运算符、二元运算符、三元运算符,2.4.2 算术运算符和算术表达式,基本算术运算符:,+-*/%,/整数运算时为整除,结果为整数。,%(模运算或称求余运算)必须为整型数据。例:7/3 结果?7.0/3 结果?7%3 结果?,22.3333331,由运算符和操作数构成表达式:如:a+b a*(c+d)a*c+d,2.4.3 运算优先级和结合性,优先级:,对于同一表达式中出现多个运算符,先算 哪一个。,结合性:,在两种运算优先级相同时,“自左向右”还是“自右向左”运算称为结合性。,如:算术运算符的优先级与结合性,优先级:,+-较低*/%较高,结合性:,自左向右,例:表达式:6/3*2“自左向右”或“自右向左”运算结果不同,2.4.4 关系运算符和关系表达式,“关系运算”实际上就是“比较运算”,关系运算符及其优先次序,=!=,小于小于等于大于大于等于恒等于不等于,关系运算符及其优先级说明,a=bc 等效于 a=(bc),ca+b 等效于 c(a+b),算术关系(和=)关系(=和!=),关系表达式,1.用关系运算符连接两个表达式,int a=1,b=2,c=3;则表达式 ab 的值为 0则表达式 ba+c 的值为 1,2.关系表达式的值(运算结果)是逻辑值:“真”或“假”1 表示真 0 表示假,关系运算符的结合性:自左向右,2.4.5 逻辑运算符和逻辑表达式,逻辑运算符及其优先级:,C+语言提供三种逻辑运算符:&逻辑“与”|逻辑“或”!逻辑“非”,单目运算符,即只有一个操作数。如!a,逻辑运算的意义:,a&b,当 a、b 均为真时,表达式的值才为真,a|b,当 a、b 均为假时,表达式的值才为假,!a,当 a 为假,!a 为真;反之,当 a 为真时,!a 的值为假,逻辑运算符的优先次序:,!(非)算术 关系&|,逻辑表达式:用逻辑运算符将表达式连结起来,(2)C+编译系统在给出逻辑运算结果时,以数值 1 代表“真”以数值 0 代表“假”,(1)运算时,在判断一个量是否为“真”时,以非0 代表“真”以0 代表“假”,例如:已知 a=4则!a 的值是 0 已知 a=0,b=5则 a&b 的值是 0则 a|b 的值是 1则!a&b 的值是 1,注意:,注意:在C+程序中,欲表示数学关系 0 x10,C+的逻辑表达式必须写成 0=x&x=10,而不能写成 0=x=10。,为什么?,2.4.6 位运算符和位运算表达式,位运算是对整型数据的运算(可以操作到位),符号位参与运算,主要用于系统程序设计。,位运算符共有6 种:它们是:按位与(&)按位或(|)按位异或()按位取反()左移(),举例:按位“与”例如:已知:char a=3,b=2,c;求:c=a,此时,可将a、b、c看成是一个字节长度的整型数。,其它位运算,自学。,2.4.7 自增、自减运算符和表达式,使变量的值加 1 或减 1 的运算,如:+i,-i,在使用 i 之前加或减 1,i+,i-,在使用 i 之后加或减 1,int i=3,j;j=+i;,运算后 i=?,j=?,int i=3,j;j=i+;,运算后 i=?,j=?,注意:,只能用于变量,不能用于常量和表达式,如:3+;(a+b)+;错误,i=4,j=4,i=4,j=3,2.4.8 赋值运算符和赋值表达式,1赋值运算符“=”是赋值运算符,赋值表达式格式:,求解过程:求出 的值,赋给,赋值表达式的值:为 的值,如:a=b+c,还可以是另一个赋值表达式,,如:a=b=5 a=5+(c=6)a=(b=4)+(c=6),如果 a 初值为 2,表达式结果?,结果为 7,如:a=3,3是最简单的表达式,i=i+1,它不同于“等于号”,注意优先级 与结合性,b=c=d=a+5,自右向左,表达式结果分别为:?5 11 10,2.复合赋值运算符,复合赋值运算符,x*=y+8,等价于 x=x*(y+8),x%=3,等价于 x=x%3,x/=9,简写为:a+=3,a=a+3,简写为:a-=b,a=a-b,同理:,赋值运算符 以及 复合赋值运算符的运算优先级比算术运算符优先级低,运算结合性为自右向左。,等价于 x=x/9,例:a+=a-=a*a,如果 a 初值为 2,表达式结果?a+=a-=a*a,结果 a 的值为-4表达式的结果也为-4,2.4.9 逗号运算符和逗号表达式,逗号运算符:,逗号表达式:,.,如:a=3*5,a*4,a+5,逗号运算符优先级最低,结合性:自左向右,求解过程:依次计算、.的值。,逗号表达式的值:为 的值,运算结束后:a 的值为 15 整个表达式的值为 20,a=3*5,a*4,x=(a=3,6*3),赋值表达式,x=a=3,6*3,逗号表达式,例:如下表达式,运算结束后 a=?x=?表达式=?,a=15,表达式=60,a=3,x=18,表达式=18,a=3,x=3,表达式=18,逗号表达式,2.4.10 sizeof()运算符和表达式,例 int i;double x;sizeof(int)sizeof(i),sizeof(double)sizeof(x),格式:sizeof(类型标识/变量名)功能:求某类型变量所占字节数,例:求&,2.4.11 逻辑表达式运算优化时的副作用,从左向右扫描,计算,当 为真时,继续计算 当 为假时,即能确定整个表达式的值为假,则停止计算,例:求|,从左向右扫描,计算,当 为假时,继续计算 当 为真时,即能确定整个表达式的值为真,则停止计算,课堂练习int x,y,z,w;输出结果?x=y=z=1;w=+x|+y,输出:2 1 1 1,2.5 类型转换2.5.1 赋值时的自动类型转换,如果赋值运算符两侧的类型不一致,则遵循以下几条原则进行类型转换后赋值。,1.整型变量实型数据,舍弃小数(无四舍五入)。,int i=3.96;i 为 3,2.实型变量整型数据,数值不变,有效数位增加。,float f=23;f 为 23.0,double d=23;d 为 23.0,3整型数据之间相互赋值,整型数据类型有:signed char unsigned charsigned short unsigned shortsigned int unsigned intsigned long unsigned long,各种类型的整型数占用的字节数是不同的,其二进制位数有长有短。它们之间相互赋值,其实就是它们内存数据之间的赋值,分两种情况。,下面以 int 型数据与 char 型数据之间的赋值进行说明:,将 int 型变量赋给字符型变量时(长短)方法:截取低位赋值,例:signed char c1=250;,c1真值为-6,将字符型变量赋给 int 型变量时(短长),又分成两种情况:,有符号的字符型数据整型变量 需符号位扩展,例:char c1=15;int i;i=c1;,扩展正号,结果i 的真值为 15,char c1=250;int i;i=c1;,扩展负号,结果 i 的真值为-6,无符号的字符型数据整型变量 前面补 0 unsigned char c1=250;int i;i=c1;,前面补0,结果 i 的真值为 250,2.5.2 各种类型运算量混合运算时的自动类型转换,C 语言的数值型数据(常量变量)包括:,整型,int,short int,long int,unsigned int,unsigned short,unsigned long,实型,float,double,字符型,char,unsigned char,各种数据类型,它们的常量和变量之间可以混合运算。两个量运算时,在计算机内部首先将它们转换成相同数据类型的量,然后进行运算。虽然这种转换是C+内部自动完成的,但是若编程者知道了转换机理,对掌握及灵活运用C+表达式是有帮助的。转换原则如图2-3所示:,int i;float f;double d;10+a+i*f-d/i,int,double,double,double,double,例:,2.5.3 强制类型转换,形式:类型名(表达式)或:(类型名)表达式,例:int i,a;float x,y;double z;a=(int)(x+y);或 a=int(x+y);z=(double)a;或 z=double(a);a=(int)z%i;或 a=int(z)%i;,注意:1.强制转换的对象:表达式。2.强制转换并不将变量本身类型转变。,小结:类型转换有两种:(1)自动转换(赋值时,混合运算时)(2)强制转换,课堂练习:,求下面算术表达式的值:(1)已知 x=2.5,a=7,y=4.7 求 x+a%3*(int)(x+y)%2/4 的值(2)已知 a=2,b=3,x=3.5,y=2.5 求 float(a+b)/2+int(x)%int(y)的值,2.53.5,第 2 章 结束,

    注意事项

    本文(第02章数据类型、运算符和表达式.ppt)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开