第2章C语言数据类型课件

PPT
  • 阅读 37 次
  • 下载 0 次
  • 页数 37 页
  • 大小 774.188 KB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
第2章C语言数据类型课件
可在后台配置第一页与第二页中间广告代码
第2章C语言数据类型课件
可在后台配置第二页与第三页中间广告代码
第2章C语言数据类型课件
可在后台配置第三页与第四页中间广告代码
第2章C语言数据类型课件
第2章C语言数据类型课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 37
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
文本内容

【文档说明】第2章C语言数据类型课件.ppt,共(37)页,774.188 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-44640.html

以下为本文档部分文字说明:

C语言教学幻灯片版第二章数据描述1第二章数据类型、运算符、及表达式2.1基本数据类型2.2常量与变量2.3运算符与表达式2.4数据类型转换C语言教学幻灯片版第二章数据描述22.1基本数据类型什么是数据类型?所谓数据类型就是一组性质相同

的值的集合,以及定义于这个值集合上的一组操作的总称。数据类型决定:数据占内存的字节数、数据的取值范围和其上可进行的操作。数据类型是按被定义数据的性质、表示形式、占据存储空间的多少及构造特点来划分的。C语言教学幻灯片版第二

章数据描述3•数据类型总表C数据类型基本类型构造类型指针类型空类型void字符类型char枚举类型enum整型实型单精度型float双精度型double数组结构体struct共用体union短整型short长整型long整型int2.1基本数据类型C语言教学幻

灯片版第二章数据描述42.1基本数据类型2.1.1整型数据1、整型数据的三种表达形式:(1)十进制形式:与数学上的整数表示相同;例如:12,-100,0(2)八进制形式:在数码前加数字0;例如:012=1*81+2*80=10(十进制)(3)十六进制形式:在数码前加0X(数字0和字母X)。

例如:0x12=1*161+2*160=18(十进制)注意:*八进制的数码范围为0~7;018*十六进制的数码除了数字0~9外,还使用英文字母a~f(或A~F)表示10~15。如:0x1e√C语言教学幻灯片版第二章数据描述52.1基本数据类型2、整型数据的分类:根据数据所占的二进制

位数分为:(1)基本型:以int表示(2)短整型:以short表示(3)长整型:以long表示同样存储长度的数据又分无符号型(unsigned)和有符号型(signed)故可组合出六种类型:有符号基本类型:[signed]int无符号基本类型:unsignedint有符号短整型:[s

igned]short[int]无符号短整型:unsignedshort[int]有符号长整型:[signed]long[int]无符号长整型:unsignedlong[int]C语言教学幻灯片版第二章数据描述62.1基本数据类型数据类型类型

说明关键字所占位数取值范围有符号短整型[signed]short[int]16-32768~32767即-215~(215-1)无符号短整型unsignedshort[int]160~65535即0~(216-1)有符号基本整型[signed]int16

-32768~32767即-215~(215-1)无符号基本整型unsigned[int]160~65535即0~(216-1)有符号长整型[signed]long[int]32-2147483648~21474836

47即-231~(231-1)无符号长整型unsignedlong[int]320~4294967295即0~(232-1)3、整型数据的取值范围C语言教学幻灯片版第二章数据描述72.1基本数据类型2.1.2实型数据1、实型数据的两种表示形式:(1)十进制小数形式:由数字和小数点组成;

例如:3.4,4.,.3。(2)指数形式:“十进制小数”+“e(或E)”+“十进制数整数”。例如:12.5e-6表示12.5×10-6。注意:小数点不能单独出现;0.√.0√.e或E的两边必须有数,且其

后面必须为整数;如:6E0.2e5C语言教学幻灯片版第二章数据描述8数据类型类型说明关键字占用字节取值范围精度(位)单精度浮点型float4-3.4×10-38~3.4×10387双精度浮点型double8-1.7×10-308~1.7×10308152.1基本数据类型2、实

型数据的分类及取值范围注意:要尽量避免将一个很大的数与一个很小的数相加或相减,否则就会“丢失”小的数C语言教学幻灯片版第二章数据描述92.1基本数据类型2.1.3字符型数据1、字符量(1)用单引号括起来的一个字符;如:‘A‟、‘1„、’?‟等。(2)用单引号括起来的由反斜杠(\)引

导的转义字符。字符型数据可分为字符量和字符串。例如:字符A的ASCII码为:65D(十进制)=41H(十六进制)=101Q(八进制)∴字符A可以表示为‘A’、’\x41’、’\101’。字符型数据与整型数据可以进行算术运算C语言

教学幻灯片版第二章数据描述102、字符型数据的分类:char和unsignedchar;3、字符型数据的值域:每个字符型数据在内存中占一个字节;包括ASCII字符表中的所有字符(可显示字符和非显示字符)。4、字符串:是用一对双引号括起来的字符序列。如:“SHANGHAI”,“AbcdeFG

