C程序设计配套PPT及课后习题答案C3-数据类型.ppt

上传人:本田雅阁 文档编号:3479341 上传时间:2019-09-01 格式:PPT 页数:27 大小:172.02KB
返回 下载 相关 举报
C程序设计配套PPT及课后习题答案C3-数据类型.ppt_第1页
第1页 / 共27页
C程序设计配套PPT及课后习题答案C3-数据类型.ppt_第2页
第2页 / 共27页
C程序设计配套PPT及课后习题答案C3-数据类型.ppt_第3页
第3页 / 共27页
C程序设计配套PPT及课后习题答案C3-数据类型.ppt_第4页
第4页 / 共27页
C程序设计配套PPT及课后习题答案C3-数据类型.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《C程序设计配套PPT及课后习题答案C3-数据类型.ppt》由会员分享,可在线阅读,更多相关《C程序设计配套PPT及课后习题答案C3-数据类型.ppt(27页珍藏版)》请在三一文库上搜索。

1、第三章 数据类型、运算符和表达式 3.1 C语言的数据类型 C语言的数据结构是以数据类型形式出现的。 C的数据类型如下 :,数据结构? 待处理的数据都是以某种形式存在的(数字,字符等等) 数据之间存在某种联系 数据结构:数据的组织形式。如:数组(一系列前后相邻的数字) C语言中的任何数据都必须为其指定数据类型!,3.2 常量和变量,3.2.1 常量 & 符号常量 定义:程序运行时其值不能改变的量(即常数)。 分类:,直接常量: 整型常量 实型常量 字符常量 字符串常量 符号常量: 用标识符代表常量 定义格式: #define 符号常量 常量 一般用大写字母 是宏定义预处理命令,不是C语句,如:

2、#define PRICE 30,符号常量举例 #define PRICE 30 main() int num,total; num=10; total=num*PRICE; printf(“total=%d“,total); ,运行结果:total=300,3.2.2 变量 “标识符”(identifier)的概念 定义:用来标识变量、常量、函数等的字符序列 组成规则: 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线 大小写敏感: case-sensitive 不能使用关键字 长度:各个C编译系统有不同的规定。建议不要超过8个 命名原则: 见名知意 不宜混淆 如l与I, o与0

3、,在语言中,要求对所有用到的变量,必须 “先定义、后使用”!,这样做的目的: (1) 避免变量名使用错; (2) 便于为不同类型的数据分配内存空间; (3) 便于在编译过程中检查该变量所进行的运算是否合法;,变量定义的一般格式: 数据类型 变量名, 变量名2; 例如,int radius, length, area;,3.3 整型数据 3.3.1 整型常量的表示方法 三种形式: 十进制整数: 由数字09和正负号表示. 如: 123,-456,0 八进制整数: 由数字0开头,后跟数字07表示. 如: 0123,011 十六进制整数:由0x开头,后跟09,af,AF表示. 如: 0x123,0Xf

