C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第2章 数据类型

上传人:E**** 文档编号:89423500 上传时间:2019-05-25 格式:PPT 页数:67 大小:662.51KB
返回 下载 相关 举报
C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第2章 数据类型_第1页
第1页 / 共67页
C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第2章 数据类型_第2页
第2页 / 共67页
C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第2章 数据类型_第3页
第3页 / 共67页
C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第2章 数据类型_第4页
第4页 / 共67页
C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第2章 数据类型_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第2章 数据类型》由会员分享,可在线阅读,更多相关《C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第2章 数据类型(67页珍藏版)》请在金锄头文库上搜索。

1、第2章 数据类型、运算符与表达式,2.1 C语言中的数据类型 2.2 常量与变量 2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 运算符和表达式 2.7 运算符的优先级与类型的强制转换,2.1 C语言中的数据类型,2.2 常量与变量,比较下面两个程序:,#include void main( ) printf(“%dn”,3+4); ,例:,#include void main( ) int a,b,c; a=3; b=4; c=a+b; printf(“%dn”,c); ,这两个程序的不同之处在于处理常量数据的方法不同,一个直接使用常量,另一个则通过变量来间接使用常量。,2.

2、2.1 常量 在程序运行过程中,其值不能被改变的量,8 、-2、0 整型常量 3.14、-2.1 实型常量 a、b 字符型常量,这些从字面上就可以看出数值大小和数据类型的常量称为字面常量(一般常量)。,例:,除了一般常量,C语言中还有一种特殊的常量-符号常量。,#include #define PI 3.1415926 void main( ) int r; float s; r=3; s=PI*r*r; printf(“%f”,s); ,例:,通过关键字define 预设了一个符号常量 PI,其实际含义是命令后面的宏体3.1415926字符串。,符号常量命名: (1)一般使用大写字母命 名,

3、与变量名区别。 (2)见名知意,2.2.2 变量 在程序运行过程中,其值可以被改变的量,#include void main( ) int a; a=1; a=2+3; a=a+1; printf(“%dn”,a); ,例:,包含两重含义: (1)申请了一个存储空间并命名为a。 (2)所申请的空间中只能正确存储int范围以内的数据。,a不断被赋值,a中的值不断被替换,并且保持最后一次存储的数值。例如此处a的最终值为6,使用变量时应该注意以下几点:,(1)必须要先定义后使用。 (2)变量命名时应该满足标识符的命名规则且不与系统关键字同名。,标识符命名规则: C语言中标识符只能由字母、数字和下划线

4、组成,大小写严格区分,并且第一个字母必须是字母或者下划线。,2.3 整型数据,C语言中整型数据有很多表示形式。 如123,-123,0123,0x123等,都是整型数据。 本节将介绍整型常量表示形式和整型变量的存储形式等内容。,2.3.1 整型常量的不同进制,(1)十进制。如123,-123。 (2)八进制。如0123。八进制整数都是以数字0开头,且八进制里面只有字符07,逢八进一。 如(0123)8=(3*80+2*81+1*82)10=(83)10 想想下面的整数是否为合法的八进制数: A)70 B)075 C)80 D)085,A,C为十进制,D不合法。B正确,注:在C语言中,不能随便在

5、一个整数前加数字0,以0开头的数都是八进制数。,(3)十六进制。如0x123(或者0X123)。 十六进制整型数以0x开头,它由字符09,A-F,组成。 与十进制的对应关系是:09对应09;AF对应1015(字母AF也可以用小写形式af)。 如 0xab=(10*161+11*160)=(171)10 想想下面的整数是否为合法的八进制数: A)oxff B)0Xabc C)0xyz D)-0x19,A,C,D不合法,B合法,2.3.2 整型变量,C程序中整型变量从所占字数上可以分为: (1)基本整型,用int表示,4字节。 (2)长整型,用long int 表示(简写成 long),占4个字节

6、。 (3)短整型,用short int表示( 简写成 short),占2个字节。,例如: int a; short b; 定义了一个int 变量a并且占4 个字节空间。 定义了一个 short变量b并 且占2个字节,C程序中整型变量从存储数据有无符号来分: (1)有符号型,用signed表示。 如:signed int a; 等价于 int a; 读为:有符号基本整型变量 a (2)无符号型,用unsigned 表示。 如: unsigned int b;等价于 unsigned b; unsigned long int c;等价于 unsigned long c; 分别读为: 无符号基本整型

7、 变量b,无符号长整型变量 c,注意:,(1)合理使用不同类型的整型定义变量,注意不同类型所能处理的数据范围。既不浪费空间,也不出现数据溢出等错误。 (2)使用变量时,一定要先定义后使用。,2.3.3 整型数据在内存中的存储形式,在计算机中,所有的数据都是以二进制的形式存储的,即只有0和1的表示。 整数在内存中的存储形式为二进制补码。 无符号整数和有符号数正整数,它们的原码,反码和补码相同。 有符号负整数的补码、反码和原码则不同。,【例2-1】 把十进制里面的10转换成二进制原码表示形式。,使 用 除 2 逆 向 取 余 的 方 法,(10)10=(0000 0000 0000 1010)2,

8、八进制整数转换成二进制只需要将八进 制各个位上的数用三位二进制数表示即可。 0754用十六位二进制表示为: 八进制 7 5 4 二进制 111 101 100 则0754=(0000000111101100)2 即:八进制的754的原码、反码、补码都为0000 0001 1110 1100,十六进制整数转换成二进制和八进制转换类似,将各个位置上的数用四位二进制数表示即可。 0X754用十六位二进制数表示为 十六进制 7 5 4 二进制 0111 0101 0100 则0X754=(0000011101010100)2 即:十六进制的754的原码、反码、补码都为0000 0111 0101 01

