C语言的基本数据类型与表达式.ppt

上传人:tia****nde 文档编号:11495355 上传时间:2020-04-25 格式:PPT 页数:32 大小:619KB
返回 下载 相关 举报
C语言的基本数据类型与表达式.ppt_第1页
第1页 / 共32页
C语言的基本数据类型与表达式.ppt_第2页
第2页 / 共32页
C语言的基本数据类型与表达式.ppt_第3页
第3页 / 共32页
点击查看更多>>
资源描述
第2章C语言的基本数据类型与表达式,2.1C语言的基本数据类型2.2常量与变量2.3运算符与表达式2.4数据类型转换,教学目的和基本要求:,要求学生清楚数据类型与变量、常量的关系,掌握各种常量的性质和定义,掌握表达式中各种运算符的功能和特点,明白产生副作用的原因,了解数据类型的相互转换规则。,教学重点:,数据类型、常量定义,运算符与表达式。,存取数据必须先确定数据的编码方式、存储格式和所占的存储长度,C语言中把这三者结合起来,给出几种固定的形式,这些形式就是最基本的数据类型。,2.1C语言的基本数据类型,为什么要设置数据类型?,在计算机中使用一定长度的存储单元(通常是字节的倍数)来存储数据。,存储的编码方式有:原码、反码、补码、ASCII码。存储的存储格式有:定点型、浮点型。,其中,用于存储数据的存储单元的长度决定了数据取值范围的大小。,2.1.1数据类型概述,本章中将对基本类型中的前三类进行介绍和学习。,变量:指以标识符为名字,其值可以改变的量。,在学习各种数据类型之前,我们先简单了解一下常量和变量的概念。后面的章节中将会详细介绍。,常量:指在程序运行中,其数值不能被改变的量。,变量代表计算机内存中的某一存储空间,变量的类型决定了该存储空间的长度和其中存放数据的编码方式及存储格式。变量的类型也决定了该存储空间中存放数据的数据形式和取值范围。,*八进制的数码范围为07;018*十六进制的数码除了数字09外,还使用英文字母af(或AF)表示1015。如:0 x1e,注意!,2.1.2整数类型,1、整型常量:,(1)十进制形式:与数学上的整数表示相同;例如:12,-100,0(2)八进制形式:在数码前加数字0;例如:012=1*81+2*80=10(十进制)(3)十六进制形式:在数码前加0X(数字0和字母X)。例如:0 x12=1*161+2*160=18(十进制),如TurboC中,有short(2字节)int(2字节)long(4字节)关键字所占位数取值范围short16-3276832767unsignedshort16065535int16-3276832767unsigned16065535long32-21474836482147483647unsignedlong3204294967295,2、整型变量的分类:,根据数据所占的存储长度的不同分为:int、short、long;同样存储长度的数据又分unsigned、signed;故可组合出六种类型。,3、整型变量的值域:,由机器中数据的存储长度决定,思考:inta=20000,b=20000,c;c=a+b;c的值为多少?如果c定义为long型是否能解决问题?,2、实型变量的分类及值域:关键字字节数取值范围精度(位)float43.410-383.410387double81.710-3081.71030815,注意,2.1.3实数类型,1、常量:(1)十进制小数形式:由数字和小数点组成;例如:3.4,4.,.3。(2)指数形式:“十进制小数”+“e(或E)”+“十进制数整数”。例如:12.5e-6表示12.510-6。,小数点不能单独出现;0.0.e或E的两边必须有数,且其后面必须为整数;如:6E0.2e5,字符形式功能n换行t横向跳格b退格r回车反斜杠字符单引号字符ddd8进制数表示的ASCII码对应的字符xhh16进制数表示的ASCII码对应的字符,2.1.4字符类型,1、常量:(1)用单引号括起来的一个字符;如:A、1、?等。(2)用单引号括起来的由反斜杠()引导的转义字符。,4、字符串常量:是用一对双引号括起来的字符序列。注意:每个字符串的后面都有一个0结束符。如:“SHANGHAI”,“AbcdeFGHijk”,“Howareyou”。,注意,a与“a”的区别。,例如:字符A的ASCII码为:65D(十进制)=41H(十六进制)=101Q(八进制)字符A可以表示为A、x41、101。,2、字符型变量的分类:char和unsignedchar;,3、值域(字符型可参与数学运算,也可看成一种一字节的整型变量)每个字符型数据在内存中占一个字节;包括ASCII字符表中的所有字符(可显示字符和非显示字符)。,2.2.1常量与符号常量常量是指在程序运行中,其数值不能被改变的量。常量又可分为直接常量和符号常量。,2.2常量与变量,120、-100、0;0120、072;0 xFFFF、0 x1e、0X28AF,0XED4;120L,200L;长整型常量3.14、-3.1、5.12E-6;a、#、n、101;099、12f、0 xg、48EA;019.5、1e-08;实型常量只能用十进制形式表示2.1E10.2、E-6、6.4E+4.8、E9;changsha、+?ab;、p、ab;,1、直接常量:是在程序中直接引用的数据。,请判断这些常量正确与否:,定义形式:#define标识符常量数据例如:#definePI3.14159在程序预处理时,凡是出现标识符PI的地方都将用数据3.14159来替换。如:2*2.3*PI就等价于2*2.3*3.14159。,变量是指以标识符为名字,其值可以改变的量。变量代表计算机内存中的某一存储空间,该存储空间中存放的数据就是变量的值。在同一程序块中,变量不能被重复定义。使用变量时必须“先定义,后使用”。,2、符号常量是用标识符来表示一个数据;在程序不能给它赋值。,2.2.2变量与变量定义,2、变量赋初值在定义变量的同时给变量一个初始值。,注意,inta=5,b=3;inta=b=c=3;inta,b,c;a=b=c=3;,例如:inta,b,c;floatx,y;charc1,c2;或intc1,c2;定义变量就是在内存中划出一块相应类型的存储空间存放该变量的值。,main()intx,y,z,w;/*定义x,y,z,w为整型变量*/unsignedintk;/*定义k为无符号整型变量*/x=10;y=-20;k=30;z=x+k;w=y+k;printf(“x+k=%d,y+k=%dn”,z,w);,例2-1整型变量定义及赋初值,程序运行结果为:x+k=40,y+k=10,3、变量的作用域变量根据作用域的不同可分为局部变量和全局变量,根据存储方式的不同可分为静态存储变量和动态存储变量,这些我们将在第六章中详细介绍。,在数学里当多个运算符一起组成一个表达式时,我们规定了优先级(先乘除后加减)和结合规则(从左至右)。同样,在C语言中,我们也规定了每个运算符的结合规则及运算符之间的优先级。,2.3运算符与表达式,运算符:就是表示某种运算功能的符号。按操作功能运算符大致可分为:算术运算符、关系运算符、逻辑运算符、赋值运算符、条件运算符、逗号运算符以及按位运算符等。,表达式:是由操作数和运算符组成的序列。如:1+2*3-4、35-7、a=b%2等都是C语言中的表达式。,下面分类介绍各种运算符:,%(取余)(注意:取余运算的操作数只能是整数,且结果的符号与前一操作数的符号相同),2.3.1算术运算符与算术表达式,1、运算符+(加):3+4、+3-(减):3-5、-5*(乘):3*5/(除):5/2、5.0/2(注意,此二种形式,结果不同),5%3的值为2;-5%3的值为-2;5%(-3)的值为2;-5%(-3)的值为-2;12.3%3若a%b的结果为0,则有a能被b整除,2、算术表达式用算术运算符和括符将操作数连接起来的式子。优先级:()*、/、%+、-结合性:从左至右;表达式的值:数值型(int、long、unsigned、float、double);,例如:已知:floata=2.0;intb=6,c=3;求解:a*b/c-1.5+a+fabs(-5)=?,floata=2.0;intb=6,c=3;a*b/c-1.5+a+fabs(-5),12.0/3,5,4.0-1.5,2.5+97(int),99.5+5,104.5(double),思考inta=1,b=2;表达式a/b+3的结果是多少?inta=10000,b=30000;表达式a+b的结果是多少?如何修改?,等价于:j=i;i+;所以i的值为4,j的值为3,等价于:i+;j=i;所以i的值为4,j的值为4,(1)i=3;j=i+;(2)i=3;j=+i;,自增与自减运算符(+、-),+i,-i:使用之前使i的值增1(或减1);,i+,i-:使用之后使i的值增1(或减1);,分析下面几种情况中i与j的值:,当+、-不与其他运算符混合使用时,+i与i+都等价于i=i+1,-i与i-都等价于i=i-1,如:i=2;j=-i+;求执行完这两句后i与j的值分别是多少,特殊的:设i=3,j=4,k=i+j,k=i=j=,结合性:自右至左。,分析:“+”与”-“是同优先级,且都高于“=”按结合规则,等价于:j=-(i+);结果:i的值为3,j的值为-2。,再看几个例子:如:设i=3,k=(i+)+(i+)+(i+)k=i=,9,6,如:设a=3,b=(a+)+(a+)b=a=,6,5,设a=3,b=(+a)+(a+)b=a=,8,5,设a=3,b=(a+)+(+a)b=a=,8,5,设a=3,b=(+a)+(+a)b=a=,10,5,7,4,4,例如:(1)x=(y=12)/4(2)x=y=12/4(3)x=(y=12/4)(4)(x=y)=12/4,2.3.2赋值运算符与赋值表达式,1、赋值运算符=(执行功能:把=右边的表达式的值,存入=左边的变量对应的存储空间,即给此变量赋值)3=2+1a=a+2,2、赋值表达式:用赋值运算符将变量和表达式连接起来的式子形式:=求值规则:将“=”右边表达式的值赋给左边的变量。优先级:!算术关系y=(a=4,b=5,a+b);y=(a=4,b=5),a+b;y=a=(4,b=5),a+b;,4,5,4,9,4,5,9,9,4,5,9,5,5,5,5,10,形式有两种:sizeof变量名sizeof(类型名)结果为整型数。,inta;floatx;printf(“%d,%d”,sizeofa,sizeofx);printf(“%d,%d”,sizeof(int),sizeof(float);以上两个printf语句结果均为。,例如,2、求字节运算符:sizeof作用:求得变量或某种数据类型所需的字节数。,2,4,求值规则:先求解表达式1的值若为真(非0),求解表达式2,并把表达式2的值作为整个条件表达式的值若为假(0),求解表达式3,并把表达式3的值作为整个条件表达式的值,2.3.4条件运算符?和:,它们与三个操作数组组成三元运算。形式为:?:,优先级:逻辑条件赋值,结合性:自右至左;,又如:y=x10?x/10:x0?x:-x当x的值为整型的15时,表达式的结果为:当x的值为整型的5时,表达式的结果为:,1,5,例如:intmax,a=5,b=3;max=ab?a:b求max的值,max的值为5,C语言允许整型、实型、字符型数据进行混合运算。有3种转换方式:自动转换、赋值转换和强制转换。2.4.1类型自动转换,2.4数据类型转换,特点:由数值存储位数少的向多的转换;整型向实型转换!操作数为相同类型的不转换,仍取原类型,特别注意此时可能带来的错误!,intx=2;floaty=1.6;charc=A;则:c+1/x*y=,例如,charc=68.5;printf(“%c”,c);,65(int)+0(int)*1.6(float),65(float),2.4.2赋值转换在赋值时将赋值符右边值的类型转换成与其左边变量类型一致的类型。,有下列几种情况:(1)将整型数据赋给单、双精度变量时,数值不变。(2)实型整型(字符型):去掉小数部分;,(3)字符型整型:字符型数据只占一个字节,而整型变量占两个字节,因此将字符数据放入到整型变量低8位中,整型变量高8位视计算机系统处理有符号量或无符号量两种不同情况,分别在高8位补上1或补上0。(4)将带符号的整型数据(int)赋给longint型数据变量时,要进行符号扩展。(5)将unsignedint型数据赋给longint型数据变量时,不存在符号扩展,只需将高位补0即可。,例如:inta=2,b=5;floatx=4.4;则有:表达式结果b/a(float)b/a(float)(b/a)(int)x%a+x(int)x%(a+x),2.4.3强制类型转换形式:(类型名)(表达式)强制类型转换时,得到所需类型的中间变量,原来变量的类型不会改变。,2,2.5,2.0,4.4,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!