《第4章讲义数据结构.doc》由会员分享,可在线阅读,更多相关《第4章讲义数据结构.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、教学目的:主要介绍C语言的基本数据类型,掌握C语言中的运算符和表达式的使用。学习要求:1. 掌握常量和变量的定义和分类2. 掌握C语言各类运算符和运算表达式的使用主要外语词汇:Modeifier、Complement、Signed、Unsigned第4章 数据类型及其运算4.1 基本字符、标识符一、基本字符:1、英文字母a-Z,a-Z 2、阿拉伯数字0-9 3、其他可以显示的字符二、标识符:1、包括符号常量名、变量名、函数名、数组名。2、只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。3、区分大小写,将大写字母和小写字母认为是两个不同字符。4、一般符号常量名用大写字母,变
2、量名、函数名和数组名用小写字母。5、用户不能采用与关键字、函数名同名的标识符。4.2 C语言的数据类型一、基本类型:1、整型 2、字符型 3、浮点型:(1)单精度型(2)双精度型 4、枚举类型二、构造类型:1、数组类型 2、结构体类型 3、共用体类型三、指针类型:四、空类型(void):4.3 常量与变量一、常量与符号常量:1、直接常量:不必进行说明可直接使用(1)整型常量 (2)实型常量 (3)字符常量:单引号(4)字符串常量:双引号 (5)转义字符2、符号常量:#define 符号常量 常量(1)#define命令的作用是在预编译时将程序中凡出现符号的地方全部用常量代替。(2)在其作用域内
3、不能改变,也不能再被赋值。例1:二、变量:1、变量必须先定义后使用。2、在编译时为每一个变量分配相应的存储单元。4.4 整型数据一、整型常量:1、八进制:以数字0开头 2、十进制 3、十六进制:以0x或0X开头二、整型变量:1、整型数据在内存中的存放形式:(1)有符号的数据类型(signed):最高位是符号位。(2)无符号的数据类型(unsigned):最高位是数值位。(3)有符号的数值是以补码表示的:2、整型变量的分类:(1)短整型(short int或short):2个字节(2)基本整型(int):2个字节(3)长整型(long int或long):4个字节(4)分为有符号的(signed
4、,默认)、无符号的(unsigned)。例2:4.5 实型数据一、实型常量:1、小数形式:2、指数形式: e/E 二、实型变量:1、浮点型变量的分类:(1)单精度(float):4个字节 (2)双精度(double):8个字节(3)长双精度(long double):16个字节float类型有7位有效数字,double类型有16位有效数字。例3:4.6 字符型数据一、字符型常量:1、一对单引号作为分隔符,单引号不是字符常量的一部分。2、转义字符:字符格式 含义 ASCII代码 n 回车且换行(Enter) 10 t 跳到下一个制表位(一个制表区占8列) 9 b 退格 8 r 回车不换行 13d
5、dd 八进制xhh 十六进制二、字符型变量:1、字符型数据在内存中以相应的ASCII码存放。例4:三、字符串:1、一对双引号作为分隔符,双引号不是字符串常量的一部分。2、系统会自动在每个字符串的最后加入一个字符串结束标志0(其ASCII值为0)。3、若字符串长度为n,则在内存中占用n+1个字节。4.7 变量初始化2、在定义变量的同时给变量赋初值,称为变量的初始化。例:(1)int a=3,b=3,c=3; 正确 (2)int a=b=c=3; 错误4.8 数据类型转换一、隐式类型转换:当不同类型的数据混合运算时,不需要人为干预,系统能够按照一定规则、自动将它们转换成相同类型。二、显式类型转换:
6、1、格式为:(类型名)(表达式)2、(int)采用舍弃小数的方法。例5:4.9 运算符和表达式一、算术运算符和算术表达式:1、基本的算术运算符:+、-、*、/、%求余运算符%:(1)操作数只能是整型 (2)运算结果是两数相除后所得的余数 (3)结果符号与被除数相同二、自增自减运算符:1、后缀形式:i+、i-,先引用后加/减12、前缀形式:+i、-i,先加/减1后引用i称为计数器,用来纪录完成某一工作的次数。注:没有引用时,只是加/减1,i+; 与 +i; 相同;i-; 与 -i; 相同。若有引用时,注意区别。(重点)三、关系运算符和关系表达式:1、关系运算符: = = = !=2、二目运算符,
7、左结合性,注意优先级别。3、关系表达式的结果为:0(假)、1(真)。四、逻辑运算符和逻辑表达式:1、逻辑运算符:&(与) |(或) !(非)2、&、|是二目运算符,左结合性;! 是一目运算符,右结合性。注意优先级别。3、逻辑表达式在运算过程中,以0代表“假”,以非0代表“真”。逻辑表达式在运算结果中,以0代表“假”,以1代“真”。五、赋值运算符和自反赋值运算符及其表达式:1、变量 = 表达式,先求出右边表达式的值,然后把此值赋给等号左边的变量。2、存在隐式转换,赋值号右边的类型转换为等号左边的类型。3、自反赋值运算符:-=、+=、*=、/=、%=a-=b即a=a-b a+=b即a=a+b a*
8、=b即a=a*ba/=b即a=a/b a%=b即a=a%b例9:六、条件运算符和条件表达式:1、格式:表达式1 ? 表达式2 : 表达式3当表达式1的值为真时,此条件表达式的值为表达式2的值;否则,此条件表达式的值为表达式3的值。相当于:if(表达式1) 表达式2else 表达式3作用:利用条件运算符可以构成简单的选择结构。2、唯一的三目运算符。七、逗号运算符和逗号表达式:1、格式:表达式1,表达式2,表达式n2、逗号运算符的优先级别最低,最后一个表达式的值就是此逗号表达式的值。3、在许多情况下,使用逗号表达式的目的只是想分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值。4.
9、10 简单输入输出函数一、字符输出函数putchar:格式:putchar(ch);1、有参数,将字符变量或字符常量(包括转义字符常量)输出到标准输出设备(屏幕)上。2、一次只能输出一个字符,只能输出字符,不能输出数值。二、字符输入函数getchar:格式:ch=getchar( );1、无参数,从标准输入设备(键盘)上读入一个字符。2、空格、Tab、回车不再作为隐式分隔符。3、一次只能输入一个字符,只能输入字符,不能输入数值。例12:三、格式化输出函数printf:1、一般格式:printf(格式控制,输出表列);2、“格式控制”是用双引号括起来的字符串。由两部分组成:(1)格式说明:由“%
10、”和格式字符组成,总是由“%”字符开始。总结:short : %hd int : %d long : %ld char : %cfloat : %f double : %f(%lf) 字符串 : %sfloat:有7位有效数字,默认输出6位小数double:有16位有效数字,默认输出6位小数(2)普通字符:包括转义字符,原样显示。3、在“%”和格式字符之间可以加入一些可选的附加选项。其完整格式为:% - 0 m.n l/h 格式字符 -:输出数据左对齐。 0:在输出数据前加前导0,指定空位用0填充。 m.n:l m值:指定输出数据所占的宽度。如果指定的输出宽度不够,并不影响数据的完整输出。系统
11、会代之以隐含的输出宽度。如果指定的输出宽度多于实际的所需宽度,数据右对齐,左边补以空格。l n值:对于浮点型数据,n表示小数位数; 对于字符串,n表示截取的字符个数。 l/h:长度修饰符。四、格式化输入函数scanf:1、一般格式:scanf(格式控制,地址表列);2、“格式控制” 是用双引号括起来的字符串。由两部分组成:(1)格式说明:由“%”和格式字符组成,总是由“%”字符开始。总结:short : %hd int : %d long : %ld char : %c float : %f double : %f(%lf) 字符串 : %s(2)输入分隔符:可以是空格、逗号等。3、在“%”和格式字符之间可以加入一些可选的附加选项。其完整格式为:% m l/h 格式字符m:只能指定输入数据所占的宽度,不能指定n的值。l/h:长度修饰符。4、地址表列:各输入项之间用逗号隔开,各输入项只能是变量地址,不能是变量名。例13:注意事项:授课总结: