C语言程序设计基本数据类型及运算.pptx
《C语言程序设计基本数据类型及运算.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计基本数据类型及运算.pptx(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1本章主要内容本章介绍C语言的基础,包括:数据类型运算符和表达式均是程序设计的基本知识为什么讨论这些知识?通常程序要对数据进行操作处理:处理的对象是数据通过运算符和表达式进行操作第1页/共61页2例如:【例2.1】计算圆的面积,半径为 5 cm。程序如下:程序如下:main()float r r,areaarea;r r=5 5;areaarea=3.143.14*r r*r r;printf(%fn,areaarea);运算结果是输出运算结果是输出圆的面积:圆的面积:78.50000078.500000程序中用到的数据:r、area、5、3.14对数据进行的运算:*、=例jc2_1第2页/共
2、61页3分析:计算机操作处理时,要完成以下工作:在内存中给半径在内存中给半径 r 和运算结果和运算结果 area 开辟存储空间,存放它们的值。开辟存储空间,存放它们的值。应该留多大的地方来存放它们的值?数据数据 5 和和 3.14 与与 r 、area 不同,它们是在编写程序时就给出确定的值,在运不同,它们是在编写程序时就给出确定的值,在运算过程中不会改变。算过程中不会改变。这样的数计算机怎么处理?对对整数 5 和和小数3.14 ,计算机,计算机存放时是否有区别?涉及数据类型的基本知识第3页/共61页4C语言的数据类型 C数据类型数组类型结构体类型共用体类型枚举类型整型整型 字符型字符型 实实
3、型型(浮浮点点型型)空类型空类型单精度型单精度型 双精度型双精度型 基本类型基本类型指针类型构造类型本章讨论本章讨论基本类型数据基本类型数据第4页/共61页52.1.1 整型数据 1整型数据的类型基本整型数据 intint,分配 2 2 ByteByte短整型数据 short intshort int,分配 2 2 ByteByte长整型数据 long intlong int,分配 4 4 ByteByte整型数据均以二进制补码二进制补码形式存储问题:问题:为什么要采用补码?为什么要采用补码?如何表示?如何表示?第5页/共61页6计算机中正、负数的表示 例如:例如:109 109(110110
4、1)(1101101)2 2要区别:要区别:109 109 和和 109 109 方法是:方法是:将符号也数码化即:正的符号 用 0 表示 负的符号 用 1 表示 计算机中的数表示方法是:计算机中的数表示方法是:符号位符号位二进制数值二进制数值(以以 8bit 为例为例)109 110 1101 0110 1101109 110 1101 1110 1101第6页/共61页7问题:计算机计算复杂化例如计算:例如计算:(-19-19)+(+22+22)1001 0011+001 0011+0001 0110001 0110解决的方法是:解决的方法是:使用使用反码反码或或补码补码的表示方法(按前述
5、的表示方法(按前述表示的编码称为表示的编码称为原码原码),即能将减法一律),即能将减法一律转换为加法。转换为加法。需要判断符号是否相同:需要判断符号是否相同:如果相同,结果符号不变,并进行绝对值相加如果相同,结果符号不变,并进行绝对值相加如果相同,结果符号不变,并进行绝对值相加如果相同,结果符号不变,并进行绝对值相加如果不同,结果取绝对值大的数的符号,并进如果不同,结果取绝对值大的数的符号,并进如果不同,结果取绝对值大的数的符号,并进如果不同,结果取绝对值大的数的符号,并进行绝对值相减行绝对值相减行绝对值相减行绝对值相减第7页/共61页8原码、反码和补码正数:原码、反码、补码相同符号位为0,数
6、值为对应的二进制数。109 01101101原原=01101101反反=01101101补补l l负数负数:原码原码符号位为符号位为1 1,数值为绝对值的二进制,数值为绝对值的二进制数。数。10911101101原反码反码符号位为符号位为1 1,数值为绝对值的二进制,数值为绝对值的二进制数各位变反。数各位变反。10910010010反 补码补码符号位为符号位为1 1,数值为绝对值的二进制,数值为绝对值的二进制数各位变反加数各位变反加1 1。10910010011补第8页/共61页92.有符号和无符号整型数据有符号的整型数据 signed intsigned int无符号的整型数据 unsign
7、ed intunsigned int区别是将最高位看作符号位还是数据位例如:例如:1111 1111 1010 1000作为作为有符号数有符号数使用时,最高为符号位使用时,最高为符号位为负数,值是:为负数,值是:-88(再求一次补)(再求一次补)作为作为无符号数无符号数使用时,最高为数据位使用时,最高为数据位为无符号的数,值是:为无符号的数,值是:65448第9页/共61页10例如:main()unsigned int m;m=65448;printf(nm=%dn,m);printf(m=%un,m);例jc2_a输出结果:m=-88m=65448按有符号数输出按无符号数输出第10页/共61
8、页11整型数据的类型及规定 方括号表示可选项方括号表示可选项int 分配2 Byte,long分配4 Byte类型名称类型名称类型名称类型名称类型符类型符类型符类型符bitbit取值范围取值范围取值范围取值范围整型整型整型整型(短整型短整型短整型短整型)signed signed int int signed signed shortshort int int 1616-2 215152 21515-1-1(-32768(-3276832767)32767)无符号整型无符号整型无符号整型无符号整型unsignedunsigned int int16160 0 2 21616-1-1(0(065
9、535)65535)长整型长整型长整型长整型 signed signed longlong int int3232-2-231312 23131-1-1无符号长整型无符号长整型无符号长整型无符号长整型 unsigned longunsigned long int int32320 0 2 23232-1-1第11页/共61页122.1.2 实型数据 1实型数据的类型 单精度实型数据 float,分配4 Byte双精度实型数据double,分配 8 Byte2实型数据的存储 单精度实型单精度实型指数部分指数部分小数部分小数部分 小数的符号位指数的符号位第12页/共61页13实型数据的类型及规定
10、C C标准并未具体规定各种实型数据所占字节数,也不标准并未具体规定各种实型数据所占字节数,也不规定具体小数和指数部分的位数。规定具体小数和指数部分的位数。一般而言,小数部分位数多,数据表示的有效数字多,一般而言,小数部分位数多,数据表示的有效数字多,精度就高;而指数部分位数多,则表示的数据范围更精度就高;而指数部分位数多,则表示的数据范围更大。大。有效数字的意义?类型类型类型类型类型符类型符类型符类型符ByteByte绝对值的范围绝对值的范围绝对值的范围绝对值的范围有效数字有效数字有效数字有效数字单精度型单精度型单精度型单精度型 floatfloat4 41010-37 -37 10 1038
11、387 78 8 位位位位双精度型双精度型双精度型双精度型 doubledouble8 81010-307-307 101030830815151616位位位位例例例例jC2_ajC2_ajC2_ajC2_a第13页/共61页142.1.3 字符型数据 字符型数据字符型数据char,分配分配 1 Byte 字符型数据是指字母、数字、各种符号等用字符型数据是指字母、数字、各种符号等用ASCIIASCII值表示的字符值表示的字符 例如例如 a a 是一个是一个charchar类型数据,称作字符常量,存储:类型数据,称作字符常量,存储:0 1 1 0 0 0 0 12.1.4 2.1.4 空类型l
12、l空类型voidl l通常与指针或函数结合使用 第14页/共61页152.2 常量、变量与标准函数 主要内容:常量变量标准库函数第15页/共61页162.2.1 常量 在运行程序的过程中值保持不变的量1整型常量 十进制十进制:09八进制八进制:07,以 0 0开头十六进制十六进制:09,AF/af,以 0 0 x x或 0 0X X 开头例如:100 -8 0 +123100 -8 0 +123010 024 0100 073010 024 0100 0730 0 x38 0 x10 0X10 0XFF 0 x0ax38 0 x10 0X10 0XFF 0 x0a第16页/共61页171.整型
13、常量整型常量的类型:根据值大小默认类型。整型常量后面加l l或L L,则认为是long int型 例如:123L、0L、432l、0 x100l注意:l l十六进制常量中可以使用大写字母AF,也可以使用小写字母af。l l八进制常量中不能出现数字 8 或 9例如:018、0921非法第17页/共61页182.实型常量 十进制形式十进制形式 1.0 1.+12.0 -12.0 0.0指数形式指数形式 1e3 1.8e-3 -123E-6 -.1E-3等价于:等价于:1101103 3 1.810 1.810-3-3 -1231012310-6-6 -0.1100.110-3-3指数只能是整数,而
14、尾数则可以是整数也可以是小数,无论指数或尾数均不能省略例如:1 1e e、E.5E.5、E-3E-3 非法实型常量的类型:默认为doubledouble型,后面加F F(或f f),则强调表示该数是float类型例如:3.5f f、1e2F F 第18页/共61页193.字符型常量 可视字符常量 单引号括起来的单个可视字符例如:a、A、+、3、等 转义字符常量单引号括起来的 与可视字符可视字符组合,例如:0000字符串结束标志字符串结束标志字符串结束标志字符串结束标志 n n回车换行回车换行回车换行回车换行 t t跳到下一个输出位置跳到下一个输出位置跳到下一个输出位置跳到下一个输出位置 双引号
15、字符双引号字符双引号字符双引号字符 dddddd dddddd为为为为1 1到到到到3 3位八进制数所代表的字符位八进制数所代表的字符位八进制数所代表的字符位八进制数所代表的字符 xhhxhh hhhh为为为为1 1到到到到2 2位十六进制数所代表的字符位十六进制数所代表的字符位十六进制数所代表的字符位十六进制数所代表的字符第19页/共61页204.字符串常量 用双引号括起的一个字符序列例如:ABC、123、a、nt nGood morning字符串常量的长度:所包含的字符个数 字符串常量的存储方式:n nGG o o o o d dmm o o r rn ni i n n g g 00a a
16、00所占存储单元数:串长度1例如:字符串结束标记第20页/共61页215.符号常量 以标识符来代表的常量以标识符来代表的常量事先编译预处理命令事先编译预处理命令definedefine定义定义编译时先由系统替换为它所代表的常量,再进编译时先由系统替换为它所代表的常量,再进行编译行编译例如:#define define LENLEN 2.52.5main()main()float a,b;float a,b;a=2*3.14*a=2*3.14*LENLEN;b=3.14*b=3.14*LENLEN*LENLEN;printf(a=%f,b=%fn,a,b);printf(a=%f,b=%fn,a
17、,b);定义符号常量定义符号常量使用符号常量使用符号常量编译前系统进行替换编译前系统进行替换第21页/共61页225.符号常量main()main()float a,b;float a,b;a=2*3.14*a=2*3.14*2.5;b=3.14*b=3.14*2.5*2.5;printf(a=%f,b=%fn,a,b);printf(a=%f,b=%fn,a,b);define是编译预处理命令,必须以“#”开头编译预处理命令在第7章讨论。替换为替换为第22页/共61页232.2.2 变量 1.变量的有关概念 在程序运行过程中,其值改变的数据,称为变量,变量用标识符表示,称为在程序运行过程中,
18、其值改变的数据,称为变量,变量用标识符表示,称为变量名。变量必须变量必须“先定义后使用先定义后使用”系统为变量分配存储单元,存储变量的值。系统为变量分配存储单元,存储变量的值。编写程序时通过变量名来存、取编写程序时通过变量名来存、取变量值。a a510510变量值变量值为变量分配的为变量分配的存储单元存储单元变量名变量名例如:有变量a a它的值是5 51010第23页/共61页242.变量定义变量定义的一般格式:变量定义的一般格式:数据类型说明符 变量列表;例如:int i,j;int i,j;long k,m;long k,m;float x,y;float x,y;char ch1,ch2
19、;char ch1,ch2;必须使用合法的标识符作变量名必须使用合法的标识符作变量名不能使用关键字为变量命名不能使用关键字为变量命名第24页/共61页253.变量的初始化:允许在说明变量的时候对变量赋初值。允许在说明变量的时候对变量赋初值。例如:int a=5,b=10+2;double x=23.568,y;double x=23.568,y;char ch1=a,ch2=66,ch3=142;char ch1=a,ch2=66,ch3=142;表示定义变量并对变量存储单元赋值。表示定义变量并对变量存储单元赋值。错误的初始化:int a=3+b,b=5;float m=n=23.16;第25
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 基本 数据类型 运算
限制150内