《cchap数据类型和表达式.pptx》由会员分享,可在线阅读,更多相关《cchap数据类型和表达式.pptx(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本章主要内容 C+的数据类型 C+的常量 C+的变量 C+中的各种运算符和表达式1第1页/共46页1.C+的数据类型数据类型是数据存在的一种形式,C+可以使用的数据类型包括:2构造类型第2页/共46页1.C+的数据类型3见书P19不仅与操作系统有关,还与编译器有关第3页/共46页1.C+的数据类型C+的数据通常以“常量”或“变量”的形式表现出来,因此,常量和变量都具有类型。C+允许用户根据需要构造自己的数据类型,称为自定义数据类型或派生类型。如:数组、指针、结构、枚举和类等类型。4第4页/共46页2.常量常量是指在程序中不能改变的量。当用符号来表示常量时,称为符号常量。常量也区分不同的类型。如
2、:30,40 为整型,30.0,40.0为实型,编辑器只是根据其表面形式来判断其类型。(和和C语语言言中中的常量表示相同的常量表示相同)5第5页/共46页2.常量C+的常量有以下几种:(1)整型常量十进制整型常量八进制整型常量十六进制整型常量6可在整数字面值后加U或L(u或l),用来表示无符号整数或长整型0123 /8进制 以0开头的数字序列0 x12af3 /16进制 以0 x开头的数字序列12345 /10进制 以非0数字开头的数字序列第6页/共46页2.常量 超过表示范围的整型数其值不可预料或者出错。如7int a=12345678912345678912345;/对吗?unsigned
3、 int x=-43;/对吗?第7页/共46页2.常量(2)浮点型常量十进制浮点数表示:定点表示科学记数法表示法例如:123.51.235e28尾数部分的绝对值要大于1,小于10第8页/共46页2.常量 C+规 定 浮 点 数 常 量 默 认 为 双 精 度(double)型,如果在浮点数后面加字母f或F,表示为float类型;如果在浮点数后面加字母l或L,表示为长双精度类型。例如:120.1,1.201e+02 为double型0.013f,1.3e-02f 为float型9第9页/共46页2.常量(3)字符常量普通的字符常量:单引号括起的一个字符转义字符常量:也称非打印字符,一般是以开始的
4、一种表示形式。例如:n,t10第10页/共46页2.常量字符常量在内存中的存储形式及其使用方法11由于在内存中的形式与整型数据相同,所以,可以直接用其整型值给变量c1、c2赋值。第11页/共46页2.常量#includeusing namespace std;void main(void)char a,b;a=A;/输入ASCII码 b=65;/输入十进制数 couta=aendl;coutb=bendl;#includeusing namespace std;void main(void)int a=65;char b=65;couta“n”;coutb“n”;1201000001a,b在内
5、存中的表示均是相同的运行结果:a=AB=A运行结果:65A注意:一定要按照定义的类型输出第12页/共46页2.常量#includeusing namespace std;void main(void)char c1,c2,c3,c4;char n1,n2;c1=a;/字符常量 c2=97;/十进制 c3=x61;/转义字符 c4=0141;/八进制 coutc1=c1tc2=c2endl;coutc3=c3tc4=c4endl;n1=n;/转义字符:回车 n2=t;/转义字符:下一个输出区(Tab)cout使用转义字符n;coutc1=c1n2c2=c2n1;coutc3=c3n2c4=c4n
6、1;13输出:c1=a c2=a c3=a c4=a使用转义字符c1=a c2=a c3=a c4=a第13页/共46页2.常量(4)字符串常量是由一对双引号括起的字符序列。字符串常量可由任何字符组成,在内存中顺序存放,并以0作为结束标志。例如:“CHINA”其内存的存放形式为:14CHINA0第14页/共46页2.常量15字符串“CHINA”十六进制和二进制的内存存放形式:0 x430 x480 x490 x550 x410010000110100100001001001010101010100000100000000单字符N的ASCII码的十六进制单字符N的ASCII码的二进制第15页/共
7、46页2.常量(5)符号常量符号常量就是使用一个标识符来表示某个常量值。在C+中有二种定义方法,一种是使用编译预处理指令define;另一种是使用C+的常量说明符const。16第16页/共46页2.常量方法1:#define PI 3.1415926/在程序中凡是出现PI的均用3.1415926替代或者方法2:const float pi=3.1415926;/将变量pi定义为常量17一般用大写字母第17页/共46页2.常量#includeusing namespace std;#define PI 3.14159#define S Chinavoid main(void)const dou
8、ble pi=3.14159;/变量作为常量使用 coutPI=PIendl;cout10*PI=10*PIendl;coutSendl;/PI=PI+3;/pi=pi+4;coutPI=PIendl;coutpi=piendl;18输出:PI=3.1415910*PI=31.4159ChinaPI=3.14159pi=3.14159第18页/共46页练习下列常量的表示在C+中是否合法?若不合法,指出原因;若合法,则指出常量的数据类型。19红色的为正确的3276735u 1.25e3.4 3L32768“Computer System”“a”a yesorNo -.567f3276735u 1
9、.25e3.4 3L32768“Computer System”“a”a yesorNo -.567f第19页/共46页练习在下列表示十六进制int型常量中,错误的是A)0X1bB)2fxC)0 xaf D)0 xae20B第20页/共46页3.变量在程序的执行过程中,其值可以改变的量称为变量。变量名必须用标识符来标识。变量根据其取值的不同值域,分为不同类型的变量:整型变量、实型变量、字符型变量、结构型变量、指针型变量等等。21第21页/共46页3.变量对于任一变量,编译程序要为其分配若干个字节(连续的)的内存单元,以便保存变量的取值。例如:int a=3;22第22页/共46页3.变量当要改
10、变一个变量的值时,就是把变量的新的取值存放到为该变量所分配的内存单元中;用到一个变量的值时,就是从该内存单元中取出数据。不管什么类型的变量,通常均是变量的说明在前,使用变量在后。23第23页/共46页3.变量变量赋初值int a=4;/定义语句,在开辟空间后马上为空间赋值 a=6;/重新为该空间赋值24a4 6第24页/共46页3.变量例如:int i=2,j=3;i=i+j;j=i+j;i=i-j;j=i*j;cout“i=”i“n”“j=”jendl;25第25页/共46页4.C+运算符C+运算符包括:算术运算关系运算逻辑运算位运算赋值运算符条件运算符逗号运算符指针运算符(*)引用运算符和
11、地址运算符(&)求字节数运算符强制转换运算符成员运算符指向成员的运算符下标运算符其他(如函数调用运算符()26见书:P30 与C的使用方法大致相同第26页/共46页4.C+运算符在算术运算中,注意:表达式中各类数值数据间的混合运算27第27页/共46页有关各运算符的练习1.如果有如下类型说明语句char w;int x;float y;double z;则表达式 w*x+z-y 的结果为()类型。A)float B)double C)int D)char28第28页/共46页4.C+运算符 自增(+)和自减(-)运算符强制类型转换运算符29第29页/共46页有关各运算符的练习2.在下列选项中,
12、与k=n+;语句功能完全等价的表达式是()A)k=n,n=n+1B)n=n+1,k=nC)k=+nD)k+=n+130运行结果:A第30页/共46页有关各运算符的练习3.以下程序的运行结果是:#includeiostreamusing namespace std;void main()int x=3,y=2;double a=3.5,b=2.5;cout(x+y)%2+(int)a/(int)bendl;31运行结果:2第31页/共46页有关各运算符的练习4.设 x 和 y 均为 int 型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是()。A)把 x 和 y 按从大到小排列B)无
13、确定结果C)把 x 和 y 按从小到大排列D)交换 x 和 y 中的值32第32页/共46页有关各运算符的练习5.设int i=1,j=2;表达式+i+j 的值为()。A)1 B)2 C)3 D)433第33页/共46页有关各运算符的练习6.设int a=5,b=6,c=7,d=8,m=2,n=2;表达式(m=ad)的值为()。A)2 B)3 C)1 D)034第34页/共46页有关各运算符的练习7.设a为整型变量,不能正确表达数学关系:10a15 的C语言表达式是()。A)10a10&a15 D)!(a=15)35第35页/共46页有关各运算符的练习8.设x、y、z、s均为int型变量,且初
14、值均为1,则执行语句s=+x|+y&+z;后,s的值为()。A)不定值 B)2 C)1 D)036第36页/共46页有关各运算符的练习9.以下程序的运行结果是:#includeiostreamusing namespace std;void main()int a=010,b=0 x10,c=10;coutabcendl;37运行结果:81610第37页/共46页有关各运算符的练习10.若有定义int a=12,则表达式 a+=a-=a 的值为()。A)0B)2 C)10 D)1211.若已经定义int x=5.5,y;则表达式y=2.75+x/2的值是()。A)5.5B)5 C)4D)4.0
15、38第38页/共46页有关各运算符的练习12.执行下列语句后,输出结果是()#includeiostreamusing namespace std;void main()int c=5;cout(c+=2,c+8,+c)endl;39运行结果:8第39页/共46页有关各运算符的练习13.当A的值为奇数时,表达式的值为“真”;当A的值为偶数时,表达式的值为“假”,则下面不能满足要求的表达式是?A)A%2=1B)!(A%2=0)C)!(A%2)D)A%240第40页/共46页有关各运算符的练习14.若给定条件表达式(S)?(a+):(a-),则与表达式S等价的是?A)和(S=0)等价 B)和(S=
16、1)等价C)和(S!=0)等价 D)和(S!=1)等价41第41页/共46页有关各运算符的练习15.下列表达式选项中那个是正确的()A)+(a+)B)a+b C)a+b D)a+b 42第42页/共46页有关各运算符的练习16.输出结果是()#includeusing namespace std;int main()double x;int i;x=3.6;i=(int)x;cout“x=”x“,i=”iendl;return 0;43运行结果:x=3.6,i=3第43页/共46页有关各运算符的练习17.写出下列数学表达式的C+算式表达式44第44页/共46页8.作业看书第2章全部内容做本章书后习题全部不会的问老师和同学45第45页/共46页46感谢您的观赏!第46页/共46页