《数据类型第二章学习教案.pptx》由会员分享,可在线阅读,更多相关《数据类型第二章学习教案.pptx(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据类型第二章数据类型第二章第一页,共56页。共共 5656页页 第第 2 2 页页数据类型数据类型构造类型指针(zhzhn)类型空类型(lixng)(无值类型(lixng))void枚举类型 enumenum数组类型结构类型 structstruct联合类型 unionunion基本类型基本类型整型整型 intint字符型字符型 charchar实型(浮点型)实型(浮点型)单精度实型单精度实型 floatfloat双精度实型双精度实型 doubledoubleC语言的数据类型有 3-1 数据(shj)与数据(shj)类型第1页/共56页第二页,共56页。共共 5656页页 第第 3 3 页页
2、关于类型的含义(hny)1.不同类型数据在内存中占不同的存储空间,且采取不同的存储形式2.不同类型数据对应不同的取值范围3.数据类型确定了允许对其进行的操作 3-1 数据(shj)与数据(shj)类型(完)第2页/共56页第三页,共56页。共共 5656页页 第第 4 4 页页 3-2 C语言的基本(jbn)数据类型 按照数据在程序中的取值:值保持(boch)不变-常量 x=2 *y值随程序运行变化-变量基本类型基本类型整型整型 intint字符型字符型 charchar实型(浮点型)实型(浮点型)第3页/共56页第四页,共56页。共共 5656页页 第第 5 5 页页一、常量(chnglin
3、g)1.在程序运行中,其值保持不变2.表示(biosh)方法:整型 100,125,-100实型 3.14,0.125字符(z f)型 a,b字符(z f)串常量“string”3-2 C语言的基本数据类型(续)3.符号常量:#define PI 3.14159用指定的标识符表示某个常量3.2.1 常量与变量第4页/共56页第五页,共56页。共共 5656页页 第第 6 6 页页二、变量(binling)3.变量(binling)通过变量(binling)名标识1.在程序运行中,值发生变化2.必须(bx)先定义,再使用int a,b;类型 变量名表memorya83uu变量名和内存中的存储单元
4、变量名和内存中的存储单元相对应。编写程序时通过变量相对应。编写程序时通过变量名来存、取存储单元。名来存、取存储单元。3-2 C语言的基本数据类型(续)b第5页/共56页第六页,共56页。共共 5656页页 第第 7 7 页页(1)以字母(zm)或下划线开头(2)不能用系统(xtng)中的关键字作为变量名规 定int a,b A123,_b;int a;.A=5;4.有关(yugun)变量名的规定(3)变量名中的字母是区分大小写的。sum、stu_name、_age、Lts_1_2、a232c、x.y、start+9、c2.0 NAME name 表示两个不同的标识符。不提倡大小写混合使用 3-
5、2 C语言的基本数据类型(续)第6页/共56页第七页,共56页。共共 5656页页 第第 8 8 页页一、整型常量(chngling)有三种(sn zhn)表示形式十进制 八进制十六进制(sh li jn zh)1234加前导0 01234,0125加前导0 x 0 x123,0 xffff整型数据包括整型常量和整型变量,整型数据以二进制补码形式存储 例 100100、-8-8、0 0;010010、024024;0 0 x38x38、0X1F0X1F 3-2 C语言的基本数据类型(续)3.2.2 整型数据第7页/共56页第八页,共56页。共共 5656页页 第第 9 9 页页1.定义(dng
6、y)形式共六种基本(jbn)整型长整型短整型无符号整型无符号短整型无符号长整型 int long intshort intunsigned int2.占存储空间一个(y)变量2422unsigned short unsigned long24 3-2 C语言的基本数据类型(续)444444TCVC第8页/共56页第九页,共56页。共共 5656页页 第第 1010 页页3.整型变量(binling)的取值范围 类型说明符类型说明符 长度长度(chngd)(chngd)数的范围数的范围基本型基本型 int 2 int 2字节字节 -32768 -327683276732767短整型短整型 sho
7、rt 2 short 2字节字节 -215 -215215-1 215-1 长整型长整型 long 4 long 4字节字节 -231 -231231-1231-1无符号整型无符号整型 unsigned 2 unsigned 2字节字节 0 06553565535无符号短整型无符号短整型 unsigned short 2 unsigned short 2字节字节 0 06553565535无符号长整型无符号长整型 unsigned long 4 unsigned long 4字节字节 0 0(232-1232-1)3-2 C语言的基本(jbn)数据类型(续)TC环境中第9页/共56页第十页,共
8、56页。共共 5656页页 第第 1111 页页int型数的表示(biosh)范围:存储长度16位二进制(2Byte)0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1=2=215-1=32767-1=327670 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 1 10 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0
9、 0 0 0 0 0 0 0 0 0 0 0 0 0=1=1=3上面(shng min)的数再加1是多少?=-215=-32768例补码(b m)表示intint型表示数的范围型表示数的范围:-32768 327674.输入输出形式:%d,%ld,%x,%o,%u 3-2 C语言的基本数据类型(续)第10页/共56页第十一页,共56页。共共 5656页页 第第 1313 页页例如(lr)main()int a,b;a=023;b=0 x12;printf(%d,%dn,a-1,b);运行(ynxng)结果:18,18 (023为八进制数23,0 x12为十六进制12)类型(lixng)标识符格
10、式说明符第12页/共56页第十三页,共56页。共共 5656页页 第第 1414 页页包括实型常量(chngling)和实型变量一、实型常量(chngling)有两种表示形式(xngsh)小数指数0.1233e-3实型常量只能用十进制形式表示,不能用八进制和十六进制1 1e3e3、1.8e-31.8e-3、-123e-6-123e-6、-0.1e-3-0.1e-3e5e5、1e-3.21e-3.2、e e、.e-03.e-03 3.2.3 实型数据 3-2 C语言的基本数据类型(续)字母e之前必须有数字,且e后面的指数必须为整数,规范化指数形式:在e之前的小数点左边,应有一位(且只能有一位)非
11、零数字第13页/共56页第十四页,共56页。共共 5656页页 第第 1515 页页1.定义(dngy)形式共两种单精度(jn d)双精度(jn d)floatdouble2.占存储空间一个(y)变量48二、实型变量实型常量不区分单精度和双精度 3-2 C语言的基本数据类型(续)第14页/共56页第十五页,共56页。共共 5656页页 第第 1616 页页3.变量(binling)的取值范围4.输入输出形式(xngsh)%f 3-2 C语言的基本(jbn)数据类型(续)类型类型 类型类型标识符标识符 占用字占用字节数节数能表示数值的能表示数值的有效数字有效数字 数值范围数值范围 单精度单精度实
12、型实型 Float 47位位 1038 双精度双精度实型实型 Double 81516位位 10308 第15页/共56页第十六页,共56页。共共 5656页页 第第 1717 页页实型数据(shj)在计算机中以指数形式存储单精度变量一个字节存放指数部分,三个字节存数值部分 二进制二进制 7 7位位 二进制二进制 23 23位位单精度实型单精度实型2-23=|2-23=|尾数尾数(wish)|=1-(wish)|72a=b=5*运算结果(ji gu)的类型X=5+8a100单目运算符的优先级高于双目运算符单目运算符从右向左结合双目运算符从左向右结合第30页/共56页第三十一页,共56页。共共
13、5656页页 第第 3232 页页3.3.2 算术(sunsh)运算符和算术(sunsh)表达式1.共有(n yu)5个:+,-,*,/,%2%运算(yn sun)只适用于整型数单目:-双目:*,/,%双目:+,-4.优先级:5.结合性:从左向右 3.“-”作为 负号时为单目取模(求余数)a=10%4a的值为2 3.3 算术运算与赋值运算(续)a=10/4 时a=2a=10.0/4 时 a=2.5第31页/共56页第三十二页,共56页。共共 5656页页 第第 3333 页页3.3.3 自增、自减运算符1.变量(binling)自身加(减)1 k=k+1k+先使用(shyng)变量k的值,再加
14、 1+k 先加1,再使用(shyng)变量 k的值 k=k-1k-先使用变量k的值,再减 1-k 先减1,再使用变量k 的值 3.3 算术运算与赋值运算(续)k=3;printf(“%d”,k+);输出 3 后,k 的值为 4i=3;printf(“%d”,+i);输出4s=0;k=3;s=s+k+;s的值为3,k 的值为 4s=0;k=3;s=s+k;s的值为4,k 的值为 4s=s+kk=k+1k=k+1s=s+kprintf(“%d”,k)K=k+1;K=k+1;printf(“%d”,d)第32页/共56页第三十三页,共56页。共共 5656页页 第第 3434 页页2.只能用于变量(
15、binling),不能用于表达式和常量3.优先级:高于双目算术(sunsh)运算符4.结合(jih)性:从右向左(i+k)+,-3i=3;k=i+i+i+;3.3 算术运算与赋值运算(续)第33页/共56页第三十四页,共56页。共共 5656页页 第第 3535 页页 main()int a,b,s ;a=5;b=5;s=a+b;printf(“%d,%d,%dn”,a,b,s);s=a+b;printf(“%d,%d,%dn”,a,b,s);s=+a+b;printf(“%d,%d,%dn”,a,b,s);s=-a+b;printf(“%d,%d,%dn”,a,b,s);s=a-+b;pri
16、ntf(“%d,%d,%dn”,a,b,s);s=a+b;printf(“%d,%d,%dn”,a,b,s);3.3 算术(sunsh)运算与赋值运算(续)第34页/共56页第三十五页,共56页。共共 5656页页 第第 3636 页页s=a +b;s=a+b;s=+a+b;s=-a +b;s=a-+b;s=a +b;a=5,b=55+5=10s 3.3 算术(sunsh)运算与赋值运算(续)a5676555+5=106+5=116+5=117+5=125+5=10b555555101111121010s=a+b;a=a+1a=a+1;s=a+b;a=a-1;s=a+b;s=a+ba=a-1;
17、第35页/共56页第三十六页,共56页。共共 5656页页 第第 3737 页页2.3.4 赋值运算符赋值表达式1.将一个常量或一个表达式的值赋给一个变量(binling)称为赋值x=5 y=x+10 2.可以(ky)将一个实型赋给一个整型,或将一个整型赋给一个实型int x,x=5.3;x的值为 5float y,y=5;y的值为 5.000000 3.3 算术(sunsh)运算与赋值运算(续)3.赋值运算的优先级比算术运算低4.赋值运算的结合性从右向左X=y=5第36页/共56页第三十七页,共56页。共共 5656页页 第第 3838 页页2.3.5 组合(zh)赋值运算符和组合(zh)赋
18、值表达式x=x+n x+=n赋值运算符两侧(lin c)出现相同的变量 3.3 算术(sunsh)运算与赋值运算(续)x=x+nx=x-nx=x*nx=x/nx=x%nx+=nx-=nx*=nx/=nx%=n算术运算与赋值运算相结合X与n均为整数n 为常数第37页/共56页第三十八页,共56页。共共 5656页页 第第 3939 页页main()int a,b,c,d;a=2,b=5,c=6,d=10;a+=b;b-=c;c*=d;d/=a;a%=c;printf(“%d,%d,%d,%dn”,a,b,c,d);7,-1,60,1 3.3 算术(sunsh)运算与赋值运算(续)2a5b610c
19、d7-1601第38页/共56页第三十九页,共56页。共共 5656页页 第第 4141 页页2.4 关系(gun x)运算与逻辑运算l关系运算和逻辑运算经常作为条件(tiojin)语句和循环语句中的条件(tiojin),其结果为一逻辑值 A和 B中至少(zhsho)有一个大于 C如何用C语言描述 A和 B全部大于 CA为不大于100 的 偶 数关系运算是一种比较运算,将两个值(表达式)进行比较,判断比较的结果是否符合给定的条件关系运算关系运算逻辑运算逻辑运算第40页/共56页第四十一页,共56页。共共 5656页页 第第 4242 页页一、关系(gun x)运算符大于 ,大于等于(dngy)
20、=,小于 ,小于等于(dngy)bc第41页/共56页第四十二页,共56页。共共 5656页页 第第 4343 页页2.关系表达式的结果(ji gu)是一个逻辑值,根据关系是否满足,分别取 1,或 0二、关系(gun x)表达式1.1.关系运算关系运算(yn sun)(yn sun)符与运算符与运算(yn sun)(yn sun)分量构成关系表达式分量构成关系表达式int i=1,j=7,a;a=i+(j%4!=0)a的值?结果:a=22.4 关系运算与逻辑运算(续)3.使用关系表达式应注意1)数学上,判断x是否在区间 a,b 时,习惯上写成a=x=b,但在C 中,必须写成 a=x&x0 的值
21、为逻辑 1第42页/共56页第四十三页,共56页。共共 5656页页 第第 4444 页页1.0/3.0*3.0=1.0的逻辑值为03)当判断两个(lin)浮点数是否相等时,由于存储上的误差,可能会有错误的结果,例如:数学上:恒等式1.0/3.0 *3.0=1.04)关系表达式的结果(ji gu)可以当成整型数int a=3,b=5,c=7,d;d=a c逻辑(lu j)117逻辑0d的值为02.4 关系运算与逻辑运算(续)第43页/共56页第四十四页,共56页。共共 5656页页 第第 4545 页页2.4 关系(gun x)运算与逻辑运算(续)2.4.2 逻辑(lu j)运算符与逻辑(lu
22、 j)表达式一、逻辑(lu j)运算符1.有三个&(与):两边为1,结果为1|(或):两边有一个为1,结果为1!(非):非1为0,非0为12.优先级:!的优先级高于&和|逻辑运算与其他运算相比:非的优先级最高,与和或低于其他。3.结合性:与和或是从左向右,非是从右向左第44页/共56页第四十五页,共56页。共共 5656页页 第第 4646 页页二 、逻辑(lu j)表达式2.表达式的值为逻辑(lu j)的1和0,表示真与假任何非零实数(shsh)均可作为逻辑上的1例:a=5,b=7,c=4,d=3x=(a+b)(c+d)&(da)先做算术运算,再做关系判断,将最后结果赋给x1.用逻辑运算符将
23、关系运算表达式或逻辑量连接起来构成逻辑表达式2.4 关系运算与逻辑运算(续)5 2 7 8从左向右运算(52)逻辑值为1 (17)逻辑值为0 (08)逻辑值为0整个表达式的值为 0第45页/共56页第四十六页,共56页。共共 5656页页 第第 4747 页页3.在逻辑表达式中,并不是所有(suyu)的逻辑运算都必须执行,如果&的一边已经为0,结果一定为 0,如果|的一边已经为 1,结果一定为 1(1)a&b&c a为非0时,再判断 b,a,b均为非0,再判断c(2)a|b|c,若a为非0,不必(bb)判断 b和 c,结果一定为 1 2.4 关系(gun x)运算与逻辑运算(续)已知:a=1,
24、b=2,c=3,d=4,m=1,n=1 执行(m=ab)&(n=cd)之后 :m=?n=?由于 ab的值为 0,m=0不再判断(n=cd)的值,因此,n 维持原有的值m=0n=1第46页/共56页第四十七页,共56页。共共 5656页页 第第 4848 页页3.4 关系(gun x)运算与逻辑运算(续)3.4.3 条件(tiojin)运算符与条件(tiojin)表达式三、条件(tiojin)运算符C语言中唯一的一个三目运算符X=(表达式1)?(表达式2):(表达式3)将条件语句化成赋值语句1.格式判断表达式1的值,若为非0,将表达式2的值赋给x,否则,将表达式3的值赋给x 2 功能:x=(ab
25、)?a:b 当 a=9,b=5时,x=9条件运算要求有三个运算分量,并且不论条件是否成立,都必须是为同一个变量赋值第47页/共56页第四十八页,共56页。共共 5656页页 第第 4949 页页3 条件(tiojin)运算符的优先级:高于赋值,低于其他4 结合(jih)性:从右向左z=(ab)?a:(ad)?c:d5 数据类型可以(ky)不同:xy?a:b执行:int x=10,y=9;int a,b,c;a=(-x=y+)?-x:+y;b=x+;c=y;后a,b,c?a,b,cA)9,9,9B)8,8,10C)8,10,9D)1,11,10X为9y为10X为83.4 关系运算与逻辑运算(续)
26、第48页/共56页第四十九页,共56页。共共 5656页页 第第 5252 页页一、逗号(duho)运算符(表达式 1,表达式 2,表达式 3,表达式 n)用于连接(linji)几个表达式二、求解(qi ji)过程顺序求解几个表达式三、优先级逗号运算符的优先级最低四、结合性从左向右五、逗号表达式逗号表达式的值为最后一个表达式的值(表达式n 的值)X=(a=4*5,a*2),a+6)a为?x为?3.6 其它运算3.6.1 逗号运算符第51页/共56页第五十二页,共56页。共共 5656页页 第第 5353 页页 3.7 混合运算(yn sun)及数据类型转换 不同数据类型需先转换成同一(tngy
27、)类型,然后进行运算自动进行-隐式转换强制进行-显式转换一、隐式转换(算术转换)优先级低的向优先级高的转换double floatlong unsigned int char,shortint i;float f;double d;long e;表达式:10+a+i*f-d/e 的结果为:double第52页/共56页第五十三页,共56页。共共 5656页页 第第 5454 页页二、显式转换(zhunhun)(强制转换(zhunhun))(int)(10-+a+i*f-d/e)将该结果强制(qingzh)转换为整型习题(xt)3-12中:int i;float f;(int)f%i取模运算要求
28、运算分量是整数,所以先将 f 转换为整形,再做%运算 3.7 混合运算及数据类型转换(完)三、赋值转换 赋值符号右边的类型向左边的转换int x;float y=5.3;x=y;int x=5;float y;y=x;第53页/共56页第五十四页,共56页。共共 5656页页 第第 5555 页页一 、C中的基本数据类型,每一种类型的定义方式(关键字),在存储(cn ch)空间中所占的字节数,存储(cn ch)形式,取值范围。二、C中的运算(yn sun)符的几个要点(功能,与运算(yn sun)分量的关系,优先级 ,结合性,运算(yn sun)结果的类型)。三、算术(sunsh)运算符中的%只使用在int类型。四、自增,自减运算的特点,灵活使用k+,+k。五、复合的赋值运算规则。六、逗号运算表达式的值是最后一个表达式的值七、不同类型数据转换时的优先顺序八、算术运算,关系运算,赋值运算,逗号运算的优先级第54页/共56页第五十五页,共56页。共共 5656页页 第第 5656 页页十、常用(chn yn)的常量表示方法 整数的十进制 100 八进制 0123 十六进制 0 xf3d 实数的小数,指数形式 字符常量 a,字符串常量“A ”九、常用(chn yn)的转义字符的特点十一、单目运算,双目运算的优先级和结合性特点第55页/共56页第五十六页,共56页。