Hijk”,“Howareyou”。2.1基本数据类型C语言教学幻灯片版第二章数据描述11(2)直接常量:整型常量请点击:实型常量请点击:字符常量请点击:字符串常量请点击:如#definePRICE30定义:程序运行时其值不能改变的量(即常数)分类:(1)符号常量:用标识符代

表常量定义格式:#define符号常量常量>例符号常量举例(ch2_1.c)#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf("total=%d",total);}运行结果

:total=3002.2常量与变量2.2.1常量注意:定义符号常量时,一般用大写字母是宏定义预处理命令,不是C语句C语言教学幻灯片版第二章数据描述12三种形式:十进制整数:由数字0~9和正负号表示.如123,-456,0八进

制整数:由数字0开头,后跟数字0~7表示.如0123,011十六进制整数:由0x开头,后跟0~9,a~f,A~F表示.如0x123,0Xff例12与12L例30000为int型65536为longint型说明:整型常量的类型是根据其值所在范围确定其数据类

型若在整常量后加字母l或L,认为它是longint型常量问题:0123=()100x123=()100Xff=()1083291255问题:0123=()100x123=()100Xff=()10整型常量(整常数)2.2常量与变量C语言教学幻灯片

版第二章数据描述13表示形式:十进制数形式:(必须有小数点)如0.123,.123,123.0,0.0,123.指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3,123E2,1.23e4,e-5,1.2E-

3.5实型常量的类型默认double型在实型常量后加字母f或F,认为它是float型实型常量(实数或浮点数)2.2常量与变量C语言教学幻灯片版第二章数据描述14例转义字符举例(ch2_001.c,ch2_

004.c)main(){printf("\101\x42C\n");printf("Isay:\"Howareyou?\"\n");printf("\\CProgram\\\n");printf("T

urbo\'C\'");}运行结果:(屏幕显示)ABCIsay:”Howareyou?”\CProgram\Turbo„C‟例main(){printf(“Y\b=\n”);}运行结果:屏幕显示:=打印机输出:¥字符常量2.2常量与变量用

单引号括起来的一个字符或以一个“\”开头的字符序列C语言教学幻灯片版第二章数据描述15字符串常量(用双引号(“”)括起来的字符序列)2.2常量与变量注意字符常量与字符串常量的区别:(1)字符型常量用单引号括起来,而字符串常量用双引号括起来(2)字符常量只能是单个字符,而字符串常量

可以含一个或多个字符。(3)字符常量在内存中占一个字节存储空间。字符串常量所占内存空间的字节数等于字符串中所包含的字符个数加1。添加的这一个字节用于在字符串的尾部存放字符‘\0’,表示字符串的结束,以便

于对字符串的运算处理。(4)可把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量,而字符串常量是用字符型数组存储的。hello\0例字符串“hello”在内存中aa\0„a‟“a”例:charch;ch=„A‟;例:charch;ch

=“A”;C语言教学幻灯片版第二章数据描述16变量定义的一般格式:数据类型变量1[,变量2,„,变量n];变量定义位置:一般放在函数开头例2floata,b,c;c=a%b;//Illegaluseoffloatingpointinfu

nctionmain例1intstudent;stadent=19;//Undefinedsymbol‘stadent’infunctionmain变量的使用:先定义,后使用编译程序根据变量定义为其分配指定字节的内存单元…...地址in

ta=1,b=-3,c;abc2字节2字节2字节地址地址…...内存1-3随机数决定分配字节数和数的表示范围定义:程序运行时其值可以改变的量。为引用变量方便,需给变量一个名字,即变量名。2.2常量与变量2.2.2变量合法标识符例:inta,b,c;float

data;变量初始化:定义时赋初值例:inta=2,b,c=4;floatdata=3.67;charch=‘A’;intx=1,y=1,z=1;intx=y=z=1;main(){inta,b=2;a=1;floatdata;data=(a+b)*1.2;printf(“data=%f\

n”,data);}main(){inta,b=2;floatdata;a=1;data=(a+b)*1.2;printf(“data=%f\n”,data);}变量定义可执行语句C语言教学幻灯片版第

二章数据描述17#definePRICE12.5main(){intnum=3;floattotal;charch1,ch2=„D‟;total=num*PRICE;ch1=ch2-„A‟+„a‟;printf(“total=%f

,ch1=%c\n”,total,ch1);}宏定义变量定义输出结果运行结果:total=37.500000,ch1=d例2.12.2常量与变量C语言教学幻灯片版第二章数据描述18•运算符功能•与运算量关系–要求运算量个数–要求运算量类型•运算符优先级别•结合方向•结果的

