第2章基本数据类型与运算符课件

上传人:我*** 文档编号:140669335 上传时间:2020-07-31 格式:PPT 页数:63 大小:252KB
返回 下载 相关 举报
第2章基本数据类型与运算符课件_第1页
第1页 / 共63页
第2章基本数据类型与运算符课件_第2页
第2页 / 共63页
第2章基本数据类型与运算符课件_第3页
第3页 / 共63页
第2章基本数据类型与运算符课件_第4页
第4页 / 共63页
第2章基本数据类型与运算符课件_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《第2章基本数据类型与运算符课件》由会员分享,可在线阅读,更多相关《第2章基本数据类型与运算符课件(63页珍藏版)》请在金锄头文库上搜索。

1、第2章基本数据类型与运算符,第1章内容复习 本章内容 1、五种基本数据类型:char,int,float,double,void; 2、运算符操作; 3、输入/输出操作。 重点与难点 整型数据存储格式 运算符运算规则 输入输出格式,2.1数据类型和取值范围,2.1.1数据类型和取值范围 1.类型修饰 长度修饰:short,long 符号修饰:signed,unsigned 2.取值范围 与机器类型、编译环境有关. 如: int在16位系统中为2字节, 取值范围为 10000000, 00000000 011111111,11111111 即-215215-1(-3276832767) 不带符号

2、的int在16位系统中取值范围为00000000,0000000011111111,11111111 即0216-1(065535),int在32位系统中为4字节,取值范围为10000000,00000000, 00000000, 00000000 011111111,11111111,11111111,11111111 即-231231-1 不带符号的int在32位系统中取值范围为 00000000,00000000,00000000,00000000 111111111,11111111,11111111,11111111 即0232-1. 不同数据类型取值范围见表2-1。,常量:是指在程

3、序运行过程中数值不发生变化的量,如:5,a,Hello,world; 变量:是指程序运行过程中,可以发生变化的量,如:a,Hello等 。 2变量的定义 定义格式为: 存储类型 数据类型 变量名; 如: int a, a5, _a; float _a5, A5; 变量类型可以是表2.1中的任何数据类型。,变量命名遵守C标识符命名规则: (1)第1个字符必须是字母或下划线; (2)其余字符可以是字母、下划线、数字; (3)标识符有长度限制,如 C规定标识符长度不能超过32个字符; (4)字母区分大小写; (5)用户自定义标识符不能与C语言的保留字或预定义标识符同名,并应尽量做到“见名知意”,以增

4、加程序的可读性。C语言保留字请参见附录2,预定义标符指预定义库函数。 变量没有赋初值时,变量中存放的是一随机值。变量定义时可同时赋初值,称之为变量的初始化,如: int a=1,a5=10;,定义变量包括两个方面的含义:一是给变量分配了存储空间和规定了变量的取值范围;二是规定了其允许的操作,如实数可进行加减乘除运算,但不能进行求余运算。,2.1.2整型常量 1。整型常量按进制划分有: 十进制、八进制(前缀为数字0)、十六进制(前缀为数字0X或0 x)三种。 数据377按这三种进制的格式可分别表示为:377、0571、0 x179(或0X179)。 2。常量按长度划分为两种: 短整型和长整型(后

5、缀为小写字母l或大写字母L),其中默认为短整型。 如-377是一个短整型数,而-377l或-377L表示-377是长整型数。 3。长度和进制可进行组合 如:377L、0571L、0 x179L分别表示十进制、八进制、十六进制长整型数。,2.1.3实型常量 实型常量有两种表示方法: 一类是标准计数方法,如PI值表示为3.1415926 另一类可以采用科学计数法,科学计数法的一般形式为: 尾数E阶码 或 尾数e阶码 如PI值可以表示为如下形式: 3.14159E03.14159e00.314159E131.4159e-1。,2.1.4字符常量 字符常量用一对单引号包围 如5、a、A、 等 每个字符

