C语言程序设计(第二版)-电子教案-任正云 第2章C语言数据类型与基本操作

上传人:E**** 文档编号:89422684 上传时间:2019-05-25 格式:PPT 页数:47 大小:920KB
返回 下载 相关 举报
C语言程序设计(第二版)-电子教案-任正云 第2章C语言数据类型与基本操作_第1页
第1页 / 共47页
C语言程序设计(第二版)-电子教案-任正云 第2章C语言数据类型与基本操作_第2页
第2页 / 共47页
C语言程序设计(第二版)-电子教案-任正云 第2章C语言数据类型与基本操作_第3页
第3页 / 共47页
C语言程序设计(第二版)-电子教案-任正云 第2章C语言数据类型与基本操作_第4页
第4页 / 共47页
C语言程序设计(第二版)-电子教案-任正云 第2章C语言数据类型与基本操作_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《C语言程序设计(第二版)-电子教案-任正云 第2章C语言数据类型与基本操作》由会员分享,可在线阅读,更多相关《C语言程序设计(第二版)-电子教案-任正云 第2章C语言数据类型与基本操作(47页珍藏版)》请在金锄头文库上搜索。

1、1,常量和变量 标识符与关键字 整型数在计算机中的存储方式 有符号的数据类型和无符号的数据类型 运算符及表达式 不同类型数据间的转换,第二章 C语言数据类型与基本操作,2,C语言的数据结构是以数据类型形式出现的。,数 据 类 型,构造类型,指针类型,空类型,字符类型,枚举类型,整型,实型,单精度,双精度,短整型,长整型,整型,数组类型,结构类型,共同类型,基本类型,数值类型,数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作,文件类型,C语言的数据类型,3,2.1.1 常量,2.1 常量与变量,在程序运行过程中,其值不改变的量称为常量。,在C语言中,常量有不同的

2、类型:,整型常量(int) 短整型(short int) 长整型(long int) 无符号型(unsigned int) 实型常量(float和double) 字符常量(char) 字符串常量,4,1整型常量,十进制常量 如15,19,123,-345等 。 八进制常量 以数字0开头 如:05,012,0123 十六进制常量 以数字0和字母x(或大写字母X)开头 如:0x10,0Xff,0X8,十进制5,10,83,十进制数16,255,8,5,2实型常量,用小数形式表示 如:345,.345, 345.0,3.14159 指数形式表示 1.5e5,2.9e-7,1.5105,2.910-7

3、。,注意: 指数形式的浮点常量E或e前面必须有数字,E或e 后面必须为整数。,6,3字符常量,用一对单撇号括起来的一个字符 如a,A,?, # 单撇号只是字符与其他部分的分隔符/定界符,不是字符常量的一部分。 不能用双引号代替撇号,如“a“不是字符常量。,7,4转义字符,101 -A 012 -n 376 - x61 -a 60 -0 483 -(),后面的字符有了特殊的含义,因而称为转义字符。,8,例 main() printf(“Yb=n“); ,运行结果: 屏幕显示:¥,单撇,ddd,8进制代表的字符,xhh,9,例 main () char ch; ch=362; /*将八进制数362

4、的ASCII字符赋给ch*/ printf (“%cn“,ch); printf (“chinan101tn“); ,运行结果: 屏幕显示: china A ,10,5字符串常量,“hello“ “Programming in C“ “A” “a” “ “ 把用一对双撇号括起来的零个或多个字符序列称为字符串常量。 字符串以双撇号为定界符,但双撇号并不属于字符串。 要在字符串插入撇号,应借助转义字符。 要处理字符串“I say: Goodbye! “时,可以把它写为“I say: Goodbye! “。,11,字符串常量,字符串中的字符数称为该字符串的长度。 字符串常量在机器内存储时,系统自动在

5、字符串的末尾加一个“字符串结束标志”,它是转义字符“0”。,例 字符串hello在内存中,注: 字符与字符串的区别.,12,6符号常量,【例2.3】符号常量举例 #define PRICE 30 main() int num,total; num=10; total=num*PRICE; printf(“total=%d“,total); ,运行结果:total=300,定义:用一个标识符代表一个常量 #define 标识符 代表的常量,使用符号常量的好处是: (1)含义清楚。 (2)在需要改变一个常量时能做到“一改全改”。,常用大写字母, 与变量名区分开来。,13,2.1.2 变量,变量指在

6、程序运行中,其值可以发生变化的量。 变量在内存中占据一定的存储单元,该存储单元中存放变量的值。 变量通常用来保存程序运行中的输入数据,计算获得的中间结果和最终结果。 变量的命名规则和用户标识符相同,给变量取名时,为了便于理解程序,一般都采用“见名知义”的原则。,14,1.变量的声明 变量声明的格式为: 数据类型符 变量名1,变量2,变量名n;,例如: int x; int y; 或等效为: int x,y;,注意: 定义变量的语句必须以“;”号结束,在定义一个语句中也可以同时定义多个变量,变量之间用“,”隔开。 对变量的定义可以在函数体之外,也可以在函数体或复合语句中。,15,2变量的初始化

7、C语言允许在说明变量的同时对其初始化,,int sum=0; /*说明变量sum的类型为整型,初始值为0*/ float pi=3.1416; char c=w;,【例2.4】 整型变量的定义和引用。 # include “stdio.h“ main() int x ,y,z,s; /*基本整型变量定义,一次可定义一个或多个变量*/ x=3;y=4;z=5; /*整型变量的引用*/ s=x+y+z; /*整型变量的引用*/ printf(“ns=%d“,s); ,运行结果: S=12,注意: (1)不同类型的数据在内存中占据不同长度的存储区,而且采用不同的表示方式。 (2)一种数据类型对应着一

