C++语句和表达式ppt课件_第1页
C++语句和表达式ppt课件_第2页
C++语句和表达式ppt课件_第3页
C++语句和表达式ppt课件_第4页
C++语句和表达式ppt课件_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、第4章语句和表达式,徐遵unyixu,zunyixu,课件制作,2,主要内容,语句和表达式赋值语句与赋值表达式算术运算关系运算逻辑运算条件运算逗号表达式sizeof运算位运算小结与作业,课件制作,3,4.1语句与表达式,C+中的语句语句是程序组成的基本单位,必须是以”;”结束执行语句是为了完成某个操作或修改某个数据C+语言的语句类型变量声明语句,如:intx,y;执行语句:流程控制:if-else;do-while;for;switch;continue;break;表达式语句:x=0;x=x+1;函数和流对象调用语句空语句:只有一个分号的语句,其形式为:;什么也不做

2、,只表示语句的存在自顶向下程序设计时用在那些未完成的模块中复合语句:t=x;x=y;y=t;,课件制作,4,4.1语句与表达式,intmain()DataInitialze();DataProcess();DataOutput();,voidDataInitialze();,if(x9);elsecoutxendl;,课件制作,5,4.1语句与表达式,表达式由操作符、操作数和标点符号组成的序列,用来说明一个计算过程,如z=x+y操作数也称为运算量或数据,可以是常量、变量或函数;只有数据的式子是最简单的表达式。操作符描述的是对数据进行的操作,C+语言的操作符有40多种;根据操作符需要的操作数个数

3、不同,将操作符分为3类:单目运算符、双目运算符和三目运算符;表达式可以嵌套,如2+3+5*sizeof(int)/345表达式根据某些约定、求值次序、结合性和优先级规则来进行计算约定:类型转换的约定,由低高求值次序:与编译器有关,课件制作,6,4.2赋值语句,操作符:=作用是将一个数据赋给一个变量,如inta=3;将一个表达式的值赋给一个变量,如inta=3;intb=a+3;赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子语法形式:赋值表达式求解过程:将赋值运算符右侧“表达式”的值赋给左侧的变量。表达式的值就是被赋值的变量的值。上述一般形式中的“表达式”还可以是一个赋值表达式:a=

4、(b=5)C语言允许连续赋值,课件制作,7,4.2赋值语句,变量赋初值程序中常需要对一些变量预先设置初值。C+语言允许在定义变量的同时使变量初始化。inta=3;/*指定a为整型变量,初值为3*/floatf=3.56;/*指定f为实型变量,初值为3.56*/charc=a;/*指定c为字符变量,初值为a*/也可以使被定义的变量的一部分赋初值。inta,b,c=5;/*指定a,b,c为整型变量,只对c初始化*/如果对几个变量赋予初值3,应写为:inta=3,b=3,c=3;不能写成:inta=b=c=3,注意:inta=3;相当于:inta;/*指定a为整型变量*/a=3;/*赋值语句,将3赋

5、给a*/inta,b,c=5;相当于:inta,b,c;/*指定a,b,c为整型变量*/c=5;/*赋值语句,将5赋给c*/,课件制作,8,4.3算术运算与赋值,中学阶段已学过的算术运算基本运算:、,取余其它运算:取整、求整(四舍伍入),()C+中的基本算术运算+、*(乘)、/(除)、%(求余)双目或双元运算符+、-、*、/的运算量可以是整型、实型甚至为字符型如:4+8、8/5、5.5*4、A1/对于整型数为除法取整操作,如5/2结果为2;对于浮点数则为通常意义上的除法,如6.2/2为3.1%要求两个运算量必须是整型数,否则会引起编译错误如:5%2、5.6%2,课件制作,9,4.3算术运算与赋

6、值,C+中的基本算术运算双目运算符在运算时运算结果的类型取决于参与运算的两个运算量的数据类型类型一致时,结果为参与运算的两个运算量的数据类型;当两个运算量的类型不一致时,系统会自动进行类型转换,转换成相同的类型之后再进行运算称为隐式类型转换;隐式类型转换规则:转换总是朝表达能力更强的方向并且转换总是逐个运算符进行;,floatf=3.5;intn=6;longk=21;doubless=f*n+k/2;,课件制作,10,4.3算术运算与赋值,C+中的基本算术运算强制类型转换,又称显示转换在一个数值或变量前加上带括号的类型名,或类型名后跟带括号的数值或表达式如:cout(long)234*456