4、f,3.3.2 整型变量 1.在内存中的存放形式:二进制(正数、负数的不同表示形式)。在内存中占两个字节。 最左边一位:符号位。0为正,1为负。 2.分类(根据数值表达范围的不同) (1)基本整型:int (数字范围:-215(215-1) (2)短整型:short int 或 short (3)长整型: long int 或 long,unsigned 065535,3.3.3 整型常量的类型 根据其值所在范围确定其数据类型。 在整常量后面加一个字母u或U,认为是unsigned类型。此时,在内存中的最高位即最左边一位不是符号位,而是数据。 在整常量后加字母l或L,认为它是long int

5、型常量。,3.4 实型数据 3.4.1 实型常量的表示 实型常量,又叫实数或浮点数。,表示形式: 十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 指数形式:(e或E之前必须有数字;之后的是指数,指数必须为整数) 如12.3e3 ,123E2, 1.23e4 “规范化的指数形式”,3.4.2 实型变量 实型数据在内存中:占4个字节 存储方式:指数形式!按小数部分和指数部分分别存放。 两个部分分别占的位数不同的编译系统有各自规定。 分类(按表示精度的不同) 单精度: float 一般占字节(位); 67位有效数字 双精度: double 一般占个字节;

6、1516位有效数字 长双精度: long double,3.4.3 实型常量的类型 默认double型 在实型常量后加字母f或F,认为它是float型,3.5 字符型数据 3.5.1 字符常量 定义:用单引号括起来的单个普通字符或转义字符.,字符常量的值:该字符的ASCII码值,如 101 -A 012 -n 376 - x61 -a,如 A65 a97 048 n10,如 a A ? n 101,转义字符:反斜线后面跟一个字符或一个代码值表示,注意:如果反斜杠或单引号本身作为字符常量,必须使用转义字符:、 。,转义字符!,在语言程序中,常常会看到这样的语句: printf(“Welcome

7、to C!n”); 执行结果:语句最后的n并没有被打印在屏幕上。n 称为“转义字符” 。 在碰到反斜杠时,printf把反斜杠和下一个字符结合起来构成“转义序列”,例如(n)的意思是“换行”,它使光标定位到下一行的开始位置。,3.5.2 字符变量 字符变量的类型关键字为char,内存中占用1字节。 字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。 注意:一个字符型变量只能存放一个字符常量!,3.5.3 字符型数据的存储方式及使用 字符数据在内存中存储的是字符的ASCII码 一个无符号整数,其形式与整数的存储形式一样,

8、所以语言允许字符型数据与整型数据之间通用。 (1)一个字符型数据,既可以字符形式输出,也可以整数形式输出。(见50页例3.6) (2)允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算。 (见51页例3.7),3.5.4 字符串常量 定义:字符串常量是用一对双引号括起来的若干字符序列。,例如,“How do you do.”、“Good morning.”等,都是字符串常量,其长度分别为14和13(空格也是一个字符)。,字符串长度:字符串中字符的个数称为字符串长度。 空串:长度为0的字符串(即一个字符都没有的字符串)。表示为“”(一对紧连的双引号)。,注意:如果反斜杠和双引

9、号作为字符串中的有效字符,则必须使用转义字符。,例如,I say:“Goodbye!“ “I say:“Goodbye!“, 字符串的存储 C语言规定:在存储字符串常量时,由系统在字符串的末尾自动加一个0作为字符串的结束标志。 注意:在源程序中书写字符串常量时,不必加结束字符0,否则画蛇添足。 如果有一个字符串为“CHINA”,则它在内存中的实际存储如下所示: 最后一个字符0是系统自动加上的。因此,这个字符串占用字节而非字节内存空间。,注意:在C语言中没有专门的字符串变量!,3.6 变量赋初值 程序中通常要求对一些变量预先设置初值。,单个变量的赋值:,多个变量的赋值:,3.6 各种数值类型数据

10、之间的 混合运算,在语言中,整型、实型和字符型数据间可以混合运算(因为字符数据与整型数据可以通用)。 如果一个运算符两侧的操作数的数据类型不同,则系统按“先转换、后运算”的原则,首先将数据自动转换成同一类型,然后在同一类型数据间进行运算。(转换规则如54页图3-10所示) 横向向左的箭头,表示必须的转换。char和short型必须转换成 int 型,float型必须转换成double型。 纵向向上的箭头,表示不同类型的转换方向。,例如,int型与double型数据进行混合运算,则先将int型数据转换成double型,然后在两个同类型的数据间进行运算,结果为double型。,注意:箭头方向只表示

11、数据类型由低向高转换,不要理解为int型先转换成unsigned型,再转换成long型,最后转换成double型。,3.8 算术运算符和算术表达式,在语言中,除控制语句和输入输出函数外,其它所有基本操作都作为运算符处理。,1. 五种基本算术运算符 +、-(减法/取负)、*、/、%(求余数),关于除法运算 / C语言规定:两个整数相除,其商为整数,小数部分被舍弃。例如,5 / 2 = 2。,关于求余数运算 要求两侧的操作数均为整型数据,否则出错。,2. 表达式和算术表达式 表达式的概念:用运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合语言语法规则的式子,称为表达式。,算术表达式:表

12、达式中的运算符都是算术运算符。例如,3 + 6 * 9、(x + y) / 2 等,则称为算术表达式。,运算符的优先级与结合性: (1)语言规定了运算符的优先级和结合性。 所谓结合性是指,当一个操作数两侧的运算符具有相同的优先级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结合。 自左至右的结合方向,称为左结合性。反之,称为右结合性。 结合性是语言的独有概念。除单目运算符、赋值运算符和条件运算符是右结合性外,其它运算符都是左结合性。,3. 强制类型转换, 除自动转换外,语言也允许强制转换。 数据类型强制转换的一般格式为: (要转换成的数据类型)(被转换的表达式) 当被转换的表达式是一

13、个简单表达式时,外面的一对圆括号可以缺省。,例如, (double)a (等价于(double)(a) /*将变量a的值转换成double型*/ (int)(x + y) /*将x+y的结果转换成int型*/ (float)5 / 2(等价于(float)(5)/2) /*将5转换成实型,再除以2(=2.5)*/ (float)(5 / 2) /*将5整除2的结果(2)转换成实型(2.0)*/,注意:强制转换类型得到的是一个所需类型的中间量,原表达式类型并不发生变化。例如,(double)a 只是将变量a的值转换成一个double型的中间量,其数据类型并未转换成double型。 P56例 3.

14、8,4 自增、自减运算符,作用:增运算使单个变量的值增,自减运算使单个变量的值减。,用法与运算规则:(自增、自减运算符都有两种用法) 前置运算运算符放在变量之前:变量、变量 先使变量的值增(或减),然后再以变化后的值参与其它运算,即先增减、后运算。 后置运算运算符放在变量之后:变量、变量 变量先参与其它运算,然后再使变量的值增(或减),即先运算、后增减。,注意:自增、自减运算符,不能用于常量和表达式。 例如,5+、-(a+b)等都是非法的。 见 P57,3.9 赋值运算符和赋值表达式,赋值符号“=”就是赋值运算符,它的作用是将一个表达式的值赋给一个变量。,赋值运算符的一般形式为: 变量 = 赋

15、值表达式 例如, x = 5 y = (float)5 / 2,如果表达式值的类型,与被赋值变量的类型不一致,但都是数值型或字符型时,系统自动地将表达式的值转换成被赋值变量的数据类型,然后再赋值给变量。, 复合赋值运算符,复合赋值运算符是由赋值运算符之前再加一个双目运算符构成的。复合赋值运算的一般格式为: 变量 双目运算符 = 表达式 复合赋值运算符,它等价于:变量 = 变量 双目运算符 (表达式),例如, x += 3 /* 等价于 x=x+3 */ y *= x + 6 /* 等价于y=y*(x+6); 而不是y=y*x+6 */,C语言规定的10种复合赋值运算符如下: +=,-=,*=,

16、/=,%=; /*复合算术运算符(5个)*/ &=,=,|=,=;/*复合位运算符(5个)*/,3.9 逗号运算符和逗号表达式,语言提供一种用逗号运算符“ , ”连接起来的式子,称为逗号表达式,又称顺序求值运算符。,1.一般形式 表达式, 表达式, , 表达式n,2.求解过程 自左至右,依次计算各表达式的值,“表达式n” 的值即为整个逗号表达式的值。,例如,逗号表达式 a = 3 * 5, a * 4 的值? 先求解a = 3 * 5 得a=15;再求a * 4 = 60 所以值=60。,又例如,逗号表达式 (a = 3 * 5, a * 4), a + 5 的值? 先求解a = 3 * 5

17、得a=15;再求a * 4=60;最后求解a + 5=20,所以逗号表达式的值=20。,注意:并不是任何地方出现的逗号,都是逗号运算符。很多情况下,逗号仅用作分隔符。,(1)下述标识符中,( )是合法的用户标识符。 A)A&B B)void C)_student D)ab* (2)C语言中运算对象必须是整数的运算符是( )。 A)% B)/ C)%和/ D)* (3)下述C语言转义符中( )是非法的。 A)b B)037 C)0xf D) (4)C语言中最简单的数据类型包括( )。 A)整型,实型,逻辑型 B)整型,实型,字符型 C)整型,字符型,逻辑型 D)整型,实型,逻辑型,字符型 (5)下面四个选项,均是合法浮点数的选项是( ) A) +1e+1, 5e-9.4, 03e2 B) -.60, 12e-4, -8e5 C) 123e,1.2e-.4 ,+2e-1 D) -e3, .8e-4, 5.e-0,当堂练习!,C,A,B,C,B,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1