欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第3章数据类型运算符与表达式jqj.ppt

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

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

    第3章数据类型运算符与表达式jqj.ppt

    1,第 3 章,数据类型、运算符与表达式,2,3.1 C语言的数据类型,3,1.什么是数据类型,数据类型指数据在加工计算中的特征,是数据的内在表现形式。,例如:两个人的年龄和工资都是数值型,可以相加减。两人的姓名是字符型,不能相加减。,4,2.C语言的数据类型,5,说明:,整型和实型合称为数值型。,只能取确定的几个数据值中的某一个称为 枚举型。,数值型、字符型、枚举型合称为基本类型。,由若干个相关的基本数据类型组合在一起构 成的复杂数据类型称为构造类型。,6,用来表示内存地址的类型称为指针型。,没有具体数据值的类型称为空类型。,某种类型的数据在内存中所占的字节数称为 该数据的“数据长度”。,7,在程序中,对所用到的数据均须指定其数据类型。数据有常量与变量之分,它们分别属于以上这些类型。,例如:整型数据包括整型常量和整型变量,8,3.2 常量与变量,9,1.常量和符号常量,常量又称常数,是在程序运行过程中其值 不可改变的数据。,C的常量有:整型常量 实型常量 字符常量 字符串常量,10,例如:456 为整型常量 1.23456e2 为实型常量 A 为字符常量“a1b2c3”为字符串常量,常量的类型不需要事先定义和说明。常量的类型由书写方法自动默认。,11,常量又分为直接常量和符号常量。,直接常量:从其字面形式即可判别。,符号常量:用一个标识符代表一个常量。,12,#define PRICE 30#include void main()int num,total;num=10;total=num*PRICE;printf(“total=%dn”,total);,例3.1 符号常量的使用,运行结果:total=300,13,说明:,#define命令行定义PRICE代表常量30,此时PRICE被称为符号常量。,符号常量名用大写表示。定义符号常量名应考虑“见名知意”。,14,使用符号常量的好处:,含义清晰:从PRICE就可知道它代表价格。,一改全改:若价格调整为35,只需改变定义行:#define PRICE 35不需在程序中多处修改。,15,2.变量,变量代表内存中具有特定属性的一个存储单元,变量用来存放数据,也就是变量的值。在程序运行期间,这些值是可变的。,变量都有一个名字,叫做变量名,以便在程序 中被引用。,16,变量名和变量值是两个不同的概念,17,变量名的作用实际上是以一个名字对应一个 地址。,程序编译连接时由编译系统给每一个变量名 分配对应的内存地址。,从变量中取值,实际上是通过变量名找到相 应的内存地址,从该存储单元中读取数据。,18,标识符:对变量、符号常量、函数名、数组名 类型名等数据对象命名的有效字符序列。,标识符的命名规则:由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。,编译系统将大写字符和小写字符认为是两个 不同的字符。标识符的长度一般不超过8个字符。选择标识符应“见名知意”。,19,例如:不合法的标识符:M.D.John¥123#33 3D64 ab,例如:合法的标识符:sum average _total Class day month Student_name lotus_1_2_3 BASIC li_ming,20,变量必须先定义,后使用。凡未被事先定 义的,系统不把它认作变量名。,每一个变量被指定为一个确定类型,编译 时就能为其分配相应的存储单元。,例如:int a,b,例如:int a,b 编译时为a,b各分配2个字节,并按整数方式存储数据。,21,指定每一变量属于一个类型,便于在编译时检查程序中对该变量进行的运算是否合法。,例如:整型变量a和b,可以进行求余运算:a%b 若将a和b指定为实型变量,则不允 许进行求余运算,编译时提示出错 信息。,22,3.3 整型数据,23,十进制整数:由数字09组成的数字串,多位数 时左边第一个数字不能为0。例如:38-500+39是合法的,1.整型常量的表示方法,整型常量即整常数。整常数可用以下3种形式表示:,24,八进制整数:由数字07组成的数字串,第一 个数字必须为0(前导零),它 是八进制数的标志。例如:0137 027+013024 是合法的 0128是非法的,25,十六进制整数:由数字09和字母af(或)组成的符号串,符 号串必须以 0 x或0X(十六进 制的前缀)开头。例如:0 x13a0 xc320 xff0 xb8000 xdc 是合法的 013ax13a13a是非法的,26,2.整型变量,整型数据在内存中的存放形式:,如果定义了一个整型变量 i int i;i=10;则Turbo C 2.0为一个整型变量在内存中分配 2 个字节的存储单元。数据在内存中实际以二进制形式存放。而十进制整数10的二进制形式为1010。,27,则十进制整数10在内存中存放形式图:,28,整型变量的分类,整型变量的基本类型符为 int,根据数值范围又可分为以下3类整型变量:基本整型 int一个 取值范围是:-3276832767短整型 short int 或 short长整型 long int 或 long,29,在存放有符号整数的存储单元中,左边第1位是符号位。该位为0,表示数值为正;该位为1,表示数值为负。而实际应用中,有些数据总是正数(例如序号、年龄、库存量等)。为了充分利用内存,可将原来存储符号位的左边第1位也用来存储数据,扩大了数据的取值范围。为此,根据需要可将变量定义为“无符号”类型。,30,因此,共有6种整数类型:有符号的基本整型 signed int无符号的基本整型 unsigned int有符号的短整型 signed short int 无符号的短整型 unsigned short int 有符号的长整型 signed long int 无符号的长整型 unsigned long int,31,1个无符号型整型变量中可存放的正数的范围比一般整型变量中正数的范围扩大1倍。,如果是有符号的,则存储单元中最高位是符号 位(0为正,1为负),如果是无符号的,则存储单元中全部二进位用 来存放数据本身,而不包括符号位。,32,0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,例如:int a;则变量a的取值范围:-32768 32767 unsigned int b;则变量b的取值范围:0 65535,有符号整型变量a 的最大值为32767,符号位,有符号整型变量 a=32767,无符号整型变量b的最大值为65535,代表数据第1位,无符号整型变量 b=65535,33,P43 表3-1 给出用Turbo C/Turbo C+时整数类型的有关数据,34,整型变量的定义,C程序中所有用到的变量均须在程序中定义。变量的定义一般放在一个函数的开头的声明部分,例如:int a,b;unsigned short c,d;long c,f;,35,#include void main()int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn”,c,d);,例3.2 整型变量的定义与使用,运行结果:a+u=22,b+u=-14,36,3.整型常量的类型,整型变量有上述类型,整型常量也有上述类型,一个整常量后面加一个字母u或U,认为是unsigned int型。,一个整常量后面加一个字母l或L,认为是long int型常量,37,3.4 浮点型数据,38,1.浮点型常量的表示方法,浮点数就是实数,浮点数有两种表示形式:,十进制小数形式:由数字和小数点组成(且 必须有小数点)例如:123.45 1.789 123.0 0.0,39,指数形式:例如:123e3 123E3 均代表 123*10的3次方 注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数 例如:e3 2.1e3.5.e3 e 均不合法,40,一个浮点数可有多种指数表示形式 例如:123.456可表示为:123.456e0 12.3456e1 1.23456e2 0.123456e3 0.0123456e4 等 其中1.23456e2为规范化指数形式,41,2.浮点型变量,浮点型数据在内存中的存放形式,一个浮点型数据一般在内存中占4个字节(32位),浮点型数据是按照指数形式存储的。系统把一个浮点型数据分成小数部分和指数部分,分别存放。,42,例如:实数3.14159在内存中的存放形式 数符 小数部分 指数+.314159*10的1次方 此图是十进制示意图。实际是用二进制数表示小数部分,用2的幂次表示指数部分。,+.314159 1,43,在4个字节中,用多少位表示小数部分,多少位表示指数部分,不同的C编译系统自定。,小数部分占的位数越多,数的有效位数就越多,精度就越高。,指数部分占的2位数越多,数值范围就越大。,44,P46 表3-2 Turbo C中浮点型数据分类表,浮点型变量的分类,单精度型 float双精度型 double长双精度型 long double,45,C编译系统将浮点型常量作为双精度处理 例如:float a a=2.45678*4523.65;先把2.45678和4523.65作为双精度 数,然后相乘,得到的乘积也是 一个双精度数。最后取其前7位赋 给浮点型变量 a,3.浮点型常量的类型,46,如果在数的后面加字母f或F,则编译系统按单精度数处理。例如:1.56f 654.87F,47,3.5 字符型数据,48,P48表3-3 转义字符表,1.字符常量,字符常量是用单撇号括起来的一个字符 例如:A a 1 0 9%,转义字符常量:C允许的一种特殊形式的字符常量。以字符“”开头的字符序列,称为转义字符,将“”后面的字符转换成另外的意义 例如:n 代表一个换行符,是一个控制字符,在屏幕上不能显示,49,例3.5 转义字符的使用#include void main()printf(ab ct derftgn);printf(htibbj kn);,50,2.字符变量,字符型变量用来存放字符常量,在一个字符变量中只能存放1个字符,而不是一个字符串。,字符变量的定义形式:char c1,c2;,字符变量的赋值:例如:c1=a;c2=b;,51,一个字符变量在内存中只占1个字节,52,例如:char c1,c2;c1=a;c2=b;a的ASCII代码为十进制数97 b的ASCII代码为十进制数98,3.字符数据在内存中的存储形式及使用方法,将一个字符常量放到一个字符变量中,实际上并 不是把该字符本身放到内存单元中去,而是将该 字符的ASCII代码放到存储单元中。,53,在内存中的存放形式如图:c1 c2 c1 c2,97,98,0 1 1 0 0 0 0 1,0 1 1 0 0 0 1 0,54,字符数据以ASCII码存储,所以它的存储形式 与整型类似,使得字符型数据与整型数据可以 通用。,字符数据既可以字符形式输出,也可以整数形 式输出。,可对字符数据进行算术运算,相当于对相应的 ASCII码进行算术运算,55,#include void main()char c1,c2;c1=97;c2=98;printf(%c%cn,c1,c2);printf(%d%dn,c1,c2);,例3.6 向字符变量赋予整数,56,#include void main()char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(%c%c,c1,c2);,例3.7 大小写字母的转换,运行结果:A B,57,不要将字符常量与字符串常量混淆 例如:a是字符常量“a”是字符串常量,4.字符串常量,一对双撇号括起来的字符序列称为字符串常量 例如:“How do you do”“$123.45”“CHINA”,58,字符 0 的ASCII码为0,是空操作字符,不引起任何控制动作,也不可显示。例如:“CHINA”,实际上在内存是占 6个字符:,C规定:在每一个字符串的结尾自动加一个 字符串结束标志 0,以便系统据此判断字符 串是否结束。,59,如果要将一个字符串存放在变量中以便保存,必须使用字符数组,在第七章介绍,60,3.6 变量赋初值,61,允许在定义变量的同时给变量赋值,即初始化。,例如:int a=3;float f=3.56;char c=a,也可使被定义的变量一部分赋初值。,例如:int a,b,c=5;,62,如果对几个变量赋予同一个初值,应写成:int a=3,b=3,c=3;不能写成:int a=b=c=3,63,3.7 各类数值型数据间的 混合运算,64,数值型数据:整型、浮点型、字符型之间 可以混合运算,例如:10+a+1.5 8765.1234*b,在进行运算时,不同类型的数据要先转换 成同一类型,然后进行运算。,65,转换规则:P54 图3-10 横向:自右向左转换 纵向:由低向高转换,66,例如:int i;float f;double d;long e;则表达式:10+a+i*f-d/e运算顺序:从左至右,上述类型转换是系统自动进行的,67,3.8 各种运算符,68,运算符的用途是描述对数据的各种运算。例如:+-*/,运算符分为:单目运算符 双目运算符 三目运算符 例如:-5,+X,X+Y,E1?E2:E3,69,C中运算符的种类:算术运算符:+-*/%关系运算符:=|&赋值运算符=复合赋值运算符:+=-=*=/=%=条件运算符:?,:逗号运算符:,指针运算符:*&求字节运算符:size of 强制类型转换运算符:(类型)分量运算符:下标运算符:其他运算符:函数调用运算符(),70,单目运算符:-取负值,1.算术运算符,71,72,算术运算符优先级与结合性(1)单目运算符优于双目运算符(2)*/%同级,+-同级(3)*/%优于+-(4)同级单目运算符的结合性是自右向左(5)同级双目运算符的结合性是自左向右,73,2.关系运算符,74,两操作数类型可以不同,系统按一般算术转换规则自动转换成相同类型。,关系运算符比较两个操作数值的大小。,操作数可以为整数、字符、实数。,关系表达式的值为一个逻辑值。关系成立,值为“真”,关系不成立,值为“假”。,75,C中用任何非0值(一般为非0整数)表示逻辑 真,用整数0表示逻辑假。,C的逻辑运算中,以整数 1 代表逻辑真,以 整数 0 代表逻辑假。,76,表达式5278在数学中不允许,在C中是允许的。按自左向右的原则:52为1 17为0 08为0 整个表达式的值为0,字符比较按ASC码进行 b a 为 a A 为 a 0 为 0=0 为 1,77,关系运算符的优先级:(1)算术运算符优于关系运算符(2)所有关系运算符的优先级都同级(3)同级关系运算符的结合性自左向右,78,3.逻辑运算符,单目运算符:!逻辑非,79,逻辑运算符的优先级:(1)!优于 算术 优于 关系 优于&优于|(2)!和单目同级,其结合性自右向左(3)&的结合性自左向右(4)|的结合性自左向右,逻辑运算的结果不是 0 就是 1,不可能是其他 数值,80,逻辑运算符两侧的运算对象可以是0和1,也可以是0和非0的整数,也可以是字符型、实型、指针型等。系统最终以0和非0来判 断属于“真”或“假”。,例如:c&d 的值为1(因为c 和d 的ASCII值都不为0,按“真”处理,即1&1),81,逻辑运算规则:P93 表5-1 P94 表5-2,82,逻辑与(&)运算,当左操作数为0(假),整个 表达式的值已确定为假,则右操作数根本就不计算。,例如:int i=1,j=1,k;i1&k=i+j 整个表达式的值为(假)不再执行k=i+j,83,逻辑或|运算,当左操作数为非(真),整 个表达式的值已确定为真,则右操作数根本就 不计算。,例如:int i=1,j=1,k;i1|k=i+j 整个表达式的值为1(真)不再执行k=i+j,84,4.自增自减运算符,单目运算符:+前缀增1 如:+a-前缀减1 如:-a+后缀增1 如:a+-后缀减1 如:a-,+a:先使a的值加1,然后使用a-a:先使a的值减1,然后使用aa+:先使用a,然后a的值加1a-:先使用a,然后a的值减1,85,自增、自减运算符和负号运算符优先级 相同,其结合性自右至左。,自增、自减运算符的运算对象只能是整型 变量,不能是表达式或常量。,86,例如:设变量a的值为5,则+a+1 先对a加1,后作表达式运算-a+1 先对a减1,后作表达式运算 a+1 先作表达式运算,后对a加1 a-+1 先作表达式运算,后对a减1,例如:设变量a为2,则+a+1=4 结果a为3,表达式值为 1-a+1=3 结果a为1,表达式值为 0,87,例如:5+(x+y)+x 均为非法,88,5.赋值运算符,形式:变量=表达式(任何类型),赋值运算符优先级:(1)算术优于关系优于双目逻辑优于赋值 运算符(2)相同赋值运算符的结合性自右向左,89,例:设a为2,则 b=a&1 表达式结果为:1 c=a=!a 表达式结果为:0 c=b=a-表达式结果为:2,90,赋值的类型转换 如果赋值运算符两侧的类型不一致,但都 是数值型或字符型,赋值时要进行类型转 换,转换时以赋值号左边类型为基准。,(1)浮点型数据赋给整型变量时,舍去浮点 数的小数部分(2)将整型数据赋给单双精度变量时,数值 不变,但以浮点数存储(3)将double给float变量时,截取前面7位有 效数字。(4)字符型给整型,转换成整型。,91,6.复合赋值运算符,+=自反赋值加 a+=3 等价于 a=a+3-=自反赋值减 a-=3 等价于 a=a-3*=自反赋值乘 a*=3 等价于 a=a*3/=自反赋值除 a/=3 等价于 a=a/3%=自反赋值求余数 a%=3 等价于 a=a%3,92,优先级:1)算术优于关系优于双目逻辑优于复合赋值2)复合赋值运算与一般赋值运算同级3)同级赋值运算符的结合性自右向左,93,例题:#include main()int n1,n2,n3,n4,m1,m2,m3,m4;n1=n2=n3=n4=10;m1=m2=m3=m4=20;n1+=n2;n2-=n3;n3*=n4;n4/=2;m1+=m2-=m3*=m4/=2;printf(n1=%d,n2=%d,n3=%d,n4=%dn,n1,n2,n3,n4);printf(m1=%d,m2=%d,m3=%d,m4=%dn,m1,m2,m3,m4);,94,7.逗号运算符,双目运算符,,优先级:(1)任何运算符 优于 逗号运算符(2)逗号运算符的结合性自左向右,95,例如:设a,b为2,则 b=a+3,c=b+4 整个表达式值为 9 d=a-,e=d-,f=-e 整个表达式值为 1 b=(a+3,c=b+4)整个表达式值为 6 g=(h=1,i=2,j=3)整个表达式值为 3,96,8.条件运算符,三目运算符:如:e1?e2:e3 若e1为真,执行e2 若e1为假,执行e3,97,例:设a,b,c 均为 2,则(a=b)?c=1:0 结果为 1 d=a+1=3?b=a+2:a+3 结果为d=4 e=a!=a?b=1:a=a?b=0:1 结果为 e=0,优先级:(1)条件运算符 优于 赋值、复合赋值 优于 逗号(2)条件运算符的结合性自右向左,98,9.类型转换运算符P56,将一个表达式转换成所需类型。为单目运算符。其优先级高于算术运算符。格式:(类型名)(表达式),例如:(double)a(int)(x+y)(float)(5%3),99,例如:设 x=2.5 a=7 y=4.7 x+a%3*(int)(x+y)%2/4 结果为:2.5,注意:实型转换成整型时,小数部分舍去,不四舍五入。/两边操作数都是整数时,其结果是 整数,不四舍五入。,100,运算符总结:,根据操作数个数,运算符分为:单目运算符、双目运算符、三目运算符。,运算符的运算顺序由优先级决定。,同一优先级的运算符,运算顺序由结合方向决 定。自右至左或自左至右。,P365 附录C 运算符和结合性表,101,各类运算符的优先级:初等运算符()-.单目运算符 算术运算符(先乘除,后加减)关系运算符 逻辑运算符(不包括!)条件运算符 赋值运算符 逗号运算符,102,当出现下列情况之一时会引起类型转换:(1)双目运算的两个操作数类型不同,引 起类型转换 转换规则:P54 图3-10(2)一个值赋予一个不同类型的变量,引 起赋值转换(3)一个值被强制为另一类型时,引起强 制类型转换(4)某个值作为参数传给一个函数时,引 起函数调用转换,类型转换总结:,103,第(3)种情况由程序员使用强制运算符进行显式类型转换。,第(1)(2)(4)种情况由系统自动隐含进行。,104,3.9 各种表达式,105,表达式是由运算符、操作数组成的符合的语法 的算式。,表达式是对运算规则的描述并按规则执行运算,运算的结果是一个值,称为表达式的值,其类 型称为表达式的类型。,106,C 语言中表达式的构成规则:单个常量、变量、函数调用是表达式“前缀单目运算符 表达式”是表达式“表达式 后缀单目运算符”是表达式“表达式 双目运算符 表达式”是表达式“表达式?表达式:表达式”是表达式 有限次使用上述规则获得的式子也是表达式,107,算术表达式 关系表达式 逻辑表达式C语言表达式 条件表达式 赋值表达式 逗号表达式,C语言中表达式的种类:,108,算术表达式的构成:(1)数值型常量,数值型变量,数值函数调用(2)-(算术表达式)(3)+整型变量,-整型变量,整型变量+,整型变量-,(4)(算术表达式)双目算术运算符(算术表达式)(5)有限次使用上述规则获得的式子是算术表 达式,1.算术表达式,由算术运算符连接数值型对象构成的式子。,109,例:设a为2,c=A,f=3.0,则a+2-a*6/f+c%a 表达式值为 1.0(a2)?3:-2 表达式值为-2(a=2)*f 表达式值为 6.0(1,2)a 表达式值为 0,110,由关系运算符连接的表达式称为关系表达式,关系表达式构成规则:表达式 1 关系运算符 表达式2 其中表达式1,2可以是:算术表达式,字符型数据,关系表达式,逻辑表达 式,条件表达式,赋值表达式,逗号表达式。,2.关系表达式,111,例:设a=2,c=A,f=3.0 则a+2!=c-100 表达式值为 1f/3c)=(fc)表达式值为 1!a=!f 表达式值为 1(!a&1)!=(!c|1)表达式值为 1(a 2)?3:0)(f!=1)?0:1)表达式值为 0(a=2)=(f=1)表达式值为 0(c=a)!=(f=100.5)表达式值为 1(1,2)=(2,1)表达式值为 0,112,逻辑表达式构成规则:(1)单目逻辑运算符 表达式(2)表达式1 双目逻辑运算符 表达式2 其中表达式1,2可以是 关系表达式,字符型数据,算术表达式,条件表达式,赋值表达式,逗号表达式。,3.逻辑表达式,由逻辑运算符连接的式子称为逻辑表达式。,113,例:设a 为2,c=a,f=3.0,则!(c a)表达式值为 1f/3&a c 表达式值为 1a a)&(f 4)表达式值为 0!a|!f 表达式值为 0!(1&!a)表达式值为 1(a 2)?3:0)|(f!=1)?0:1)表达式值为 0(a=0)|(f=1)表达式值为 1!(c=a)表达式值为 0!(1,2)表达式值为 0(1,2,3)&(3,3,3)表达式值为 1,114,条件表达式构成规则:表达式1?表达式2:表达式3其中表达式 1 可以是:关系或逻辑表达式,字符型数据,算术表达式,条件表达式,赋值表达式,逗号表达式。,4.条件表达式,由条件运算符连接的式子称为条件表达式。,115,例:设a=2,c=a,f=3.0 则a 0?a:-a 表达式值为 2f=3.0?a=c 表达式值为 1(f 0)?(c 0)?2:1):(a 0)?1:0)表达式值为 2(a=0)?(a=1):(a=0)表达式值为 1(c=a)?(0,1):(1,0)表达式值为 0,116,赋值表达式构成规则:(1)变量=表达式(2)变量 算术自反赋值运算符 表达式其中表达式可以是:字符型数据,算术表达式,逻辑表达式,条件表达式,赋值表达式,逗号表达式。,5.赋值表达式,由赋值运算符连接的式子称为赋值表达式。,117,例:设a=2,c=a,f=3.0 则f*=a+2 表达式值为 12.0f!=c 表达式值为 1f=!(a=0)表达式值为 1f=(a0)?2:1 表达式值为 2f=f+2.1 表达式值为 5.1f=(a,c,f,0)表达式值为 0,118,逗号表达式的构成:表达式1,表达式2,表达式n其中:表达式 i(i=1,2,n)一般都是同类型 表达式,可以是算术表达式,关系表达式,逻辑表达式,条件表达式,赋值表达式,逗号表达式。作用:顺序求出表达式1,表达式2,表达式n的值,整个表达式的值为表达式n 的值。,6.逗号表达式,由逗号运算符连接的式子称为逗号表达式或顺序求值表达式。,119,例:设a=2,c=a,f=3.0 则a+2,c+2 表达式值为 99a=c 表达式值为 0d=f+2.1,e=a-10 表达式值为-8a,c,f,10 表达式值为 10,120,例3.8 写出以下程序的运行结果#include void main()char c1=a,c2=b,c3=c,c4=101,c5=116;printf(a%c b%ctc%ctabcn,c1,c2,c3);printf(tb%c%cn,c4,c5);,注意:c4=101为ASCII码的八进制数,转换为十进制为65 Ac5=116为ASCII码的八进制数,转换为十进制为78 N,121,例3.9 要将China译成密码,密码规律是:用原来的字母后 面第4个字母代替原来的字母。因此China应译为Glmre。#include void main()char c1=C,c2=h,c3=i,c4=n,c5=a;c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf(password is%c%c%c%c%cn,c1,c2,c3,c4,c5);,运行结果:password is Glmre,122,例3.10此程序是否合法:#include void main()int c1,c2;c1=97;c2=98;printf(%c%cn,c1,c2);printf(%d%dn,c1,c2);,合法。因为在可输出字符范围内整型和字符型可以通用。运行结果:ab97 98,123,例3.11写出下面程序的运行结果:#include void main()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(%d,%d,%d,%dn,i,j,m,n);,运行结果:9,11,9,10,124,例3.12 写出下面赋值表达式运算后a的值,设原来a=12:(1)a+=a a=a+a a的值为24(2)a-=2 a=a-2 a的值为10(3)a*=2+3 a=a*5 a的值为60,125,(4)a/=a+a a=a/(a+a)a的值为0(5)a%=(n%=2)n的值等于5 复合赋值结合性从右至左:n=n%2 n=1 此整个赋值表达式的值为1 a%=1 a=a%1 a的值为0,126,(6)a+=a-=a*=a 复合赋值从右至左:a*=a a=a*a 此整个赋值表达式的值为144 a为144 a-=144 a=a-144 此整个赋值表达式的值为0 a为0 a+=0 a=a+0 此整个赋值表达式的值为0 a为0,127,小结:1、理解c语言的各种数据类型各种类型的定义(类型符)2、理解常量和变量的区别以及它们的定义(重点)3、变量赋初值的格式4、各种运算5、各种数据间的混合运算(重点,难点),

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开