9、00,当求一个负整数的原码时,首先求出该负整数绝对值数的原码,然后将最高位置为1,以表示负数。,【例2-2】 -10的16位二进制原码、反码、补码分别是多少? 通过除2逆向取余的方法得到10的16位二进制原码是: 0000 0000 0000 1010 所以-10的16位二进制原码为(最高位置为1表示负) 1000 0000 0000 1010 -10的反码是原码除了符号位之外,其它二进制位按照1变0,0变1按位取反得到。即-10的反码是: 1111 1111 1111 0101 -10的补码是在其补码基础上加1得到。即-10的补码是: 1111 1111 1111 0110,2.4 实型数据

10、,2.4.1 实型常量 实型常量有两种表示形式: (1)一般十进制表示形式。它由数字和小数点以及小数部分组成。例如:1.23、123.0、123.、.123、0.0等等。 一个合法的十进制实数必须要有小数点,并且小数点的左右两边至少要有一边有数。例如前面提及的123.和.123都是合法的实数了。,(2)指数表示形式。 例如12340000,0.000000001234数学里写成1.234107,1.23410-9,称为科学记数法。 在C语言中,把1.234107,和1.23410-9表示成指数形式。 即 1.234E7,1.234E-9。,指数表示形式必须满足下面几点要求: 指数表示形式的格式

11、为 底数+字母E或e+指数。 底数必须要有数,不可以为空。如果写成 E-9,则为不合法数。 指数部分必须为整数,包括正整数和负整数。如果写成实数就不合法了,例如1.23E2.5则不合法,2.4.2 实型变量,有单精度(float)和双精度(double)以及长双精度(long double) 三种类型。,注:实型常量1.25,默认为double型实型常量,需8字节保存,当写成1.25F或者1.25f时,才表示为float型常量,需4字节保存。,【例2-3】 输入圆的半径,求这个圆的面积并输出。 #include #define PI 3.1415926 /PI为符号常量 main() doub

12、le s; /定义了一个双精度型变量 s float r; /定义了一个单精度变量 r scanf(“%f”, ,2.5 字符型数据,2.5.1 字符常量 字符常量的表示分为两种: 一般表示形式;特殊表示形式(称之为转义字符)。 (1)一般表示形式。 字符常量的一般表示形式是用单引号括住的单个字符。例如a, b,D,?,8,#等。 注意: 单引号不能换成双引号,例如“a”不是合法的字符常量。 单引号里面只能是单个字符,例如ab不是合法的字符常量。,(2)特殊字符(转义字符) 以 开头的字符系列。例如n,代表回车换行的动作,而不是一个简单的n字符。,【例2-4】转义字符的使用,分析程序的执行结果

13、。 #include void main() printf(“abctefgtxyzbmnn”); printf(“123r456b101x41n”); ,执行结果为:(代表一个空格) abcefgxymn 45AA,2.5.2 字符变量与字符存储形式,(1)字符变量的定义。 字符变量使用关键字 char定义,占一个字节。 例如: char c1,c2,c3; c1=a; 把字符常量a赋值给字符变量c1 c2=n; 把转义字符 n赋值给字符变量c2 c3=101; 把八进制数表示的转义字符 101(字母A)赋值给字符变量c3,(2)字符数据的存储形式。 将一个字符赋值给字符变量,其实不是将该字

14、符本身存放到变量对应的空间里,而是将该字符对应的ASCII码值存放到存储单元中。 例如char c=a;其实字符变量c对应的存储空间中存放的是字符a对应的ASCII码值97,并且字符变量的空间大小是一个字节。,【例2-5】 分析下面程序的执行结果。 #include void main() char c1,c2,c3; c1=a; c2=65; c3=c1+2; printf(“c1=%c,c2=%c,c3=%cn”,c1,c2,c3); printf(“c1=%d,c2=%d,c3=%dn”,c1,c2,c3); ,【例2-6】大小写字母的转换。 #include void main() c

15、har ch1,ch2; ch1=A; ch2= b; ch1=ch1+32; ch2=ch2-32; printf(“ch1=%c,ch2=%cn”,ch1,ch2); ,注意事项: (1)字符数据和整型数据在ASCII码表里面存在着一一对应的关系,比如说字母a对应97,而字母A对应65。 (2)字符也可以参与整数能参与的运算,比如 a+6-c结果为97+6-99=4。所以可以通过加减一个整数来实现字符之间的转换,最基本的应用是大小写字母之间的转换。 (3)虽然字符和整数有时候可以通用,但是并不是等价关系。例如一个char ch;如果ch=97;可以正确保存,如果ch=1000;就不可以正确保存了。因为char类型的变量只有一个字节大小。 (4)在许多题目中都设计到大小写字母的转换,一般都使用加减32的方法来实现。,2.6 运算符和表达式,2.6.1 算术运算符和表达式 在C语言中,基本算术运算符包括:+ 、- 、* 、/ 、% 。分别表示加、减、乘、除、取余。 由算术运算符连接两个操作数就组成了算术表达式。,这里对除(/)和取余(%)进行讲解: (1)除法(/) 当两个数a,b同时为整数时,则a/b为整除运算,即结果为除之后的整数部分,小数部分舍弃(不是四舍五入,是全部舍弃)。 例如: 9/2 结果为 4 1/2

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

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

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