6、占一个字节,在计算机中,字符按ASII值存放,见附录1,对应的3个字符ASCII值为53、97、65、32等,因此字符也可以参加整型运算。 由于字符用单引号包围,单引号字符不好表示,在C中这些不好表示的字符可在字符前面加反斜杠区分,称之为转义字符,如表示单引号。常用转义字符见表2.2。,表2.2 常用转义字符表,字符也可用八进进或十六进制形式表示: 八进制ooo 十六进制xhh 如:101、x41均表示大写字母A。 注意3与3的区别:前者为字符常量,占一个字节,后者为整型常量,占两个字节;前者数值为51,后者为3;两个数据都可以参加四则运算。,例2.1转义字符与字符运算举例,分析下列程序运行结

7、果 #include main() char c=a; c=c+1; printf(“n%cn”,c); printf(“The token of RMB is:ntttYb=” ,在打印机上的输出结果为: b The token of RMB is: ,在屏幕上的输出结果为: b The token of RMB is: =,2.1.5字符串类型 字符串常量是用一对双引号包围的字符数组,如:”Hello,world!”,在内存中是按照每个字符的ASCII码连续存放的,并在结尾处添加了一结束标志0,对应的ASCII值为0,这样n个字符组成的字符串需占用n+1个字节。 12个字符组成字符串”He

8、llo,world!”在内存中占用13个字节,其存储形式如图2.1示。 (a) 十进制存储表示 (b) ASCII码存储形式 图2.1字符串“Hello,world!”存储表示,DC00 DC01 DC02 DC03 DC04 DC05 DC06 DC07 DC08 DC09 DC0A DC0B DC0C,DC00 DC01 DC02 DC03 DC04 DC05 DC06 DC07 DC08 DC09 DC0A DC0B DC0C,值得注意的是: (1) 字符串中包含有双引号时字符时,字符双引号必须用转义字符表示 (2) 一个字符串需占用两行时,需采用两对双引号分别连续表示,参看下列。 例2

9、.2字符串常量分两行表示的实例。 #include main() printf(“I say:n” “Hello,worlx64!”); 程序运行结果如下:,I say: “Hello,world!”,注意A与“A”的区别:前者为字符常量,占一个字节;后者为字符串常量,占两个字节,其中第一个字节存放字符A,第二个字节存放字符串结束标志0。 小结 1.数据类型与取值范围 2.定义变量的含义 3.字符与字符串的表示 4.字符3与3、A与”A”的区别,2.2运算符,2.2.1优先级与结合规则 1。运算优先级 优先级别:不同级别时,先算优先级别高的运算符; 结合规则:在同一级别运算时,按某种运算规则进

