基本数据类型及其运算.ppt

上传人:牧羊曲112 文档编号:6559971 上传时间:2023-11-12 格式:PPT 页数:41 大小:386KB
返回 下载 相关 举报
基本数据类型及其运算.ppt_第1页
第1页 / 共41页
基本数据类型及其运算.ppt_第2页
第2页 / 共41页
基本数据类型及其运算.ppt_第3页
第3页 / 共41页
基本数据类型及其运算.ppt_第4页
第4页 / 共41页
基本数据类型及其运算.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《基本数据类型及其运算.ppt》由会员分享,可在线阅读,更多相关《基本数据类型及其运算.ppt(41页珍藏版)》请在三一办公上搜索。

1、第二章 基本数据类型及其运算,学习目标了解数据类型的一般概念,熟悉 C 语言中的基本数据类型熟悉 C 语言中常量与变量的概念,掌握定义常量与变量的方法掌握 C 语言中的基本运算掌握基本的输入输出函数的用法了解 C 语言操作符的优先级与结合性,2.1 C 语言的数据类型,数据类型的一般概念C 语言数据类型关系图常 量整型常量实型常量字符型常量与反斜杠字符常量字符串常量符号常量,数据类型的一般概念,确定了以值为元素的数据集值的可能范围,即定义域确定了操作(运算)集不同数据类型具有不同的操作集,不同数据类型类型间也可以进行混合运算规定了值的存储格式不同类型数据在计算机中存储格式不同,相同类型数据在不

2、同计算机与编译器下的存储格式也可能不同数据处理的基本对象常量与变量,均属于某种数据类型,C 语言数据类型关系图,整型常量,十进制表示以数字19开头的09序列,如9、876、55十六进制表示以“0 x”或“0X”开头的09、A/aF/f序列,如0 x55、0 x1F、0 x2a0 x5516=8510八进制表示以0开头的07序列,如0550558=4510,注意不要与十进制混淆!,实型常量,一般形式:小数表示法由整数部分、小数点与小数部分组成例:3.1416、2.718281828指数形式:科学计数法由尾数部分、字符E/e与指数部分组成例:3.14e3=3.14103、2.7E2=2.7102,

3、字符型常量与反斜杠字符常量,字符型常量以单引号括起来的单一字符,如A、c字符常量按照其在字符集(一般为 ASCII)中的编码值存储并参与运算反斜杠字符常量以开头,后跟字符或数字,用于表示一个特定含义的字符,例如n表示换行字符,称为转义字符序列常与普通字符混杂于某个字符串中,ASCII 码表,转义序列及其意义,字符串常量,字符串:以双引号括起来的一串字符例:“Tsinghua”、“Programming in C”字符串的长度:其中的字符数目长度n,占用n+1字节,最后一个字节存储NULL字符0例:“Tsinghua”占用9个字节,字符串常量与字符常量不同字符串至少占用一个字节,为什么?,符号常

4、量,宏定义#define指令:预处理命令例:#define PI 3.14一旦定义,可以代替常量使用可理解为对常量进行命名目的与意义增强程序可读性使用有意义的名字命名增强程序的可维护性将值定义为符号常量,则程序中仅需要修改一次,#include#define PI 3.14int main()float r,area;r=3.0;area=PI*r*r;printf(“%f”,area);return 0;,2.2 数据类型及变量,基本数据类型变量及变量的定义变量的初始化,基本数据类型,基本数据类型的分类字符型:char;整型:int;浮点型:float;双精度浮点型:double;无型:vo

5、id基本数据类型的长度(位数)和取值范围与计算机和 C 编译器有关整型二进制位数与CPU长度相同;字符单字节;浮点型4字节;双精度浮点型8字节修饰符有符号:signed;无符号:unsigned;短型:short;长型:long修饰除void之外的其他四种基本数据类型,整数的取值范围,浮点数与无型数据的取值范围,变量与变量的定义,变量的定义:在程序执行过程中,其值改变的量与常量的定义不同,常量在程序执行期间不可改变值系统为每个变量分配合适的存储空间,以存放其值保存待处理的数据,中间与最终运算结果变量的四个基本特征:VANT值(value):在任一时刻,每个变量均具有惟一值地址(address)

