第03章数据类型、运算符与表达式.ppt

上传人:sccc 文档编号:5883830 上传时间:2023-08-29 格式:PPT 页数:61 大小:160.04KB
返回 下载 相关 举报
第03章数据类型、运算符与表达式.ppt_第1页
第1页 / 共61页
第03章数据类型、运算符与表达式.ppt_第2页
第2页 / 共61页
第03章数据类型、运算符与表达式.ppt_第3页
第3页 / 共61页
第03章数据类型、运算符与表达式.ppt_第4页
第4页 / 共61页
第03章数据类型、运算符与表达式.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《第03章数据类型、运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《第03章数据类型、运算符与表达式.ppt(61页珍藏版)》请在三一办公上搜索。

1、第3章 数据类型、运算符与表达式,*重点与难点3.1 C的数据类型3.2 常量与变量3.3 整型数据3.4 实型数据3.5 字符型数据3.6 变量赋初值,3.7 各类数值型数据间的混合运算3.8 算术运算符和算术表达式3.9 赋值运算符和赋值表达式3.10 逗号运算符和逗号表达式*本章小结*作业,重点与难点,重点:理解并掌握基本数据类型的使用方法;掌握赋值运算、算术运算和逗号运算的方法。难点:对知识点的理解和应用。,3.1 C语言的数据类型(4类),3.2 常量与变量,3.2.1 常量和符号常量3.2.2 变量,3.2.1 常量的定义与分类,什么是常量?是指在程序运行过程中,其值不能被改变的量

2、。常量可以分为哪两类?1)字面常量(或称直接常量)2)符号常量,符号常量的使用,#define PRICE 30main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);,符号常量的好处:1)含义明了2)“一改全改”,3.2.2 变量,1)变量的概念2)变量名、变量值和变量地址的关系?3)变量名有何规定或约定?4)为什么要求对所有用到的变量作强制定义?,1)变量的概念,变量?是在程序运行过程中其值可以改变的量。int a,b,c;float r,s;,2)变量名、地址和值,3)变量名有何规定?,变量名是一种标识符。C语言

3、规定标识符只能由字母(a-z或A-Z)、数字(0-9)和下划线(_)三种字符组成,且第一个字符必须为字母或下划线。例如:name,_num,count_3,变量定义的约定?,变量名一般用小写字母表示,以增加可读性。变量名的长度一般不要超过8个。变量名应该“见名知意”,4)为什么要求对所有用到的变量作强制定义?,强制定义,即“先定义,后使用”。“先定义,后使用”的目的?(1)方便编译系统为变量分配内存单元;(2)方便编译系统对变量类型的检查。,3.3 整型数据,3.3.1 整型常量的表示方法3.3.2 整型变量3.3.3 整型常量的类型,3.3.1 整型常量的表示方法,123(十进制)0123(

4、八进制)0 x123,0X123(十六进制),3.3.2 整型变量,1.整型数据在内存中的存在形式2.整型变量的分类3.整型变量的定义4.整型数据的溢出,1.整型数据在内存中的存在形式,按二进制补码形式存放。以-10为例?10的原码:0000 0000 0000 1010 按位取反:1111 1111 1111 0101 末尾加1:1111 1111 1111 0110(得-10补码),有符号和无符号整数,无符号 1111 1111(255)0000 0000(0)有符号 1000 0000(-128)0111 1111(127)1111 1111(-1),2.整型变量的分类及范围,3.整型变

5、量的定义,int a,b;unsigned short c,d;long c,f;,4.整型数据的溢出(例3.3),main()int a,b;a=32767;b=a+1;printf(%d,%d,a,b);,32767:0111 1111 1111 1111-32768:1000 0000 0000 0000,运行结果:32767,-32768,3.3.3 整型常量的类型,(1)根据常量值所处的范围决定是int,long型。(2)在常量值后面加一个字符区分类型 128U 12345u 0l 12L,3.4 实型数据,3.4.1 实型常量的表示方法3.4.2 实型变量3.4.3 实型常量的类型

6、,3.4.1 实型常量的表示方法,实数,又称浮点数。它有两种表示形式。(1)十进制小数形式.123 123.12.0 0.0(2)指数形式 1.23e3 5.49E-2-1.26e10,3.4.2 实型变量,1.实型数据在内存中的存放形式2.实型变量的分类3.实型数据的舍入误差,1.实型数据在内存中的存放形式,2.实型变量的分类,3.实型数据的舍入误差,舍入误差?由于实型变量是用有限的存储单元存放的,因此能提供的有效数字总是有限,在有效位以外的数字将被舍去。由此可能产生的误差就是舍入误差。,例3.4 实型数据的舍入误差,main()float a,b;a=123456.789e5;b=a+20

7、;printf(%f,b);,12345678848.000000float 只能保证7位有效数字,后面的数字并不能准确表示该数,3.4.3 实型常量的类型,C编译系统将实型常量作为双精度(double)来处理。12.3(double)12.3F 12.3f(float),3.5 字符型数据,3.5.1 字符常量3.5.2 字符变量3.5.3 字符数据在内存中存储形式及其使用方法3.5.4 字符常量,3.5.1 字符常量,字符常量?是用单引号()界定的一个字符。其中单引号只起界定作用,其本身并不是字符常量。a,,转义字符(又称换码序列)?是C语言中一种特殊的表现形式,以开头。n,376,x41

