1、第三章 数据类型、运算符和表达式 第一节 C的数据类型 第二节 常量 第三节 变量 第四节 算术运算符和算术表达式 第五节 赋值运算符和赋值表达式 第六节 逗号运算符和逗号表达式 第七节 各类数据间的混合运算第一节 C的数据类型 基本类型 整型 字符型 实型(浮点型)单精度、双精度 构造类型 数组类型 结构体类型 共用体类型 指针类型 空类型第二节 常量 2.1 符号常量 2.2 整型常量 2.3 实型常量 2.4 字符型常量 2.5 字符串常量2.1 符号常量用一个标识符代表一个常量#define PI 3.14159 main()float r,s,area;scanf(%f,&r);s=
2、2*PI*r;area=PI*r*r;printf(s=%7.2f,area=%7.2f,s,area);三种形式表示:十进制:如 123 -60 0 八进制:以0开始,如 0123 十六进制:以0 x开始,如0 x1232.2 整型常量2.3 实型常量 小数形式:如 123.0 .123 0.0 12.5 指数形式:如123e2 123E2 单引号括起来的一个一个字符。如:a 字符常量的值是一个数字值。如字符常量 0 ,其ASCII为48,所以存储的实际值为48。字符常量可以象整数一样参与运算。2.4 字符型常量转义字符 功能 转义字符 功 能 a 响铃 反斜杠字符 b 退一格 单引号字符
3、f 走纸换页 双引号字符 n 换行?问号 r 回车 ooo 13位8进制数代表的字符 t 横向跳格 xhh 12位16进制数代表的字符 main()char c1=101,c2=x42;printf(atbctbABCn);printf(xyzt%c%c,c1,c2);结果?结果?a bc ABC xyz A B main()printf(ab ct derftgn);printf(htibbjk);结果?结果?打印机上的结果:fabcgdehjik 显示屏上的结果:fgdehjk 双引号括起来的字符序列。如How are you,0等 字符串在存储时末尾被自动加上字符0 字符常量与只包含一个
4、字符的字符串常量的区别2.5 字符串常量第三节 变量 3.1 变量的概念 3.2 变量名 3.3 整型变量 3.4 实型变量 3.5 字符型变量3.1 变量的概念 程序运行过程中其值可以改变的量,系统为程序中的每一个变量开辟一个存储单元,如:main()int a;a=2;printf(a=%dn,a);a=4;printf(a=%dn,a);程序运行结果?3.2 变量名 标识符:用来标识变量名、符号常量名、数组名、函数名、文件名的有效字符序列。关键字预定义标识符用户定义标识符 字母或下划线开头,后跟字母、数字和下划线组成。变量要先定义后使用 下列字符串中可以做C语言程序中的标识符的有哪些?p
5、rint _3id oodb Iam 3pi Line#str_1 His.age while aBc3.3 整型变量1、分类Fint 整型Fshort int(或short)短整型Flong int(或long)长整型Funsigned int 无符号整型Funsigned short 无符号短整型Funsigned long 无符号长整型2、各类型数据长度、取值范围各类型数据长度、取值范围 所占位数所占位数 取值范围取值范围 int 16 -3276832767 short 16 -3276832767long 32 -21亿亿21亿亿unsigned int 16 065535 unsi
6、gned short 16 065535 unsigned long 32 042亿亿 3、整型变量的定义 所有的变量需先定义类型int a,b,c;/*指定a,b,c为整型变量*/unsigned count;/*指定lower为无符号整型变量*/long s;有些变量可以预先设置初值:int a=0,b,c;/*指定a,b,c为整型变量,a的初值为0*/int a=0,b=0,c=0;/*指定a,b,c为整型变量,a、b、c的初值为0*/3.4 实型变量1、分类 所占位数所占位数 取值范围取值范围F float 单精度 32 -3.4*10-38 3.4*1038 F double 双精度
7、 64 -1.7*10-308 1.7*10308 F long double长双精度 128 -1.2*10-4932 1.2*1049322、变量的定义float x,y;/*指定x,y为单精度实型变量*/double z;/*指定z为双精度实型变量*/3.5 字符变量1、变量的定义char c1,c2;/*指定c1,c2为字符型变量*/2、字符型数据的存储以ASCII码存储,存储形式与整型一样,可以和整数进行运算main()char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“%c,%cn”,c1,c2);printf(“%d,%dn”,c1,c2
8、);结果:A,B 65,66第四节 算术运算符和算术表达式4.1 基本算术运算符4.2 运算符的优先级和结合性4.3 自增、自减运算符4.1 基本算术运算符(加法运算或正号运算符)(减法运算或负号运算符)*(乘法运算符)(除法运算符)%(求余运算符,或称模运算符)从左到右从左到右4.2 运算符的优先级和结合性 算术表达式 用算术运算符和括号将运算量连接起来的式子称为算术表达式。运算符有优先级和结合性 在求表达式的值时,要按照优先级的高低依次计算 如果运算符两侧优先级相同,则按规定的结合方向进行。结合性-(负号运算符)*/%+-(加减运算符)我最高!我最低!4.3 自增、自减运算符+运算符的作用
9、是使变量的值增1。-运算符的作用是使变量的值减1。常见的用法有:+i,-i 在使用i前,使i的值加(减)1i+,i-在使用i后,使i的值加(减)1 已知 i=5(1)j=i+;j=?i=?(2)j=+i;j=?i=?5666注意:1、自增和自减运算符只能用于变量,表达式(x+y)+是不合法的。2、自增和自减运算符的结合方向是“自右向左”。如表达式-i+等价于-(i+)。3、(i+)+(i+)+(i+)结果?4、(+i)+(+i)+(+i)结果?5、i+j是(i+)+j还是i+(+j)?6、printf(“%d”,i,i+)结果第五节 赋值运算符和赋值表达式 5.1 赋值运算符 5.2 复合的赋
10、值运算符 5.2 赋值表达式5.1 赋值运算符 简单的赋值就是把一个表达式的值赋给一个变量。例如:i=5 i=j+15.2 复合的赋值运算符 在赋值符“=”之前加上其它运算符,可以构成复合的运算符。例如:i+=2 等价于 i=i+2 a*=b+5 等价于 a=a*(b+5)x%=3 等价于 x=x%35.3 赋值表达式 由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。形式:变量赋值运算符表达式 例如:x=3 y=x+3 对赋值表达式求解的过程是:将赋值运算符右侧的表达式的值赋给左侧的变量。赋值表达式的值就是被赋值的变量的值。结合性从右向左从右向左 注意:一般形式的赋值表达式中的
11、“表达式”又可以是一个赋值表达式。如:a=b=8按照从右到左的结合性等价于a=(b=8)赋值表达式也可以包含复合的赋值运算符。设a的值为6,计算a+=a-=a*a 先进行a*a的计算,结果为36 再进行a-=36的计算,相当于a=a-36=-30 最后进行a+=-30的计算,相当于a=a-30=-60 第六节 逗号运算符和逗号表达式 在逗号表达式中,逗号是一种运算符。形式如下 表达式表达式1 1,表达式,表达式2 2 由逗号隔开的一对表达式从左向右进行计算,其求解过程为:先求解表达式1,再求表达式2,整个逗号表达式的值是表达式2的值。逗号运算符是所有运算符中级别最低的。例如 a=4*6,a+5
12、 整个逗号表达式的值为29。注意一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,例如:(a=4*6,a+5),a+6 整个表达式的值为30。第七节 各类数据间的混合运算 C语言允许数据值从一种类型转换成另一种类型。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按图所示。高 double float long unsigned 低 int char,short 说明:横向向左的箭头表示当运算对象为不同类横向向左的箭头表示必定的转换,如字符型(char)数据和短整型(short)数据必定先转换成整型(int),以提高运算精度。纵向的箭头表示当运算对象为不同类型时转换的方向型时转换的方向。数据总是由低级别向高级别转换。C语言提供一种“强制类型转换”运算符,将一个类型的变量强制转换为另一种类型。一般形式为:(类型标识符)(表达式)例如:k=(int)(int)x+(float)i)/*得到整型数*/(float)(x=85)/*得实型单精度数*/例如 若x原为实型变量且值为2.6,在执行 i=(int)x 后得到一个整数2,并把它赋给整型变量i,但x仍为实型,值为2.6。作业 3.9 3.10 3.12 第3周交
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。