C课件第3章数据类型和表达式.ppt

上传人:max****ui 文档编号:11494969 上传时间:2020-04-25 格式:PPT 页数:85 大小:1.44MB
返回 下载 相关 举报
C课件第3章数据类型和表达式.ppt_第1页
第1页 / 共85页
C课件第3章数据类型和表达式.ppt_第2页
第2页 / 共85页
C课件第3章数据类型和表达式.ppt_第3页
第3页 / 共85页
点击查看更多>>
资源描述
第三章数据类型和表达式,本章主要内容,数据类型常量变量运算符和表达式函数,3.1数据类型,数据:是程序命令操作的对象数据类型:是指将数据根据表达形式的不同而划分的类别。,3,C+的数据类型一般分为如下几种:,基本数据类型,非基本数据类型(用户定义数据类型),整型字符型实型(浮点型)逻辑型(布尔型)数组指针空类型结构联合枚举类,数据类型,数据类型修饰符,4,short,long,unsigned,例:,无符号整型unsignedint,无符号长整型unsignedlong,无符号短整型unsignedshort,signed,整型数据分类,整型数据值域,数据类型常量与变量,7,#includevoidmain(void)constintPRICE=30;intnum,total;floatv,r,h;num=10;total=num*PRICE;couttotalendl;r=2.5;h=3.2;v=3.14159*r*r*h;coutv=Ac=Z)c=c+a-A;将字符变量c从大写字母转为小写字母。例2:0-0=01-0=12-0=2,14,转义字符,非图形字符(如回车、制表符等)及“等字符,因它们有特殊作用,所以表示这些字符本身时。P55。如:n表换行无论是不可显示字符还是一般字符,都可用8进制数、16进制数表示ddd:一至三位8进制数。xhh:一至二位16进制数。例如:001表示码值为(01)8的ASCII字符。A也可用101表示0为空白符,即NULL,码值为0,在C语言中是字符串的结束标志。(与0和空格符不同)例如:cout“x07operatingtsystemn”;输出:operatingsystem,15,字符型与整型的关系,表达式求值过程中,所有字符被无条件地转换为与其代码等值的整数;如:A+2的值为67;可以用类型转换符int将一字符强制转换成整数;如:coutint(A);将显示65可以用类型转换符char将一整数强制转换成字符;如:coutchar(67);将显示C,字符型与整型的关系,17,例:inta=b;charc=97;coutaendl;coutcendl;输出:98a,字符数据的使用方法字符数据和整型数据之间可以运算。字符数据与整型数据可以互相赋值。,字符串常量,字符串型常量是用双引号括起来的一个或多个字符。C+规定以字符0作为字符串结束标志。如,一个字符串“HELLO”,在内存中以“0”为结尾。“0”在输出时不作显示,只用来表示字符串的结束。,18,字符串型常量,“HELLO”,HELLO0,注意“P”与P不同。前者为字符串,在机内存储形式为P0,而P就是一常数P。,字符串常量,汉字字符及其它全角字符的代码一般用两个字节表示,因此即使是一个汉字也只能表示为字符串,如“汉”(而不能是汉)。注意区分A和A。.,符号常量,20,definePI3.14159main()intr;floatL,S;r=10;L=2*PI*r;S=PI*r*r;printf(“周长=%fn”,L);printf(“面积=%fn”,S);,这是一个知道圆半径r,求圆周长L、圆面积S的简单C程序。其中的PI就是符号常量,它的值在一开始就被预处理命令“#define”定义为实数3.14159了,故程序在运行和编译时会自动用“3.14159”来替代PI。,符号常量比起一般常量来,不但使用方便,实际值容易修改,而且更形象化,便于记忆。,符号常量,*C+中:constfloatpi=3.14159;*常量定义中初始化的值可以是一个常量表达式:constintsize=100*sizeof(int);constintnumber=max(15,23);(错)注意:#define与const的区别,21,逻辑常量,布尔型变量的说明:例:boolflag;布尔型数据的取值:只有false(0)和true(1)两个值由于逻辑值是整数0和1,所以可以像整数一样出现在表达式里,参与各种整数运算。,22,枚举型数据基本情况,C+并没有提供枚举类型,而只提供了定义枚据类型的手段;任何枚举类型都需要自己定义。格式:enum如:enumcolorred,yellow,blue;enumDAYSun,Mon,Tue,Wed,Thu,Fri,Sat;,一个枚举类型被定以后,可以像整型等预定义类型一样使用在允许出现数据类型的任何地方。enumcolorc1,c2,c3;enumdaytoday,workday;c1=red;workday=wed,枚举型数据与整型的关系,枚举中的一个符号通常对应一个有符号整数,因此其存储空间也等同于一个有符号整数(通常4字节)。一个枚举类型的值域就是枚举符号(如Sun,Mon等)所代表的一个整数的子集;,0123456,枚举型数据与整型的关系,一般来说,枚举中的每个符号依次与0、1、2、3对应,如:enumDAYSun,Mon,Tue,Wed,Thu,Fri,Sat;,12567,枚举型数据与整型的关系,也可以任意规定其对应关系,如:enumSomeDigitsONE=1,TWO,FIVE=5,SIX,SEVEN;,枚举型数据的功用,定义一个枚举类型就是定义了一组相互关联的符号常量,在程序中可用来区分不同的事物或不同的状态;枚举符号的使用可提高程序的可读性、一致性和可维护性。.,枚举型数据与整型的关系,表达式求值过程中,枚举型数据将被无条件转换成相应的整型数据,例如:SEVEN+2的值为9。,实型常量,实型常量,定点表示法和浮点表示法325.483.2548e2(3.2548102)不同规格的实型常量.325.48(double)325.48f3.2548e2F(float)325.48L3.2548e2L(longdouble),实型常量,32,(2)一个实型常数缺省说明为double,如表示float型,则在实数后加f或F。例34.5f34.5,注:(1)指数形式的书写。E或e的前面必须要有数字,且E后面的指数必须为整数。例:e32.1e3.5.e3e,3.3变量,33,变量是什么,变量其值允许改变的量,在C+程序中用一个标识符表示,允许通过赋值操作来改变它的值。,变量:变量值23,变量名length,变量类型int,3.3变量,C+规定必须以字母或下划线打头,后面跟字母、数字或下划线(如:a3,Z_5e,_D7d等),并且不能与保留字、函数名、类名等C+专用名相同(如char,for,int等)。注意:(a)长度:早期的C编译程序只认前8个字符。VC允许256个字符。但一般不要超过31个字符为宜,1、命名,3.3变量,35,(b)约定:变量名、函数名、和数据类型名等用小写字母自定义的类型名(如类)、符号常量名及宏用大写字母;下划线开头的名字常为系统程序(库函数用),用户一般不用。(c)要有意义:如用Sum表示“求和变量”,不要用aaa,A1,B12之类名字。,3.3变量,36,程序中的num1,num2和sum都是变量。它们的值在程序的运行过程中都发生了变化。变量定义后,各变量的初值都是不确定的。num1的第一个确切值是10,当再次给num1赋值时,num1的值又变成-5。其他两个变量的变化情况类似。,#includevoidmain()intnum1,num2,sum;num1=10;num2=15;sum=2*num1+num2;cout“sum=“sumendl;num1=-5;num2=num1+3;sum=num1+num2;cout“sum=“sumendl;,3.3变量,2、变量的定义,37,变量:需要定义,说明其存储属性和数据类型。,例:staticintnward=0,nkayword;,同一语句中,不能混合定义不同类型的变量。,变量的存储类型,auto存储类(缺省时用)属于一时性存储,其存储空间可以被若干变量多次覆盖使用。register存储类存放在通用寄存器中。提高执行的速度。过多使用影响速率。extern存储类在所有函数和程序段中都可引用。static存储类在内存中是以固定地址存放的,在整个程序运行期间都有效。,38,变量赋值与初始化,(1)doublearea,radius=23;(2)doublearea,radius;radius=23;,39,3.4运算符和表达式,表达式:一个常量或标识对象的标识符是一个最简单的表达式,其值是常量或对象的值一个表达式的值可以用来参与其它操作,即用作其它运算符的操作数,这就形成了更复杂的表达式包含在括号中的表达式仍是一个表达式,其类型和值与未加括号时的表达式相同算术表达式:由算术运算符、操作数和括号构成的表达式称为算术表达式a+b+(c-b)/2+5,40,、双目算术运算符,加(+)、减(-)、乘(*)、除(/)和取余(%)优先级与结合性:先乘除,后加减,同级自左至右,41,、双目算术运算符,(1)/除法5/2=25.0/2.0=2.5若/的两操作数都为整数,则为整除:例inti=15;floatf;f=i/10;结果为:f=1如果将第三条语句改为f=(float)i/10;或f=i/10.0;则结果为:f=1.5,42,、双目算术运算符,(2.)%取余(余的符号与被除数相同,不允许对浮点数操作)3%4=34%4=0例#includevoidmain()intn;n=40%5;cout40%5:nendl;/(0)n=40%7;cout40%7:nendl;/(5)n=40%-7;cout40%-7:nendl;/(5)n=-40%7;cout-40%7:nendl;/(-5)n=-40%-7;cout-40%-7:nendl;/(-5),43,注意:当参加运算的两个操作数都是整数时,运算结果也为整数。当参加运算的两个操作数中至少有一个是单精度型,并且另外一个不是双精度型时,运算结果为单精度型。当参加运算的两个操作数中至少有一个是双精度型,则运算结果为双精度型。,2.赋值运算符,赋值运算符用于将一个数据传给一个变量。例如:intx;x=5;注意:(1)双目运算符,从右到左d=a=b(2)赋值操作是一个表达式,每个表达式在求值后都有一个确定的值,其值为赋值号左边表达式的值例:cout(x=5)=,intb=+a;couta“bendl;intc=a+;couta“cendl;,454,例题:x=6;x+=x-=x*x;若x为整型变量,则上述语句执行后x的值是()X+与X+1是否相等?+X与X+=1是否相等?,4.测类型长度运算符-sizeof操作符,语法形式:sizeof(类型名)或sizeof(表达式)结果值:“类型名”所指定的类型或“表达式”的结果类型所占的字节数。例:sizeof(int)=4sizeof(double)=8sizeof(100)=4sizeof(a)=1sizeof(structABC)coutsizeof(double)2)|(按位或,如:k1|k2)y+103(4)表达式1、2的类型可以不同,条件表达式的最终类型为1和2中较高的类型。,73,9.逗号运算符,格式:表达式1,表达式2求解顺序及结果:先求解1,再求解2,最终结果为表达式2的值例a=3*5,a*4最终结果为60例2inta,b,c;d=(a=1,b=a+2,c=b+3);coutdendl;,74,10.圆括号运算符,圆括号运算符()括号内运算优先进行,即先算括号内,后算括号外。如x/(y+2),75,优先级,76,混合运算时数据类型的转换隐含转换,一些二元运算符(算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符)要求两个操作数的类型一致。在算术运算和关系运算中如果参与运算的操作数类型不一致,编译系统会自动对数据进行转换(即隐含转换),基本原则是将低类型数据转换为高类型数据。charshortintunsignedlongfloatdouble低高,77,混合运算时数据类型的转换隐含转换,逻辑运算要求参与运算的操作数必须是bool型,如果操作数是其它类型,编译系统会自动将非0数据转换为true,0转换为false。位运算的操作数必须是整数,当二元位运算的操作数是不同类型的整数时,也会自动进行类型转换,赋值运算要求左值与右值的类型相同,若类型不同,编译系统会自动律将右值转换为左值的类型。,混合运算时数据类型的转换强制类型转换,语法形式:类型说明符(表达式)或(类型说明符)表达式强制类型转换的作用是将表达式的结果类型转换为类型说明符所指定的类型。注:inta=16,b=5;floatx=10;x=(float)a+a/b;,3.5函数,函数分为系统函数和用户函数两类,这里主要介绍一些常用的系统函数。数学函数(math.h)绝对值abs(x)或fabs(x)、正弦sin(x)、余弦con(x)、正切tan(x)、平方根sqrt(x)、自然指数exp(x)exe=2.718282、幂pow(x,y)xy、自然对数log(x)lnx、向下取整floor(x)等。如abs(-12)=12、fabs(-3.26)=3.26、sqrt(36)=6、pow(2,5)=32等。,80,3.5函数,随机函数(stdlib.h)rand()返回0-32767之间的一个整数;srand(s)让系统建立对应的随机数序列,当自变量s的值不同时,将使系统产生不同的随机数序列。如rand()%100得到0-99之间一个随机数for(inti=1;i10;i+)coutrand()%100;终止运行函数(stdlib.h)exit(1)执行时结束程序执行,返回C+主操作界面窗口,81,3.5函数,函数调用或称函数调用表达式格式:(),实参表应与函数定义或函数原型中的参数表相对应。例:求指数函数原型doublepow(doublex,doubley);调用格式:pow(实参1,实参2)pow(3,2),pow(3*2,3),pow(x,y+1)doublea=3,b=4,c;c=pow(a,b)-15;,82,利用ceil函数或者floor函数按要求求取一个数的若干位小数。假定x=3.74265floor(x*100)/100=3.74/保留x的两位小数,x值不变floor(x*10000)/10000=3.7426/保留x的四位小数,x值不变floor(x*1000+0.5)/1000=3.743/保留三位小数,第四位四舍五入floor(x+0.5)=4/对x取整,小数点后1位四舍五入floor(x*10+0.5)/10=3.7/保留x的一位小数,小数点后第2位四舍五入,利用随机函数能够产生出任何指定区间内的随机数rand()%100/返回099区间内的一个随机整数10+rand()%90/返回10,99区间内的一个随机整数a+rand()%b/返回a,a+b-1区间内的一个随机整数rand()%100/100.0/返回0.00,0.99区间内的一个随机整数rand()%90/10.0+1/返回1.0,9.9区间内的一个随机整数,注意,在数学算术中省略乘号的地方,在对应的算术表达式中要加上乘号*。在数学算术的分子中若出现加、减运算,或者在分母中若出现加、减、乘和除运算,则表示成算术表达式时应把分子和分母分别加圆括号括起来。对于在三角函数中使用的角度,应转换成弧度,对于使用的常量符号应写成常数3.14159。当算式中带有两个整数相除时,则转换后要使其一写成实数形式,否则将丢失商的小数部分。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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