6、:每个变量均具有惟一地址,且除非其生命结束,地址不可更改名称(name):每个变量具有固定的名称或名字标识类型(type):每个变量均具有确定的类型,不可更改,变量的定义与使用示例,#include int main()char c;int x,y,z;unsigned long distance;float m;m=1.11;m=2*m;m=m+2.2;printf(“%fn”,m);return 0;,定义三个整型变量x,y,z,定义字符变量c,定义无符号长整型变量distance,定义浮点型变量m,对浮点型变量m进行赋值,计算过程中修改m的值,再次修改m的值,输出m的值(计算结果),变量

7、的初始化,在定义变量时设定初始值,char c=c;float x,y,z=4.53;double a=15.5,b=2.0;,将z初始化为4.53,x,y未初始化,将变量c初始化为c,ASCII值99,a,b均进行初始化,未初始化变量并不意味空值保持原先的位序列不变,可以参与运算,但没有意义,往往导致错误结果,2.3 运算符与表达式,运算符(操作符)与表达式概述混合类型数据的运算赋值语句与赋值表达式算术运算符与算术表达式关系运算符与关系表达式逻辑运算符与逻辑表达式位运算符其他运算符与表达式,运算符与表达式概述,表达式由操作符与操作数组成的序列,完成一系列的运算,得到最终的计算结果表达式结果的

8、数据类型由参与运算的操作数确定操作数常量、变量、函数调用、括号内的子表达式操作符种类繁多,意义丰富,功能强大:39个,46种优先级:15级,操作符及其优先级,混合类型数据的运算,混合类型数据运算表达式中的数据类型不可能总相同在实际运算前将两个操作数转换成同一数据类型类型转换隐式类型转换:系统自动进行基本原则:确保运算精度不会降低整数提升:从短型到长型,先有符号后无符号浮点数转换:从float到double再到long double显式类型转换:程序员手工进行可简化计算,提高程序效率格式:(类型标识符)表达式;例:b=c+(int)a;,赋值语句与赋值表达式,赋值表达式赋值操作符:优先级较低赋值