类型学习运算符应注意2.3运算符与表达式C语言教学幻灯片版第二章数据描述19C运算符算术运算符:(+-*/%++--)关系运算符:(<<===>>=!=)逻辑运算符:((!&&||)位运算符:(<<>>~|^&)赋值运算符:(=及其扩展)条件运算符:(?:)逗号运算符:(,)指针运算符:(*&

)求字节数:(sizeof)强制类型转换:(类型)分量运算符:(.->)下标运算符:([])其它:(()-)2.3运算符与表达式C语言教学幻灯片版第二章数据描述20•基本算术运算符:+-*/%–结合方向:从左向右–优先级:----->

*/%----->+-(2)(3)(4)说明:–“-”可为单目运算符时,右结合性–两整数相除,结果为整数–%要求两侧均为整型数据例5/2=-5/2.0=例5%2=-5%2=1%10=5%1=5.5%22-2.51-110()2.

3运算符与表达式2.3.1算术运算符和表达式C语言教学幻灯片版第二章数据描述21–作用:使变量值加1或减1–种类:•前置++i,--i(先执行i+1或i-1,再使用i值)•后置i++,i--(先使用i值,再执行i+1或i-1)例j=3;k=++j;j=3;k=j++;j=3;prin

tf(“%d”,++j);j=3;printf(“%d”,j++);a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;//k=4,j=4//k=3,j=4//4//3//c=20,a=4//c=15,a=42.3运算符与表达式例-i++i=3;printf

(“%d”,-i++);例-i++-(i++)i=3;printf(“%d”,-i++);//-3例j+++k;(j++)+k;说明:++--不能用于常量和表达式,如5++,(a+b)++++--结合方向:自右向左优先级:++-------->*/%----->+-(2)(3)(4)

2.3.2自增、自减运算符C语言教学幻灯片版第二章数据描述22•关系运算符–种类:<<===>=>!=–结合方向:自左向右–优先级别:<<=>>===!=优先级6(高)优先级7(低)例c>a+b//c>(a+b)a>b!=c//

(a>b)!=ca==b<c//a==(b<c)a=b>c//a=(b>c)例inta=3,b=2,c=1,d,f;a>b(a>b)==cb+c<ad=a>bf=a>b>c//表达式值1//表达式值1//表达式值0//d=1//f=0

2.3运算符与表达式关系表达式的值:是逻辑值“真”或“假”,用1和0表示2.3.3关系运算符和表达式C语言教学幻灯片版第二章数据描述23例若a=0;b=0.5;x=0.3;则a<=x<=b的值为0例5>2>7>8在C中是允许的,值为0例inti=1,j

=7,a;a=i+(j%4!=0);则a=2例‘a‟>0结果为‘A‟>100结果为10关系运算注意(1)2.3运算符与表达式C语言教学幻灯片版第二章数据描述24例注意区分“=”与“==”inta=0,b=1;if(a=b)printf(“aequaltob”);else

printf(“anotequaltob”);例应避免对实数作相等或不等的判断如1.0/3.0*3.0==1.0结果为可改写为:fabs(1.0/3.0*3.0-1.0)<1e-60关系运算注意(2)2.3运算符与表达式C语言教学幻灯片

版第二章数据描述25ab!a!ba&&ba||b真假真假假假真真•逻辑运算符–种类:!&&||–逻辑运算真值表真假假假假假真真假假真真真假真真C语言中,运算量:0表示“假”,非0表示“真”,运算结果:0表示

2.3运算符与表达式2.3.4逻辑运算符和表达式(1)C语言教学幻灯片版第二章数据描述26!(2)&&(11)||(12)高低例a<=x&&x<=ba>b&&x>ya==b||x==y!a||a>b

优先级:结合方向:!:从右向左&&:从左向右||:从左向右//(a<=x)&&(x<=b)//(a>b)&&(x>y)//(a==b)||(x==y)//(!a)||(a>b)2.3运算符与表达式2.3.4逻辑运算符和表达式(2)C语言教学幻灯片版第二章数据描述27例a=4

;b=5;!aa&&ba||b!a||b4&&0||25>3&&2||8<4-!0‘c’&&‘d’值为1值为0值为1值为1值为1值为1//(5>3)&&2||(8<(4-(!0)))值为12.3运算符与表达式2.3.4逻

辑运算符和表达式(3)C语言教学幻灯片版第二章数据描述28例a&&b&&c例a||b||c例a=1;b=2;c=3;d=4;m=1;n=1;(m=a>b)&&(n=c>d)短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行

该运算符2.3运算符与表达式//只在a为真时,才判别b的值;只在a、b都为真时,才判别c的值//只在a为假时,才判别b的值;只在a、b都为假时,才判别c的值//结果m=0,n=12.3.4逻辑运算符和表达式(4)C语言教学幻灯片版第二章数据描述29•简单赋值运算符–符号:=–格式:变量

标识符=表达式–作用:将一个数据(常量或表达式)赋给一个变量例a=3;d=func();c=d+2;2.3运算符与表达式–结合方向:自右向左–优先级:14–左侧必须是变量,不能是常量或表达式例3=x-2*y;a+b=3;赋值转换规则

:使赋值号右边表达式值自动转换成其左边变量的类型例floatf;inti;inti;i=2.56;//结果i=2;i=10;f=i;则f=10.0赋值表达式的值与变量值相等,且可嵌套例:a=b=c=5a=

(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//表达式值为5,a,b,c值为5//b=5;a=5//表达式值11,c=6,a=11//表达式值10,a=10,b=4,c=6//表达式值5,a=5,b=10,c=22.3.5赋值运算符和表达式C语言

教学幻灯片版第二章数据描述30例:a=12;a+=a-=a*a2.3运算符与表达式例:inta=2;a%=4-1;a+=a*=a-=a*=3;//a=-264等价于a=a+(a=a-(a*a))//a=0等价于a=a+(

a=a*(a=a-(a=a*3)))//a=3等价于a=a*(4-1)例:a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3•复合赋值运算符+=-=*=/=%=《=》=&=^=|=C语言教学幻灯片版第二章数据描述312.3运

算符与表达式•一般形式:表达式1?表达式2:表达式3•执行过程•功能:相当于条件语句,但不能取代一般if语句expr1取expr2值取expr3值非0=0例if(a>b)printf(“%d”,a);elseprintf(“%d”,b);printf(“%d”,a>b?a:b);例求a+|

b|printf(“a+|b|=%d\n”,b>0?a+b:a-b);例(a==b)?‟Y‟:‟N‟(x%2==1)?1:0(x>=0)?x:-x(c>=„a‟&&c<=„z‟)?c-‟a‟+‟A‟:c条件运算符可嵌套如x>0?1:(x<0?

-1:0)优先级:13结合方向:自右向左如a>b?a:c>d?c:da>b?a:(c>d?c:d)expr1、expr2、expr3类型可不同,表达式值取较高的类型例x?„a‟:„b‟//x=0,表达式值为‘b‟;

x‡0,表达式值为‘a‟x>y?1:1.5//x>y,值为1.0;x<y,值为1.52.3.6条件运算符和表达式C语言教学幻灯片版第二章数据描述322.3运算符与表达式一般形式:sizeof(变量名)sizeof(类型名)功能:计算并返回括

号中变量或类型说明符的字节数。例:inti,j;floatx;i=sizeof(x);//结果为4j=sizeof(int);//结果为22.3.7求字节运算符C语言教学幻灯片版第二章数据描述33

2.3运算符与表达式•形式:表达式1,表达式2,……表达式n•结合性:从左向右•优先级:15•逗号表达式的值:等于表达式n的值•用途:常用于循环for语句中例a=3*5,a*4a=3*5,a*4,a+5例x=(a=3,6*3)x=a=3,6*a例a=1;b=2

;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);//a=15,表达式值60//a=15,表达式值20//赋值表达式,表达式值18,x=18//逗号表达式,表达式值