8、,转义字符及其表示的作用,例3.5 转义字符的使用,main()printf(ab ct derftgn);printf(htibbj k);,3.5.2 字符变量,字符变量用来存放字符常量,且只能存放一个字符。char c1,c2;c1=a;c2=b;,3.5.3 字符数据在内存中存储形式及其使用方法,字符数据以ASCII码形式存储的。可以与整型数据通用。,例3.6 字符数据与整型数据,main()char c1,c2;c1=65,c2=97;printf(n%c,%c,c1,c2);printf(n%d,%d,c1,c2);printf(n%c,%c,c1+32,c2-32);,运行结果:

9、A,a65,97a,A,3.5.4 字符串常量,字符串常量?是一对双引号()括起来的字符序列。双引号只起界定作用,并不是字符串的字符。welcome,字符串的结束标志 0(ASCII码值为0),是一个“空操作”。c语言通过结束标志来判断字符串是否结束,a与a,a:字符a,仅包括a的ASCII码值,占1个字节 a:字符串a,包括a的ASCII码值和字符串结束标志0,占两个字节,3.6 变量赋初值,为何需要对变量初始化?变量定义后,系统并没有对其初始化,所以在其中存放的数据是随机的值,或称“垃圾值”。,如何对变量赋初值?,int x,y;x=12,y=13;int a=1,b=2;scanf(%d

10、,%d,3.7 数值型数据间的混合运算,各数值型数据之间的转换顺序?char、short-int-unsigned-long、float-double必须一步一步转换吗?不是,一步到位的转换,譬如:char与double运算。这种转换需要程序员指定吗?不需要,转换是系统自动进行的。,举例:求下面算术表达式的值及类型。A+3+12.3*3+12L-b,1)A+3=65+3=68(int)2)12.3*3=36.9(double)3)68+36.9=104.9(double)4)104.9+12L=116.9(double)5)116.9-b=116.9-98=18.9(double),3.8 算

11、术运算符和算术表达式,3.8.1 C运算符简介3.8.2 算术运算符和算术表达式3.8.3 强制类型转换运算符3.8.4 自增、自减运算符,3.8.1 C运算符简介,C语言的运算符范围很宽,把除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理。运算符:参见附录III,3.8.2 算术运算符和算术表达式,1.基本的算术运算符2.算术表达式和运算符的优先级与结合性,1.基本的算术运算符,1)+-*/%2)不要和数学乘()、除()符号混淆。a*b,ab,ab;a/b,ab3)1/2=0 1/2.0=0.5 1.0/2=0.5 5/4=14)8%3=2 8%-3=2-8%3=-2-8%-3

12、=-2,2.算术表达式和运算符的优先级与结合性,1)算术表达式 用算术运算符和括号将运算对象(常量、变量、函数等)连接起来的,符合C语法规则的式子。2)算术运算符的优先级 先乘除,后加减3)算术运算符的结合性(或称结合方向)从左至右,3.8.3 强制类型转换运算符,强制类型转换(类型名)(表达式)举例(int)x+y(int)(x+y),例3.8 强制类型转换,main()float x;int i;x=3.6;i=(int)x;printf(nx=%f,i=%d,x,i);,运行结果x=3.600000,i=3,强制转换是一时性的转换!,3.8.4 自增、自减运算符,自增、自减:使变量的值增

13、1或减1。+i,-i:在使用i之前,先使i的值加(减)1i+,i-:在使用i之后,使i的值加(减)1,举例 自增运算,main()int i=8,j=8,m,n;m=+i;n=j+;printf(n%d,%d,%d,%d,i,j,m,n);,运行结果9,9,9,8,3.9 赋值运算符和赋值表达式,1.赋值运算符2.类型转换3.复合的赋值运算符4.赋值表达式,1.赋值运算符,赋值运算符“=”它的作用是将一个数据赋给一个变量。赋值运算符的左边必须为变量 i=i+1;i+;+i;优先级,结合方向 比算术运算符低,自右向左,2.类型转换,如果“=”两侧的类型不一致,系统自动进行类型转换。*截断*符号位

14、扩展一般地,在相容类型的数据间进行赋值,以避免这种类型转换的“副作用”。,3.复合的赋值运算符,任何二元(二目)运算符均可构成复合赋值运算符 a=a+b=a+=b x=x%(y+3)=x%=y+3复合赋值运算符的好处?1)简化程序 2)因符合“逆波兰”式,提高了编译效率,4.赋值表达式,x=12 y=a+b m=c%d a=(b=c)+(c=6),举例:设a=3,求下式a的值a+=a*=a,0)a=31)a*=a=a=a*a=3*3=92)a+=a=a=a+a=9+9=18,3.10 逗号运算符和逗号表达式,逗号表达式一般形式:表达式1,表达式2,.,表达式n逗号表达式的值为表达式n的值。逗号表达式的优先级最低,结合方向是自左向右printf(%d,%d,%d,a,b,c);中a,b,c不是逗号运算。,课堂练习,p65 3.6,本章小结(3点),介绍了基本数据类型的常量和变量的使用方法。介绍了数值型数据间混合运算的转换规则。介绍了三种基本运算:算术运算、赋值运算、逗号运算。,作业,p66 3.9,3.12,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号