收藏 分销(赏)

第2章--数据类型和表达式.ppt

上传人:快乐****生活 文档编号:7519643 上传时间:2025-01-07 格式:PPT 页数:46 大小:6.13MB 下载积分:12 金币
下载 相关 举报
第2章--数据类型和表达式.ppt_第1页
第1页 / 共46页
第2章--数据类型和表达式.ppt_第2页
第2页 / 共46页


点击查看更多>>
资源描述
,学习目标,了解,C+,语言的基本字符、标识符和关键字,了解,C+,语言的编程规范,掌握,C+,语言的基本数据类型、常量和变量,掌握,C+,语言的运算符、表达式及使用方法,2.1,关键字和标识符,2.1.1,关键字,关键字也称保留字,是一种有特殊用途的标识符。是由系统预先定义好的字符序列,具有特殊的含义及用法,不能用于变量名或函数名等。,C+,的常见关键字如表,2-1,所示。,表,2-1,C+,关键字,2.2,基本数据类型,C+,语言的数据类型分为基本数据类型、构造数据类型和引用类型,如图,2-1,所示。基本数据类型是,C+,系统内部的数据类型,构造类型和引用类型都是由基本数据类型建立起来的。,图,2-1 C+,的数据类型,2.2,基本数据类型,2.2.1,整型数据,1,整型的类别,在,C+,语言中,整型数据分为基本整型、短整型、长整型,3,大类。其中每一类又,分为无符号,和有符号,2,种,如,表所,示。,表,2-2,整型,数据的分类,2.2,基本数据类型,2,整型数据在内存中的存储形式,整型数据是以二进制数补码的形式存储的。对有符号数据,则存储单元的最高位为符号位,,1,表示负数,,0,表示正数。对无符号数据,则没有符号位,所有的存储单元均为数据位。假设用,32,个二进制位(,bit,)存放一个,int,型数据,则有符号数据和无符号数据在内存中占用存储单元的情况如图,2-2,所示。,图,2-2,整型数的存储形式,2.2,基本数据类型,3,求补码的方法,在计算机中,整数有原码、反码和补码,3,种表示方法:,(1),一个正数的反码和补码与原码相同,(,2),负数的原码就是把符号位数值化,(,3),负数的反码,其原码的符号位不变,其它位按位取反,(,4),负数的补码是反码末位(最右端位)加,1,。,2.2,基本数据类型,2.2.2,实型数据,1,实型数据的类别,实型也称之为浮点型。在,C+,语言中,实型数据分为单精度(,float,)、双精度(,double,)和长双精度(,long double,),3,种。实型数均为有符号数据,如表,2-3,所示。,表,2-3,实型数据的分类,2.2,基本数据类型,2.2.2,实型数据,2.,实型数据的存储形式,实型数据在内存中是以指数形式存放的。系统把一个实型数据分成小数部分和指数部分分别存放。其中,指数部分采用规范化的指数形式,。,例如,,实型数据,3.14159=+0.314159X101,在内存中的存放形式如图,2-5,所示。,图,2-5,实型数据的存储形式,2.2,基本数据类型,2.2.2,实型数据,.,字符型数据的存储形式,在内存中,一个字符型数据占用一个字节(,8,位),以,ASCII,码(的二进制)形式存放,。,2,字符数据与整数通用,char,型数据的,ASCII,码的取值范围为,-128,127,,其最高位是符号位。如果使用,ASCII,码为,0,127,之间的字符,因为最高位为,0,,所以在用整数格式,%d,输出时,输出一个正整数。如果使用,128,255,之间的字符,因为最高位为,1,,所以在用整数格式,%d,输出时,输出一个负整数。,2.3,常量与变量,2.2.2,实型数据,(2),整型常量的表示,整型常量可以用十进制数、八进制数、十六进制三种形式书写。,八进制整数,八进制数使用,0(,零,),作前缀修饰。八进制所含的数字是,0,7,。,例如,:,OctaNum2=0571;/,正确,在常量前面加上,0,进行修饰,OctaNum4=0591;/,错误,含有非八进制数,9,2.3,常量与变量,2.2.2,实型数据,(2),整型常量的表示,整型常量可以用十进制数、八进制数、十六进制三种形式书写。,十六进制整数,十六进制使用,0 x,或,0X,作前缀。十六进制所含的数字是,0,9,以及字母,A,F(,或,a,f),。例如:,HexNum2=0 x59af;/,正确,在常量前面加上,0 x,进行修饰,HexNum4=0 x59ak;/,错误,含有非十六进制数的字母,k,十进制整数,十进制常量是不需要在前面添加前缀的。十进制所含的数字是,0,9,。例如:,AlgorismNum1=123;,2.3,常量与变量,【,例,2.3】,三种进制表示方法的转换。,#include iostream.h,void main(),int,x=1234,y=01234,z=0 x1234;,cout,十进制,:decx=x,y=y,z=zendl;/dec:,十进制格式符输出,cout,八进制,:octx=x,y=y,z=zendl;/oct:,八进制格式符输出,cout,十六进制,:hexx=x,y=y,z=z=,,,=,,,!=,。,(1),优先级别顺序是:自上而下,优先级由高到低。,(2),同级运算符的结合性是“左结合性”,即“自左向右”顺序进行。关系运算的优先级都低于算术类,高于赋值类。例如:,a b+c,等效于,a (b+c),a=b+c,等效于,a=(b+c),(3),关系运算符,=,,,=,,,!=,在书写时,不要空格将其分开,否则会产生语法错误。,2.4,运算符与表达式,2.4.2,关系运算符与关系表达式,1,关系,运算符,表,2-9,关系运算符,2.4,运算符与表达式,2,关系表达式,关系表达式是用关系运算符连接两个表达式构成,。,一般,形式为:,表达式,1,关系运算符 表达式,2,该表达式执行时,先计算“表达式,1”,和“表达式,2”,的值,然后进行比较,运算结果为,true,(真)或为,false,(假),分别用非,0,(,true,)或,0(false),表示。,2.4,运算符与表达式,2.4.3,逻辑运算符与逻辑表达式,1,逻辑运算符,逻辑运算可以表示运算对象的逻辑关系。表,2-10,给,出了,C+,语言中,3,种逻辑运算符、功能及运算规则。,表,2-10,辑运算符,2.4,运算符与表达式,2.4.3,逻辑运算符与逻辑表达式,辑运算符中,“!”优先级最高,而且高于算术运算和关系运算符;其次是“,&”,“|”,最低。“,&”,和“,|”,都低于算术运算和关系运算符。,表,2-11,逻辑运算“真值表”,2.4,运算符与表达式,2,逻辑表达式,用逻辑运算符连接起来的式子称为逻辑表达式。一般形式为:,!表达式,1,或:,表达式,1&,表达式,2,或:,表达式,1|,表达式,2,例如,:,!x ,x&y,x|,y,2.4,运算符与表达式,2,逻辑表达式,(,1),逻辑量的真假判定和非,逻辑运算的结果是逻辑值真或假。对于逻辑表达式而言,参加运算的量可以是任何类型的量,在进行判断时系统视非零值为“真”,零值为“假”;而关系运算或逻辑运算的结果若为“真”其值为,1,若为“假”其值为,0,,结果值是无符号整数,又可参与其后的运算。,(2),逻辑运算符两侧的操作数,除可以是和非的整数外,也可以是其它任何类型的数据,如实型、字符型等。,2.4,运算符与表达式,2.4.4,位运算符和位运算,所谓位(,bit,)运算,是指对一个数据的某些二进制位进行的运算。每个二进制位只能存放,1,位二进制数“,0”,或者“,1”,。通常把组成一个数据的最右边的二进制位称做第,0,位,从右到左以此称为第,1,位,第,2,位,最左边一位称做最高位,。,C,+,语言提供,6,种位运算符,如表,2-12,所,示。,表,2-12,位运算符及含义,2.4,运算符与表达式,1.,按位与(,&,),运算符“,&”,将两个运算量的对应二进制位进行“逻辑与”运算。当且仅当参加运算的两个对象的对应二进制位都为,1,时,结果的对应二进制位为,1,,否则为,0,。,2.,按位或,(|),运算符“”将两个运算对象按对应二进制位进行“逻辑或”运算。即,当参加运算的两个对象的对应二进制位有一个为“,1”,时,结果的对应二进制位为“,1”,。,3.,按位异或(,),运算符“,”,将两个运算对象按对应二进制位进行“逻辑异或”运算,即当参加运算的两个对象的相应二进制位一个为“,0”,,另一个为“,1”,时,结果的对应二进制位为,1,,否则为,0,。,2.4,运算符与表达式,4.,按位取反,(,),运算符“”为一元运算符,它将运算对象的各位取反,即将,1,变,0,,,0,变,1,。,5.,左移运算符,(),左移运算的一般格式为:,运算对象,),右移运算的一般格式为:,运算对象,右移位数,右移运算符将运算对象的每个二进制位同时向右移动指定的位数,从右边移出的低位部分被丢弃。对无符号数,左边空出的高位补,0,;对有符号数,正数的高位部分补,0,,负数高位部分补,0,还是,1,跟计算机系统有关。移入,0,的称为“逻辑右移”,移入,1,的称为“算术右移”。,2.4,运算符与表达式,2.4.5,条件运算符,条件运算符“?:”是,C+,语言中唯一的一个具有,3,个操作数的运算符,其与表达式格连接的式子叫条件表达式,。,一般,格式如下:,变量,=,?,:,功能:首先计算表达式,1,的值,如果表达式,1,的值为非,0(,真,),,则整个条件表达式的值取表达式,2,的值;否则,整个条件表达式的值取表达式,3,的值。,2.4,运算符与表达式,2.4.6,赋值运算符和赋值表达式,1.,赋值运算符,在,C/C+,语言中,等号“,=”,被作为是一种运算符,称为赋值运算符。,一般形式:,=,;,功能:将右边表达式的值赋给左边的变量,。,例如,:,a=13;/,将右边数据,13,值赋给左边的变量,a,x=a+15;/,将右边表达式,(a+15),的值,28,赋给左边的变量,x,2.4,运算符与表达式,2.4.6,赋值运算符和赋值表达式,2,.,复合赋值运算符,在赋值运算符的前面加上一个其它运算符后就构成复合的赋值运算符。,一般形式:,=;,等价于:,=;,2.4,运算符与表达式,3.,赋值表达式,由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。,一般形式:,例如,,a=12,是一个赋值表达式,。,对,赋值表达式求解的过程是:将赋值运算符右侧的“表达式”的值赋给左侧的变量,而赋值表达式的值就是被赋值的变量的值。如,a=12,这个赋值表达式的值就是变量,a,的值,12,。,2.4,运算符与表达式,2.4.7,逗号运算符和逗号表达式,逗号运算符“,”作为,C+,语言的一种特殊的运算符,也称为顺序求值运算符,它的作用是把多个表达式连接起来。例如,:,3+2,,,4+6,x+3,y+z,s-1,等都是在做逗号运算。我们把用逗号运算符连接起来的式子称为逗号表达式,其一般形式为:,表达式,1,,表达式,2,,表达式,n,2.4,运算符与表达式,1.,求解过程,按照从左到右的顺序逐个求解表达式,1,,表达式,2,,表达式,n,,而整个逗号表达式的值是最后一个表达式(表达式,n,)的值。例如:,a=3*5,a*4 /,是逗号表达式,运算结束后,a=14,表达式的值是,60,x=(a=3,6*3)/,是赋值表达式,运算结束后,a=3,x=18,表达式的值是,18,x=a=3,6*3 /,是逗号表达式,运算结束后,a=3,x=18,表达式的值是,18,2,.,优先级,逗号,运算符在所有运算符中的优先级别最低,且具有从左至右的结合性。例如:,a=3*4,a*5,a+10,求解过程为:先计算,3*4,,将值,12,赋给,a,,然后计算,a*5,的值为,60,,最后计算,a+10,的值为,22,,所以整个逗号表达式的值为,22,,而,a,的值为,12,。,2.4,运算符与表达式,2.4.8,运算符的优先级与结合,顺序,表,2-14,运算符的优先级,当,表达式中包含多个运算符时,哪个运算符先参加运算是由运算符的优先级来决定的,高优先级的先参加运算,低优先级的后参加运算。运算符的优先级详见表,2-14,。,2.5,类型转换,2.,强制类型转换,强制,类型转换的一般格式为:,(,强制转换的类型名)(表达式),功能:把表达式强制转换为指定的类型。,例如,:,(int)(a),或,(int)a /,将,a,转换成整型*,/,(double)(x+y)/,将,x+y,转换成,double,型,2.6,情景应用,训练项目,2.6.1,项目,1,:,求解,方程,ax,2,+bx+c=0,(,a,不为,0,),【,问题描述,】,求解,一元二次方程,ax,2,+bx+c=0,,由键盘输入系数,输出方程的根,。,图,2-12,求一元二次方程,ax,2,+bx+c=0,的根,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服