8、个值的范围。 (3)一种数据类型对应着一组允许的操作。,16,2.2 标识符和关键字,-标识符 一个标识符可由字母、数字和下划线组成 ; 必须用字母或下划线开头; 大小写要区分 ; 不能用保留关键字作变量名 ; 避免混淆的字母 ; 例如 : l 与 I, o 与 0,例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123,17,32 个关键字:(由系统定义,不能重作其它定义) auto break case char const continue default

9、 do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned union void volatile while,-关键字,18,2.3 整型数在计算机中的存储方式,计算机系统的内存储器,是由许多称为字节的单元组成的,1个字节由8个二进制位(bit)构成,每位的取值为0/1。 最右端的那1位称为“最低位”,编号为0;最左端的那1位称为“最高位”,而且从最低位到最高位顺序,依次编号。,19,(1)原码。

10、 把整数的绝对值用二进制表示,最高位用于表示符号,0表示正数,1表示负数。 在二进制原码中,使用的二进制位越多,所能表示的数的范围就越大。 例如: (+156)10的十六位二进制的原码为(0000000010011100)2 (-156)10的十六位二进制的原码为(1000000010011100)2,(+50)10的八位二进制的原码为(00110010)2 (-50)10的八位二进制的原码为(10110010)2 (+33)10的八位二进制的原码为(00100001)2,20,(2) 反码 正数的反码和原码相同;负数的反码是对该数的原码除符号位外各位取反(即将“0”变为“1”,“1”便为“0

11、”)。,(+50)10的八位二进制的原码为(00110010)2 (+50)10的八位二进制的反码为(00110010)2 (-50)10的八位二进制的原码为(10110010)2 (-50)10的八位二进制的反码为(11001101)2,一个数的反码的反码就是原码本身。,21,(3) 补码 补码表示法规定:正数的补码和原码相同;负数的补码是在该数的反码的最后(即最右边)一位上加1。,(+50)10的八位二进制的原码为(00110010)2 (+50)10的八位二进制的补码为(00110010)2 (-50)10的八位二进制的原码为(10110010)2 (-50)10的八位二进制的反码为(1

12、1001101)2 (-50)10的八位二进制的补码为(11001110)2,一个数的补码的补码还是原码本身。,引入了补码以后,计算机中的加减运算都可以用加法来实现,并且,两数的补码之“和”等于两数“和”的补码。 在采用补码运算时,符号位也当着一位二进制数一起参与运算。,22,2.4 有符号的数据类型和无符号的数据类型,23,2.5 运算符及表达式,算术运算符:+ - * / % + - 关系运算符: = != 逻辑运算符:! & | 位运算符: | & 赋值运算符: = += -= 条件运算符: ? : 逗号运算符: , 地址运算符:* & 求字节数运算符: sizeof 强制类型转换:(t

13、ype-name) 分量运算符: . - 下标运算符: 其他 :( ) -,24,2.5.1 赋值运算符和赋值表达式,1赋值运算符与赋值表达式 “=”就是赋值运算符。 赋值表达式:由赋值运算符组成的表达式称为赋值表达式。 它的一般形式: = 如:x=5; 赋值表达式的求解过程: 将赋值运算符右侧的表达式的值赋给左侧的变量。 赋值的含义是将赋值运算符右边的表达式的值存放到左边变量名标识的存储单元中。,25,说明: (1)赋值运算符左边必须是变量,右边可以是常量、变量、函数调用或由常量、变量、函数调用组成的表达式。 例如:x=10,y=x+10,y=func()都是合法的赋值表达式,12=a,2*

14、a=3*5+55都不是合法的赋值表达式。 (2)赋值符号“=”不同于数学的等号,它没有相等的含义,“=”才表示相等。 例如:C语言中x=x+1是合法的,而数学上不合法。 (3)赋值运算时,当赋值运算符两边的数据类型不同时,将由系统自动进行类型转换。 转换原则是:先将赋值号右边表达式的类型转换为左边变量的类型,然后赋值。 赋值运算符的优先级仅仅高于逗号运算符,具有自右向左的结合性。,26,【例2.7】已知“int a=2,b=5,x,y;”,求解 “x=y=a+b;”中的x,y值。,由于算术运算符的优先级高于赋值运算符,先计算表达式a+b的值,结果为7。 按照赋值运算符的结合方向自右向左的结合,

15、求解 “x=y=a+b;”的值,等价于求解表达式 “x=(y=a+b)”的值。 操作数y是先与右边的运算符结合,即先将7赋给变量y,表达式y=7的值是7。 再做左边赋值运算,即将表达式y=7的值赋给变量x。 变量x的值是7。,【例2.8】设有定义“int a,b,c;”,求表达式a=(b=65)/(c=6)的值。,按照括号优先,先求解表达式b=65,结果为65; 再求解表达式c=6,结果为6; 在进行除法运算65/6,结果为10; 最后将10赋值给变量a,得到表达式a=(b=65)/(c=6)的值是10。,27,2复合赋值运算符 在赋值符“=”之前加上某些运算符(如+、-、*、/、%等),可以构成复合赋值运算符,复合赋值运算符可以构成赋值表达式。 C语言中许多双目运算符可以与赋值运算符一起构成复合运算符。 一般形式为: 算术符合赋值运算符,a+=b 等效为:a=a+b a-=b 等效为:a=a-b a*=b 等效为:a=a*b a/=b 等效为:a=a/b a%=b 等效为:a=a%b,【例2.9】已知“int a=6,b=8;”,求

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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