7、/6endl;coutlong(234)*456/6endl;若类型名带类型修饰符,则只能给类型名加括号cout(unsignedlong)234*456/6endl;溢出一个变量被赋予一个超出其数据类型表示范围的数值时发生溢出shortweight=32764+4;/VC结果-32768数值溢出不会引起编译错误(有可能引起警告),但运行结果发生偏差,inta=7;floatx=2.5,y=4.7,z;求表达式z=x+a%3*(int)(x+y)%2/4的值,课件制作,11,4.3算术运算与赋值,C+中的基本算术运算复合的赋值运算符:将算术运算符与赋值运算符结合起来:+=、-=、*=、/=、%

8、=注意:两个符号之间不可以有空格。优先级与“=”同级、右结合性。,例:c=b*=a+2;,课件制作,12,4.3算术运算与赋值,C+中的基本算术运算自加、自减运算符(+、-)自加运算符+的推出自减运算符-的推出自加、自减运算符均为单目运算,并且要求运算量只能是变量在表达式中,一般不考虑+、-的优先级,而是去找它的运算量,从而确定它是以前缀形式还是以后缀形式出现,例:inti=0;i=i+1;,i=i-1;,课件制作,13,4.3算术运算与赋值,C+中的基本算术运算自加、自减运算符(+、-)如果以后缀形式出现,则先参与其它运算再使变量的值增1(或减1)如果以前缀形式出现,则先使变量的值增1(或减

9、1)后再参与其它运算;,例:inti=5,x,y;x=i+;y=i;couti:ix:xy:yendl;,例:inti=5,x,y;x=+i;y=i;couti:ix:xy:y=x+1=y+2;cout“x=”x“,y=”y“,z=”zbcinch;ch=A,课件制作,25,例:判断某年year是否是闰年。闰年的条件是符合下面两者之一:A:能被4整除,但不能被100整除B:能被400整除,intyear,t1,t2,t3,t;scanf(%d,4.5逻辑运算,课件制作,26,4.5逻辑运算,短路表达式求0 x=y=0;z=x+,x=1y=0z=0Pressanykeytocontinue,课件

10、制作,28,4.5逻辑运算,例:#includeintmain()inti=0,j=0,k=5,z;z=(+i0)|(+j0)|(k+);couti=”i“tj=”j“tk=”k“tz=”“z=18?nIsAdult=1:nIsAdult=0;,课件制作,30,4.7逗号运算符,作为分隔符使用如:floatf1,f2,f3,f4;作为运算符使用逗号表达式的一般形式:表达式1,表达式2,表达式n逗号表达式的值是最右边表达式的值、优先级最低如果逗号表达式的最后一个表达式为左值,则该逗号表达式为左值,intx,y,a,b;x=(y=10,y+2);cout“x:”x“y:”yendl;b=(a=4*

11、5,2*a,a+6);cout“a:”a“b:”bendl;(a=1,b,x+1,y)=5;couta:ab:bx:xy:yendl;,课件制作,31,4.8sizeof运算符,一般形式为:sizeof(数据类型);sizeof(变量名);,sizeof(double)longdoublea;sizeof(a),#includeintmain()coutDatatypeNumberofbytesendl;cout-endl;coutcharsizeof(char)endl;coutintsizeof(int)endl;coutfloatsizeof(float)endl;coutdoubles

12、izeof(double)endl;coutshortintsizeof(shortint)endl;coutlongintsizeof(longint)endl;coutlongdoublesizeof(longdouble)a;判断a是正数还是负数?,10000000000000000000000000000000,4.9位运算,课件制作,35,4.9位运算,按位或运算符|运算规则:如果两个运算量的相应位不同,则该位的结果值为1,相同则为原值应用:对字节中某N位进行置1,11111010,01111111,课件制作,36,4.9位运算,按位异或运算符运算规则:如果两个运算量的相应位不同,则

13、该位的结果值为1,否则为0,又称不进位加应用:对数据进行简单的加密,两次异或运算又恢复为原值,11100010,01110100,00001111,课件制作,37,4.9位运算,按位取反运算规则:对操作数的各位取反,即0变为1,1变为0。应用:对数据进行简单的加密,两次取反运算又恢复为原值,10000101,课件制作,38,4.9位运算,左移位运算规则:对操作数X的每一位向右平移n位,当X为有符号数时,左边空位补符号位上的值,算术移位;当X为无符号数时,左边空位补0,逻辑移位;应用:快速地实施整数的乘法,右移n位相当于除以2n位运算与赋值运算的复合:x=(a+b)*(c+d);写成x=(a+b)(c+d);x=(a+b)/c;写成x=a+

温馨提示

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

评论

0/150

提交评论