《c语言(第四版)课件 第3章1-2节 数据类型(93)》由会员分享,可在线阅读,更多相关《c语言(第四版)课件 第3章1-2节 数据类型(93)(93页珍藏版)》请在金锄头文库上搜索。
1、第3章 顺序结构程序设计 P37,- 献给学习IT技术的莘莘学子们 资讯管理科学系 刘纪大,3.1 顺序结构程序设计举例 P37,例 求一个班学生某门课程的平均成绩 设 A 等 (85分) 12人 B 等 (70分) 16人 C 等 (60分) 6人 D 等 (50分) 5人,#include int main( ) float a, b, c, d; float sum, aver; a=12; b=16; c=6; d=5; sum=85*a+70*b+60*c+50*d; aver=sum/(a+b+c+d); printf( “aver=%fn”,aver); return(0);,数
2、据类型、运算符与表达式3.2 数据的表示形式及运算 P39,算法处理的对象是数据,而数据是以某种特定的形式存在的。 (例如 整数、实数、字符等形式)数据结构就是数据的组织形式。处理同一类问题,如果数据结构不同,算法会不同,当然效率也会不同。(举例说明),C语言丰富的数据类型 P43,整型 基本类型 实型(浮点型) 单精度型 双精度型 枚举类型 复数浮点型 空类型 指针类型 数组类型 派生类型 结构体类型 结构类型 共用体类型 函数类型,数据类型,说明,由以上这些数据类型还可以构成更复杂的数据结构。例如,利用指针和结构体类型可以构成链表、树、图等复杂的数据结构。在程序中对用到的所有数据都必须指定
3、其数据类型。在本节主要介绍基本数据类型。图3.4 P43,3.2.1 常量和变量 P391.常量 P39,常量:在程序运行过程中,其值不能被改变的量。常量分类: 按常量的取值,常量区分为不同的类型。如: 整型常量, 例 12,0,-3 实型常量, 例 4.6、-1.23 字符常量, 普通字符 转义字符 例 a,d, n 表3.1 P40 字符串常量, 例 “CHINA”, “boy”,“123”,按常量的使用方式分类,按常量的使用方式,常量分为, 直接常量 (字面常量)和符号常量。直接常量 (字面常量): 从其字面形式即可判别其值的常量。符号常量: 用一个标识符代表的一个常量称为符号常量,即标
4、识符形式的常量。,符号常量 P41,符号常量定义的一般形式: #define 符号常量 常量功能: 用一个标识符代表的一个常量称为符号常量,即标识符形式的常量。说明:是编译预处理命令之一, 是宏定义的一种形式。,例 符号常量的使用。#include #define price 30int main ( ) int num, total; num=10; total=num * price; printf(total=%d,total); return(0); 程序说明: 程序中用#define命令行定义price代表常量30,此后凡在本文件中出现的price都代表30,可以和常量一样进行运算。
5、程序运行结果为: total=300,说明,1. 请注意符号常量不同于变量,它的值在其作用域(在本例中为主函数)内不能被改变,也就是说不能再被赋值。 如再用以下赋值语句给price赋值就是错误的。 price=40;2. 习惯上,符号常量名用大写,变量用小写,以示区别。,使用符号常量的好处,(1) 含义清楚 如上面的程序中,看程序时从price就可知道它代表价格。 (2) 修改方便 在需要改变一个常量时能做到“一改全改”,从而保持数据的一致性。 如: #define price 35 在程序中所有以price代表的价格就会一律自动改为35。,2. 变量 P41,变量:在程序运行过程中,其值可以
6、改变的量。 一个变量应该有一个名字,在内存中占据一定的存储单元。在该存储单元中存放变量的值。变量名和变量值 请注意区分变量名和变量值这两个不同的概念,见图。 变量名实际上是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址。在程序中从变量中取值,实际上是通过变量名找到相应的内存地址,从其存储单元中读取数据。,3. 常变量 P41,C99 允许使用常变量。const int a=3;表示 a 被定义为一个整型变量,并指定其值为3,而在变量存在期间不能再改变。例 #include int main( ) const int a=3; printf(n%dn,a); return(
7、0); /* 运行结果: 3 Press any key to continue */,4. 标识符(identifier)P42,标识符(identifier) 标识符就是一个名字。用来标识变量名、符号常量名、函数名、数组名、类型名、文件名、等。*标识符的构成 P42C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。,例,例: 下列出的是合法的标识符,也是合法的变量名。sum,average, _total, class, day, month,student-name,tan, lotus-1-2-3,basic, li-ling例: *下面是不合法的标
8、识符和变量名。.d. , ohn,y 123,33,3d64,ab,注意 P42,大写字母和小写字母被认为是两个不同的字符。 因此,sum和suM,Class和class是两个不同的变量名。一般,变量名用小写字母表示,与人们日常习惯一致,以增加可读性。,建议,见名知意: student sum age 等ANSI C标准没有规定标识符的长度(字符个数),但各个C编译系统都有自己的规定,一般前8个字符有效。标识符的个数在C+中不作任何限制,但一般只有前32个字符有效。建议变量名的长度不要超过8(32)个字符。,C语言中的关键字,保留字:附录C P378常用的 37 个保留字,变量的强制定义,在C
9、语言中,要求对所有用到的变量都要定义。或者说作强制定义,也就是“先定义,后使用”。,变量的强制定义的目的,(1) 凡是没有被事先定义的,不作为变量名,这就能保证程序中变量名使用得正确。 例如,如果在定义部分写了, int student; 而在执行语句中错写成staent。如: staent=30; 在编译时检查出statent未经定义,不作为变量名。(2) 每一个变量被指定为一确定类型,在编译时就能为其分配相应的存储单元。 如:指定a、b为int型,VC+6.0 每一个整型变量在内存中占4个字节。,续,(3) 指定每一变量属于一个类型,这就便于在编译时,据此检查该变量所进行的运算是否合法。
10、例如,整型变量a和b,可以进行求余运算: a%b %是“求余”(见3.8节),得到a/b的余数。 如果将a、b指定为实型变量,则不允许进行“求余”运算,在编译时会给出有关“出错信息”。,3.2.2 数据类型 P42,整型 基本类型 实型(浮点型) 单精度型 双精度型 枚举类型 复数浮点型 空类型 指针类型 数组类型 派生类型 结构体类型 共用体类型 函数类型 图3.4 P43,数据类型,3.2.3 整型数据 P44基本概念,一.整型常量的表示方法,整型常量即整常数。C整常数可用以下三种形式表示:(1) 十进制整数。如123, -456, 0。(2) 八进制整数。以数字0开头的数是八进制数。 如
11、 0123 表示八进制数123,即(123)8, 其值为: 182+281+380,等于十进制数83。(3) 十六进制整数。以0x开头的数是十六进制数。 如 0x123,代表十六进制数123,即(123)16=1162+2161+3160=256+32+3=291。 -0x12等于十进制数-18。,二. 整型变量,整型数据在内存中的存放形式 整型数据在内存中是以二进制形式存放的。 如果定义了一个整型变量i: int i; /* 定义为整型变量 */ i=10; /* 给i赋以整数10 */ VC+ 6.0中,每一个整型变量在内存中占4个字节。,1. 整型数据的分类 P44,整型变量的基本类型符
12、为int。 还有以下各种整型变量: (1) 基本整型,以int表示 (2) 短整型, 以short int表示,或以short表示 (3) 长整型, 以long int表示, 或以long表示 (4) 双长整型,以long long int 表示 或以 long long 表示,2. 整型变量的符号属性 P45,整型变量在存储单元中都是以补码形式存储的,存储单元中的第一个二进制位制表符号。其取值范围如:表3.2 P45整型数据常见的存储空间和取值范围。,“无符号”类型 P46,为了充分利用变量的表数范围,此时可以将变量定义为“无符号”类型。对以上三种都可以加上修饰符unsigned,以指定是“
13、无符号数” 。如果加上修饰符signed,则指定是“有符号数”。 如果既不指定为signed,也不指定为unsigned,则隐含为有符号(signed)。实际上signed是完全可以不写的。,*规定,C标准没有具体规定以上各类数据所占内存字节数,只要求long型数据长度不短于int型,short型不长于int型。具体如何实现,由各计算机系统自行决定。,3. 整型变量的定义,C规定在程序中所有用到的变量都必须在程序中定义,即“强制类型定义”。例如: int a,b; (指定变量a、b为整型) unsigned short c,d; (指定变量c、d为无符号短整型) long e,f; (指定变量e、f为长整型),