9、表达式的值:赋值操作符赋给目标变量的值例:while(c=getchar()!=EOF)/*/赋值语句以分号结束的赋值表达式格式:变量名=表达式;例:b=c+(int)a;赋值语句对左边变量名或等价的数组元素名实施写操作右边的表达式结果若与左边的类型不同,则先转换再赋值,此时可能导致数据精度的损失,复合赋值操作符,注意事项赋值操作符右边的子表达式作为整体参与运算例:y*=x+1 等价于 y=y*(x+1),算术运算符与算术表达式,基本算术运算符加(+)、减()、乘(*)、除(/)、余(%)递增递减运算符前缀:先递增递减,再参与运算后缀:先参与运算,再递增递减操作数必须为变量,而不能为其他表达式

10、算术表达式例:x=(b+sqrt(b*b 4*a*c)/(2*a),关系运算符与关系表达式,关系运算符大于()、等于(=)、小于(=)、不等于(!=)关系表达式关系运算符与两个操作数构成的表达式运算结果:真或假C语言以0表示假,以非0表示真(经常以1表示)示 例例:x=y,a b常用于条件语句:if(grade 60)printf(“Failn”);,逻辑运算符与逻辑表达式,逻辑运算符逻辑与(&)、逻辑或(|)、逻辑非(!)逻辑表达式逻辑运算符与一个或两个操作数构成的表达式运算结果:真或假x&y:若x、y均为真,则结果为真,否则为假x|y:若x、y均为假,则结果为假,否则为真!x:若x为真,则

11、结果为假,否则为真复杂逻辑表达式例:x y|a b&3=2 计算时一定要留意运算符的优先级,拿不准时加括号,位运算符,位运算符:以单独的二进制位为操作对象按位与(&)、按位或(|)、按位异或()、按位取反()、左移()位运算表,按位与运算,按位与:用以屏蔽某些位或取出某些位示例:x=x&y,其中x原为0 xB675,y原为0 x00FFx为16位,取出低8位,高8位置0,x=0 xB675,y=0 x00FF,x=x&y,测试指定位是否为0测试左边第4位是否为0:y=x&0 x1000;结果:y为0表示测试位为0,否则为1,按位或运算,按位或:用以打开某些位(将其置1)示例:x=x|y,其中x

12、原为0 xB675,y原为0 x00FFx为16位,低8位全置1,高8位不变,x=0 xB675,y=0 x00FF,x=x|y,按位异或运算,按位异或:用以判断两个操作数相应位是否相异示例:x=x y,其中x原为0 xB675,y原为0 x00FFx为16位,低8位取相反值,高8位不变,x=0 xB675,y=0 x00FF,x=x y,按位异或的本质:按位进行的不进位加法按位异或既可使各位翻转,也可使各位保持,按位取反运算,按位取反:将单个操作数的所有位全部翻转示例:x=x,其中x原为0 xB675,x=0 xB675,x=x,移位运算符,(左移):相当于乘2n,原高位舍弃,低位补0格式:

13、操作对象 左移位数例:y=x n,其中x原为0 xB675,n为2,x=0 xB675,y=x n,(右移):相当于除2n,原低位舍弃,高位补0(无符号数)或符号位(有符号数)格式:操作对象 右移位数例:y=x n,其中x原为0 xB675,n为2,x=0 xB675,y=x n,其他运算符与表达式,条件运算符与条件表达式格式:表达式1?表达式2:表达式3计算过程:先计算表达式1的值,若为真,则结果为表达式2的值,否则为表达式3的值例:x=(a b)?a:b;上例等价于:if(a b)x=a;else x=b;逗号运算符与逗号表达式以逗号连接的表达式计算过程:从左到右逐个计算各个子表达式,结果

14、为最后一个子表达式的值例:z=(x=m+n,y=m n,x/y);,2.4 基本输入输出函数,基本事实输入输出是语言与算法必须具备的功能C 语言本身没有输入输出语句或命令,输入输出需使用标准库函数基本输入输出函数原型位于头文件“stdio.h”中输入输出函数格式化输出函数格式化输入函数字符输入输出函数,格式化输出函数 printf(),格式化输出函数 printf()调用格式printf(“输出格式描述字符串”,输出项列表);例:printf(“age=%dn”,age);%y:格式转换说明符%d:十进制整数;%i:十进制整数;%f:浮点数;%e:指数形式的浮点数;%c:单个字符;%s:字符串

15、;%u:无符号整数;%x:十六进制整数;%o:八进制整数%m.ny:”m”表示以“%y”格式输出时,数据所占用的位数(场宽),“.n”可选,表示小数点后的位数,“”表示数据左对齐(缺省时,数据右对齐,前补空格),格式化输出示例,指出下述程序的运行结果,#include int main()int x,y,z;x=10;y=15;z=25;printf(“Results as follows:n”);printf(“x=%d,y=%d,z=%dn”,x,y,z);printf(“x+y=%dnx+y+z=%dn”,x+y,x+y+z);return 0;,Results as follows:x

16、=10,y=15,z=25x+y=25x+y+z=50,格式化输入函数 scanf(),格式化输入函数 scanf()调用格式scanf(“输入格式描述字符串”,输入项列表);例:scanf(“%d,%c”,说 明输入格式转换说明符与输出格式转换说明符相同用户在终端输入的数据逐一存放到输入项列表中变量所在的地址空间;对于普通变量,变量名前需添加取址操作符多个输入项的分隔:格式描述串中其他字符需在输入数据时一并输入;未分隔的两个输入项在输入数据时使用空格、Tab或回车键分隔,格式化输入示例,下述程序中的数据如何输入?,#include int main()char c,s10;int i;float x;scanf(“%d,%c,%f,%s”,10,a,3.14,hello,字符输入输出函数,getchar()功能:从键盘读取单个字符返回值:字符类型,可赋给字符类型变量例:char c;c=getchar();putchar(c)功能:向终端(一般为屏幕)输出单个字符参数c为待输出的字符类型变量,函数无返回值例:char c=c;putchar(c);,作 业,第41页:第二题(填空题)第5、6、13、14小题第42页:第三题(编程题)第1、4小题,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号