cc课件C试卷_20200520_130735chp2_第1页
cc课件C试卷_20200520_130735chp2_第2页
cc课件C试卷_20200520_130735chp2_第3页
cc课件C试卷_20200520_130735chp2_第4页
cc课件C试卷_20200520_130735chp2_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章数据类型与表达式,2.1C+的数据类型2.2常量2.3变量2.4C+的运算符2.5算术运算符与算术表达式2.6赋值运算符与赋值表达式2.7逗号运算符与逗号表达式,2.1C+的数据类型,#includeusingnamespacestd;intmain()/求圆的周长和面积doubler,girth,area;constdoublepi=3.1415;coutr;girth=2*pi*r;area=pi*r*r;coutradius=rendl;coutgirth=girthendl;coutarea=arear;girth=2*pi*r;area=pi*r*r;coutradius=rendl;coutgirth=girthendl;coutarea=area,314.1590.314159e3,2实型数据的存储形式,位数与C语言系统有关,1.普通的字符常量,用单引号括起来的一个字符。a#%D4注意:只包括一个字符,如AB是不合法的。区分大小写字母,如A和a是两个不同的字符常量。字符常量都是char类型,在内存中占一个字节。,2.2.3字符常量,附录A常用字符与ASCII代码对照表,每个字符对应一个ASCII代码(0255整数);包括有:控制字符:如回车,退格,响铃等普通字符:ASCII码从32至126对应的字符控制字符如何表示?-可用转义字符表示,2.转义字符常量,转义字符字符序列以“”为前缀,表示改变后面字符序列使其成为控制符或字符值。,字符序列共有两类:单字符整数值,C+常用转义字符,1.3.3基本类型,1.3C+的基本数据类型与存储形式,2.转义字符常量,C+常用转义字符,1.3.3基本类型,1.3C+的基本数据类型与存储形式,2.转义字符常量,例如:英文字母A的三种表示方法:A101A的ASCII码是65=(101)8x41=(41)16,字符#的三种表示方法:173#的ASCII码是123=(173)8x7B=(7B)16,C+常用转义字符,1.3.3基本类型,1.3C+的基本数据类型与存储形式,2.转义字符常量,又如:字符的三种表示方法:A的ASCII码是34=(42)8=(22)16,如:字符常量a和b内存存放的是a的ASCII码97,b的ASCII码98,,3.字符数据在内存中的存储形式,每个字符对应一个代码;内存中占一个字节C+的字符型与整型数据密切相关,可以用ASCII值参与算术运算,例2.1将字符赋给整型变量。#includeusingnamespacestd;intmain()inti,j;/i和j是整型变量i=A;/将一个字符常量赋给整型变量ij=B;/将一个字符常量赋给整型变量jcoutijn;/输出整型变量i和j的值,/n是换行符return0;执行时输出6566,可以看到:在一定条件下,字符型数据和整型数据是可以通用的。但是应注意字符数据只占一个字节。,例2.2将字符数据与整数进行算术运算。#includeusingnamespacestd;intmain()charc1,c2;/c1和c2是字符型变量c1=a;/将字符常量赋给变量c1c2=b;/将字符常量赋给变量c2c1=c1-32;/c1的值为97-32=65c2=c2-32;/c2的值为98-32=66coutc1c2n;/输出字符型变量的值(字符)return0;执行时输出AB,用双引号括起来的若干个字符是字符串常量,如:abcHello!a+bLiping,4.字符串常量,字符串常量abc在内存中占4个字节;编译系统会在每个字符串之后自动加一个0作为字符串结束标志。0的ASCII码值为0,叫空字符,字符串常量在内存中,例,以下字符串常量在内存中各占多少字节?hello101abncd,-6个字节,5个字符,最后1个是0,-8个字节,7个字符,最后1个是0,区分字符常量与字符串常量,一个字符:a一个字符串:apath:d:mathex1.c,#includeintmain()coutx07operationtsystemn;cout101tA012;return0;,例注意字符串中的转义字符,1.3.3基本类型,1.3C+的基本数据类型与存储形式,#includeintmain()coutx07operationtsystemn;cout101tA012;return0;,1.3.3基本类型,1.3C+的基本数据类型与存储形式,例注意字符串中的转义字符,#includeintmain()coutx07operationtsystemn;cout101tAr;girth=2*pi*r;/使用符号常量pi,代表3.14159area=pi*r*r;/使用符号常量pi,代表3.14159coutradius=rendl;coutgirth=girthendl;coutarea=area结果为double型,char+long+int=结果为long型,charc=a;inti=12;floatf=1.23;c+1/*结果为整型*/10+3*b/2/*结果为整型*/c+i*f/*结果为double型*/,2.5.3表达式中各类数值型数据间的混合运算,1,1.6.1算术表达式,2.5.4自增和自减运算符,程序设计中,常对变量进行如下操作:i=i+1i=i-1定义:inti=0;,程序设计中,常对变量进行如下操作:i=i+1i=i-1,1,程序设计中,常对变量进行如下操作:i=i+1i=i-1,1,1.6.1算术表达式,程序设计中,常对变量进行如下操作:i=i+1i=i-1,1,1.6.1算术表达式,程序设计中,常对变量进行如下操作:i=i+1i=i-1,C+为其提供自增和自减算符,自增式和自减式作为独立的表达式,前缀式和后缀式没有区别;i+;+i;作为表达式右值时:(1)前缀式先变量增值,后用变量新值计算表达式例:x=+i;相当于i=i+1;x=i;(2)后缀式先用原变量值计算表达式,后变量增值例:x=i+;相当于x=i;i=i+1;,1.6.1算术表达式,例:inta=3,b;b=a+;a=,b=b=+a;a=,b=,1.6.1算术表达式,例:inta=3,b;b=a+;a=4,b=3b=+a;a=4,b=4,1.6.1算术表达式,例:inta=3;intb=+a;/相当于a=a+1;b=a;intc=a+;/相当于c=a;a=a+1;b=a-;/相当于b=a;a=a-1;c=-a;/相当于a=a-1;c=a;+(a+);/错(a+)不是变量名c=a+b;/错a+无法对b操作c=a+b;/相当于c=a+b;a=a+1;c=a+b;/(a+)+b错注意:编译扫描器优先从左识别算符,1.6.1算术表达式,注:自增、自减算符的运算对象只能是整型变量,不能为常量或表达式;例:5+(a+)(x+y)-均为错误,1.6.1算术表达式,例:i=5;x=(i+)+(i+);x=?i=?(1)x=5+5=10先计算表达式的值,再自增(2)i=i+1;i=i+1;即i=7,1.6.1算术表达式,例:i=5;x=(+i)+(i+);x=?i=?(1)i=i+1=6(2)x=6+6=12计算表达式的值(3)i=i+1即i=7不要用容易产生歧义的表达式。,1.6.1算术表达式,程序编制者利用强制类型转换运算符将一个表达式转换成所需类型。形式:(类型名)(表达式)类型名(表达式)例如:(double)(将a转换成double类型)double(a)(int)(x+y)(将x+y的值转换成整型)int(x+y)(float)(5%3)(将5%3的值转换成float型)(int)x+y(只将x转换成整型,然后与相加)(int)5.5%2(5%2),2.5.5强制类型转换运算符,例2.4强制类型转换。#includeusingnamespacestd;intmain()floatx;inti;x=3.6;i=(int)x;/或写成i=int(x);coutx=xi=iendl;return0;运算结果:x=3.6i=3,=赋值运算符;功能:将运算表达式的值赋给左边的变量优先级:15(低)赋值表达式:a=3b=ai=i+1c=a*(b+c),变量=表达式,2.6赋值运算符与赋值表达式2.6.1赋值运算符,当赋值运算符两边类型不同或同类型不同长度时,系统自动进行转换;,赋值过程中的隐式类型转换:,例2.5将有符号数据传送给无符号变量。#includeusingnamespacestd;intmain()unsignedshorta;shortintb=-1;a=b;couta=aendl;return0;运算结果:a=65535,赋值过程中的隐式类型转换:,*整型b=3a=y;=a=3,a)赋值运算符两边不同类型,b)赋值运算符两边同类型,不同长度,*float=double:在取值范围内截取相应的有效位数floatx;doubley;,y=1.23456789e12x=y;,y=1.23456789e56x=y;/*数据溢出*/,*实型(长)=实型(短):以长实型表示并存储,实型:,赋值过程中的隐式类型转换:,#includeusingnamespacestd;intmain()inta=65536;/4个字节shortb;/2个字节b=a;couta=atb=bendl;return0;输出:a=65536b=0,整型(短)整型(长):截断,#includeusingnamespacestd;intmain()inta;shortb=-1;a=b;couta=atb=bendl;return0;输出:a=-1b=-1,整型(长)整型(短):有符号用符号位补满无符号用0补满,#includeusingnamespacestd;intmain()unsignedinta;unsignedshortb=15;a=b;couta=atb=b=b=a;/b是左值c=b;/b也是右值赋值表达式中的“表达式”,又可以是一个赋值表达式。如a=(b=5)下面是赋值表达式的例子:a=b=c=5(赋值表达式值为5,a,b,c值均为5)a=5+(c=6)(表达式值为11,a值为11,c值为6)a=(b=4)+(c=6)(表达式值为10,a值为10,b等于4,c等于6)a=(b=10)/(c=2)(表达式值为5,a等于5,b等于10,c等于2),inta=12;a+=a-=a*a先进行“a-=a*a”的运算,它相当于a=a-(a*a)=12-12*12-132。再进行“a+=-132”的运算,它相当于a=a+(-132)-132-132-264。,2.7逗号运算符和逗号表达式,逗号表达式格式:,表达式1,表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论