c语言-第3章数据类型、运算符与表达式.ppt
《c语言-第3章数据类型、运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《c语言-第3章数据类型、运算符与表达式.ppt(122页珍藏版)》请在三一办公上搜索。
1、第三章 数据类型及格式输出、运算符与表达式,主要内容 C的数据类型 常量与变量 整型数据及格式输出 实型数据及格式输出 字符型数据及格式输出 字符串及格式输出 变量的赋初值 各类数值型数据混合计算 算术运算符和算术表达式 赋值运算符和赋值表达式 逗号运算符和逗号表达式,3.1 的数据类型,3.2 常量和变量,一、常量,1.直接常量:是在程序中直接引用的数据。,分为:整型、实型、字符型、字符串 如:3,4.5,S,“china”等,以数据的原形出现!,2.符号常量:,特点:在程序中不能给它赋值。,概念:是用标识符来表示一个常量。,定义形式(定义在函数体之外):,#define 标识符 常量数据,
2、例如:#define PI 3.14159,在程序预处理时,凡是出现标识符PI的地方都将用数据3.14159来替换。,如:2*2.3*PI 就等价于 2*2.3*3.14159。习惯上,符号常量用大写字母表示。,define PRICE 30 void main()int num,total;num=10;total=num*PRICE;printf(“total=%d”,total);,符号常量在其作用域内不能再被赋值。,使用符号常量的好处:(1)含义清楚;(2)一改全改,二、变量,变量是指在程序运行中,其值可以被改变的量。,基本概念:,变量代表计算机内存中的某一存储空间,该存储空间中存放的
3、数据就是变量的值。,在同一程序块中,每个变量都有唯一的名字,不能被重复定义。,int a,b,c;float x,y;char c1,c2;或 int c1,c2;,自己设定,满足标识符的规定。,如:int,float,char,“;”不可省,定义形式:,类型标识符 变量名1,变量名2,变量名3,.;,例如:,注意事项:(1)变量必须先定义后使用(2)每个变量必须被指定为一种类型(3)一般习惯上用小写字母表示变量,用大写字母表示符号常量,以示区别。(仅是习惯不是规定),三、C语言中的标识符,概念:就是用来标识变量名、符号常量名、函数名、类型名、文件名等的有效字符序列。,(1)标识符只能由字母、
4、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。,定义规则:,如:_1 year month student_name sum0 M.D.Jones$123#a 3b?c a=b,(2)在C语言中,大写字母和小写字母被认为是不同的字符。因此,a和A,I和i,Sum和sum,分别是两个不同的标识符。一般,变量名用小写字母,与人们习惯一致。(3)Turbo C 规定标识符最长为32个字符。,(4)用户自定义的标识符不能与保留字(关键字)同名。,保留字,关键字,概念:就是具有特定含义的标识符,用户不能用来作自定义标识符。,C语言中的关键字较少,由ANSI标准推荐的关键字有32个。,(1)与
5、数据类型有关的(14):char int float double signed unsigned short long void struct union typedef enum sizeof,(3)与程序控制结构有关的(12):do while for if else switch case default goto continue break return见课本P365附录II,(2)与存储类别有关的:auto extern register static,一、整型常量的表示方法整型常量的表示方法:1.十进制整数:123、-76、0 2八进制整数(以0开头):076、-0253 07
6、6转换成十进制:7*8+6 3十六制整数(以0 x开头):0 xa、0 x20、0 xf4 0 xf4转换成十进制:15*16+4,3.3 整型数据,(1)整型变量的分类,基本型,以int表示。,长整型,以long int表示,或以long表示。,无符号型,其中无符号型又分为无符号整型和无符号长整型,分别以unsigned int unsigned long表示。默认为有符号型:(signed)int,(signed)long int,二、整型变量,int x;long y;,2000,2001,2002,2005,x,y,内存,内存地址,2003,2004,所有变量必须先定义再使用!,(2)
7、整数在内存中的存放形式整数在内存中以补码表示:一个正数的补码和其原码的形式相同;负数的补码:将该数的绝对值的原码,按位取反再加1。,例如:整数 8 的16位(2字节)编码原码:00000000 00001000反码:00000000 00001000补码:00000000 00001000,例如:整数-8 的16位(2字节)编码原码:10000000 00001000反码:11111111 11110111补码:11111111 11111000,(3)整型变量的定义类型标识符 变量名1,变量名2,变量名3,.;如:int a,b;(指定变量a,b为整型)unsigned int c,d;(指
8、定变量c,d为无符号整型)long e,f;(指定变量e,f为长整型),(5)整型数据的格式输出,例:main()int a,b,sum;a=123;b=456;sum=a+b;printf(”a=%d,b=%d,c=%dn”,a,b,sum);结果:a=123,b=456,c=579,原样输出,格式符与输出项一一对应,转义字符,(换行),printf函数的一般格式:,printf(格式控制字符串,输出项列表);,必须用英文的双引号括起来。作用是控制输出项的格式和输出一些提示信息。,要输出的表达式。常量、变量、运算符表达式、函数返回值等,每个输出项之间用逗号“,”分隔。,格式控制字符组成:普通
9、字符、转义字符、格式说明。,普通字符按原样输出,主要用于输出提示信息。:,转义字符“”起头的转义字符(输出所表示的字符或实现其功能,见P25表3-1,详后述),格式说明由%和格式字符串组成:%格式字符串。它表示按规定的格式输出数据,与输出项一一对应。:,常用的整型数据的输出格式符:%d:以有符号十进制数形式输出整数。%ld:以有符号十进制数形式输出长整数。%md:以有符号十进制数形式输出整数,至少占m位。如果数据的位数小于m,右对齐,若大于m,则按实际位数输出。,例如:,printf(%dn,100);,printf(%5dn,100);,printf(%d%8d,100,100*100);,
10、C语言的整型数据在内存中的存储形式是【】A)原码 B)补码 C)反码 D)ASCII码以下【】组中的标识符都是合法的C语言用户标识符:A)a_10 B)char C)_int D signed 3ab a#b day a,一、实型常量的表示方法:,十进制形式:由数字和小数点组成;例如:3.4 4.3注意:必须有小数点,指数形式:由“十进制小数”+“e(或E)”+“十进制数整数”三部分组成。,例如:12.5e-6 表示12.510-6,十进制小数(尾数部分),e(或E),十进制数整数(指数部分),3.4 实型数据,注意:e或E的两边必须有数,且其后面必须为整数;,如:6E0.2 e5 6E,二、
11、实型变量(1)实型变量在内存中的存放形式和变量定义 实型数据在内存中是按照规范化的浮点数形式存储的。变量定义:float 变量名;double 变量名;,如:float a,b,c;,double a1,a2;,a,b,c为float型变量名。,a1,a2为double型变量名。,(2)实型变量的分类单精度(float)型双精度(double)型长双精度(long double)型,实例,2000,2003,2004,2011,x,y,内存,内存地址,(3)实型数据的输出举例P47例3.4:main()float a,b;a=1.23e1;b=a+20;printf(%fn,a);printf
12、(%fn,b);,运行结果:12.300000 32.300000,TC默认浮点数据输出6个小数位数,(4)实型数据的输出格式符(P37)%f:按小数形式输出实型数,整数部分全部输出,默认6位小数。%m.nf:按小数形式输出实数,制定保留n位小数,数据总宽度至少为m位,右对齐,超过m位按实际长度输出。例如:printf(“b=%5.2f”,2.3);,二种表现形式:,用单引号括起来的一个字符;,如:A、1、?等。,只能是英文的单引号,3.5 字符型数据一、字符常量,注意:a、a、”a”互不相同,分别为变量、字符常量、字符串常量。9、9、”9”互不相同,分别为整型常量、字符常量、字符串常量。,用
13、单引号括起来的由右斜杠()引导的转义字符,长度为一个字节,其含义不是字符本身,而是转成新的意义。(P25表3-1),如:n 101 x41,在统计字符个数时,只能记为一个字符,转义字符表,字符形式,功能,n,换行,t,横向跳格,b,退格,将当前位置移到前一列,f,、,8进制数表示的ASCII码对应的字符,反斜杠、单引号、双引号,ddd,换页,xhh,16进制数表示的ASCII码对应的字符,一个字符的多种表示方法:,任一字符都可用ddd或xhh表示,其中ddd为该字符的ASCII码八进制形式、hh为该字符的ASCII码十六进制形式 例:A、101、x41均表示A,要避免的错误:,表示单引号:不是
14、 表示双引号:不是表示斜线:不是,转义字符应用举例,printf(n1234nabcdn);,1234abcd,printf(n1234n);,printf(x41n);,1234,A,P25例子3.1,字符的值域:,即字符的取值范围。,ASCII字符表中的所有字符,每个字符型数据在内存中占一个字节,包括可显示字符和非显示字符。,例如:char c;c=A;c=65;c=101;c=x41;c=0101;c=0 x41;,二、字符变量,字符变量用来存放字符常量,注意一个字符变量只能存放一个字符。一般以一个字节来存放一个字符,或者说一个字符变量在内存中占一个字节。,变量中可存储一个字符或者一个0
15、255之间的无符号整数。,三、字符数据在内存中的存储形式及使用方法,存储形式:按 ASCII码存储,不是字符本身,其形式与整数的存储形式一样。,使用方法:按字符使用:则使用字符本身。按数值使用:则使用该字符的ASCII码值。,例3.6向字符变量赋以整数 main()char a,b;a=97;b=98;printf(%c,%cn,a,b);printf(%d,%dn,a,b);,运行结果:a,b 97,98,例3.7大小写字母的转换main()char a,b;a=a;b=b;a=a-32;b=b-32;printf(%c,%cn%d,%dn,a,b,a,b);,运行结果:A,B 65,66,
16、四、字符型数据输出格式符c:按字符输出一个字符,但不输出单引号。mc:按字符输出一个字符,占m位,右对齐。,main()char c=a;int i=97;printf(“%c,%dn”,c,c);printf(“%c,%dn”,i,i);,a,97a,97,注:C语言允许字符变量参与数值运算,用ASCII码运算;大小写字母ASCII码相差32。,五、字符串常量 字符串常量是用一对双引号括起来的若干字符序列,隐含以0结尾。字符串中字符的个数称为字符串长度。长度为0的字符串(即一个字符都没有的字符串)称为空串,表示为“”(一对紧连的双引号)。,字符串常量和字符常量区别:1)字符常量由单引号括起来
17、,字符串常量由双引号括起来。2)字符常量只能是单个字符,字符串常量则可以含0个或多个字符。3)可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。,例如:char c1=A;是可以的,但char c1=A;是不合法的。,如:有一个字符串为“CHINA”,则它在内存中的实际存储如下所示:最后一个字符0是系统自动加上的,它占用字节而非字节内存空间。又如:“abtcd”存储长度为6个字节。注意:在源程序中书写字符串常量时,不必加结束字符0,否则画蛇添足。,4)字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符“0”(ASCI
18、I码为0)。这是字符串结束的标志,由系统自动加上。,六、串输出格式符%s:输出一个字符串。%ms:输出一个字符串,至少占m列,右对齐,超过按实际输出。,例4.5main()printf(“%s,%7sn”,”CHINA”,”CHINA”);,CHINA,CHINA,例:printf(“%s”,“CHINA”);printf(“CHINA”);,把“CHINA”当作一个字符串,把“CHINA”当作要原样输出的字符序列,3.6 变量赋初值,在说明变量的同时给变量一个初始值。,变量定义,分配存储空间,变量初始化,分配存储空间的同时存入数据,int a,b;,int a=1,b=2;,不确定,例:看一
19、看,下列的定义哪些是正确的?,int a=5,b=3;,int a=b=c=3;,int a,b,c=3;,应写为:int a=3,b=3,c=3;,/*只有c 赋了初值*/,初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋予初值的,相当于有一个赋值语句。例如:int a=3;相当于:int a;/*指定a为整型变量*/a=3;/*赋值语句,将3赋予a*/,3.7 各类数值型数据间的混合运算,数据类型的级别:,低,高,int,unsigned,long,double,横向的必须先转成纵向类型才能进行运算,运算规律:1)两个同类型数据运算结果为原类型。,282 int 301/2 in
20、t 0,2)两个不同类型的数运算时,系统自动将低级类型转换为高级类型,而后进行同类型运算,结果为高级类型。(表示范围大的为高级类型,详细见P54图3.10),3.2/2 结果为double型数据28+a 结果为int型数据32768*32 结果为long int型数据,3)多个数运算时,类型转换要逐步进行。,2/3*6.3结果为?,4.2,0,0.0,3.8 算术运算符与算术表达式,三类算术运算符号:1.基本算术运算符 2.强制类型转换运算符 3.自增、自减运算符要求掌握每一种运算符号的功能、优先级、结合性 P375 附录III,结合性的含义:当某一运算对象两侧的运算符号优先级相同时,按照结合
21、性所规定的方向进行运算。,如a#b#c(#代表某一运算符)若先运算a#b,再将其结果与c运算,称为左结合性:从左至右运算若先运算b#c,再将a与其结果运算,则称右结合性:从右至左运算,一、基本算术运算符,+:加法,-:减法,*:乘法,/:除法,%:取余或模,两个整数相除取整数商3/5=0-5/3=-13./5=0.63/5.=0.6,3%5=3%两侧都应为整型数据2.5%3出错,优先级:(*,/,%)高于(+,-)结合性:自左向右 P375附录III,二、算术表达式,用算术运算符和括符将操作数连接起来的式子。,优先级:,(),*/%,+-,结合性,自左向右,与数学上一致。,三、强制类型转换运算
22、符(类型名)常量(类型名)变量(类型名)表达式功能:将一个常量、变量或表达式转换成所需类型。优先级:属单目运算符,仅低于括号,高于基本算术运算符。结合性:自右向左注意:类型名要用括号括起来,如果要转换表达式的类型,则表达式也要用括号括起来。,例:float(2/3)错误(int)(2.5)%3 值为2(float)5/2 值为2.500000,四、自增与自减运算符(重点和难点),+i,-i,i先自增(减)1,再使用i,i+,i-,先使用i,i再自增(减)1,(1)单独使用时,+i;,等 价,i+;,等 价,i=i+1;,(2)j=+i;,(3)j=i+;,若i的初始值为3,i=4;j=4;,i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数据类型 运算 表达式
链接地址:https://www.31ppt.com/p-6503703.html