10、行;优先级别和结合规则见表2.3 2。单元运算、双元运算、三元运算 双元运算:只允许带左右两个运算数的运算符称为二元运算符(或二目运算符、双元运算符),如算术运算。 单元运算:只允许有一个运算数的称为单元运算符(或单目运算符、一元运算符),如负号运算符(-) 。 三元运算符,即条件运算符,它允许带三个运算数。,3。运算规则 (1) 不同级别的运算符按运算符的优先级别确定计算顺序,优先级别高(优先级别数小)的运算符先计算,优先级别低(优先级别数大)的运算符后计算。 (2) 相同级别的运算顺序按结合规则确定计算顺序。 如表达式 3+4*(12-6)/(1+2) 的计算顺序为:左边括号运算(12-6

11、),值为6,右边括号运算(1+2),值为3,左边乘法运算4*6,值为24,右边除法运算24/3,值为8,加法运算3+8,值为11。,2.2.2赋值运算与连续赋值 一般形式为 变量=表达式 其功能是将一个表达式的值赋给变量。如下表达式 a=b+c 其本意是改写变量a的值。 注意:与数学上的关系运算符等于运算符的区别: 如数学上,表达式a=a+5 看作错误的表达式 在C语言中这是正确的合法表达式。 赋值运算符的级别14级,右结合规则。表达式 x=y=z=1 是连续赋值表达式,相当于如下表达式 x=(y=(z=1),2.2.3算术运算+、- 1。算术运算符 算术运算符有:加“+”、减“”、乘“*”、

12、除“/”、求余(模)“%”、“+”、“”等。 其中+、运算符级别为4级,*、/、%运算符级别为3级,它们都满足左结合性,都是二元运算符,+、*、/都能对整数或实数进行运算。 求余运算符%只能对整型数据进行,如5%2的值为1,5%3值为2。 如果计算:a%b 时,a、b中至少有一个为负数,此时运算结果如何呢?C语言中规定,其结果:余数与a的符号相同,而绝对值不变。因此表达式7%3、7%-3、-7%3、-7%-3的值分别为1、1、-1、-1。,2。自加+ 、自减运算符 一元运算符,级别为2级,满足右结合性,整型变量。 表达式+a或a+表示a的值自增1,而- - a或a - -表示a的值自减1。例如

13、若有定义: int a=5; 则执行 a+ 或 +a 后,a的值为6;执行 a- 或 -a 后a的值为4。,3。前缀运算、后缀运算 写在变量的前面称为前缀(或前置)运算符,写在变量的后面称为后缀(或后置)运算符。 前缀运算与后缀运算时,注意如下两点: (1) +a与a+单独构成表达式时,两者使用时没有区别。 (2) +a与a+不是单独构成表达式时,前缀运算表示先加后用,后缀运算表示先用后加。 先用后加指的是先读取a的数据使用,当表达式中比逗号运算符高的运算符都执行完后,a再进行自加运算。先加后用指的是先对a进行自加运算,然后再读取a进行其它运算。 上面我们仅以+为例进行说明,对于运算也有相似的

14、规则:前缀表示先减后用,后缀表示先用后减。,例2.3分析下列程序运行结果 #include main() int a,b; a=3;b=a+;printf(“a=%d b=%dn”,a,b); a=3;b=+a;printf(“a=%d b=%dn”,a,b); a=3;b=+a*+a; printf(“a=%d b=%dn”,a,b); a=3;b=+a*a+; printf(“a=%d b=%dn”,a,b); a=3;b=a+*+a; printf(“a=%d b=%dn”,a,b); a=3;b=a+*a+; printf(“a=%d b=%dn”,a,b); a=3;printf(“

15、+a=%d a+=%dn”,+a,a+); ,运行结果为 a=4 b=3 a=4 b=4 a=5 b=25 a=5 b=16 a=5 b=16 a=5 b=9 +a=5 a+=3,2.2.4关系运算 比较大小运算,有:、=、=、3 5=3 535=35= =35!=3 的逻辑值分别为 110001 注:关系运算符与赋值运算符的区别 关系运算的等于运算符= =与数学上的等于运算符=具有相同的含义,与C语言中的赋值运算符=是完全不同的,这一点对初学者而言往往容易搞错。,2.2.5逻辑运算、连续比较和逻辑优化 1。逻辑运算符 有:逻辑与 x=y=z=0;+x|+y|+z; printf(“x=%d

16、y=%d z=%dn”,x,y,z); x=y=z=0;+x ,2.2.6位运算 1位运算操作符 位运算符有: unsigned char d= -25; c=a ,结果: 69 -1 -70 24 -4 28 3 -56,:10111010 :00011000 :11111100,a:11100111 b:01011101 scanf(“%d%d”, ,程序运行结果为: 3 5(箭头表示从键盘输入) 5,2.2.8复合赋值运算 同赋值运算一样,也是二元运算符,14级,右结合。 含义见表2.7。 表达式: a/=b+c*d相当于表达式a=a/(b+c*d) 表2.7复合赋值运算符,2.2.9逗号运算, 15级,左结合。其一般形式如下: e1,e2,e3,en 其功能为先计算表达式e1,然后计算表达式e2,再计算表达式e3,最后计算表达式en,其中表达式en的值为整个表达式的值。 例2.7逗号表达式 #include main() in

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号