18,x=3//1,2,3//3,2,3例:/*ch2_6.c*/#include<stdio.h>main(){intx,y=7;floatz=4;x=(y=y+6,y/z);printf("x=%d\n",x);}运行结果:x=32.3.8逗号运算符和表达式C语言教

学幻灯片版第二章数据描述34隐式转换什么情况下发生运算转换------不同类型数据混合运算时赋值转换------把一个值赋给与其类型不同的变量时输出转换------输出时转换成指定的输出格式函数调用转换---

---实参与形参类型不一致时转换运算转换规则:不同类型数据运算时先自动转换成同一类型2.4数据类型转换C语言教学幻灯片版第二章数据描述352.4数据类型转换doublefloatlongunsignedintchar,short低高说明:必定的转换运算对象类型不同时转换C语言教学幻

灯片版第二章数据描述36例1charch;inti;floatf;doubled;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledoubleintin

tdoubledoubledoubledoubledoubledouble10+„a‟+i*f-d/l例2inti;floatf;doubled;longl;2.4数据类型转换C语言教学幻灯片版第二章数据描述372.4数据类型转换显式转换(强制转换)一般形式:(类型名)(表达式)例:(int

)(x+y)(int)x+y(double)(3/2)(int)3.6说明:强制转换得到所需类型的中间变量,原变量类型不变例main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}结果:x=3.600000,i=3较高类型向较低类型转换

时可能发生精度损失问题

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?