版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 语句和表达式,徐遵义, ,a,2,主要内容,语句和表达式 赋值语句与赋值表达式 算术运算 关系运算 逻辑运算 条件运算 逗号表达式 sizeof运算 位运算 小结与作业,a,3,4.1 语句与表达式,C+中的语句 语句是程序组成的基本单位,必须是以” ;”结束 执行语句是为了完成某个操作或修改某个数据 C+语言的语句类型 变量声明语句,如:int x, y; 执行语句: 流程控制:if-else;do-while;for;switch;continue;break; 表达式语句: x=0;x = x + 1; 函数和流对象调用语句 空语句: 只有一个分号的语句
2、,其形式为:; 什么也不做,只表示语句的存在 自顶向下程序设计时用在那些未完成的模块中 复合语句: t = x; x = y; y = t;,a,4,4.1 语句与表达式,int main() DataInitialze(); DataProcess(); DataOutput(); ,void DataInitialze() ; ,if (x9) ; else coutxendl;,a,5,4.1 语句与表达式,表达式 由操作符、操作数和标点符号组成的序列,用来说明一个计算过程,如 z = x+y 操作数也称为运算量或数据,可以是常量、变量或函数;只有数据的式子是最简单的表达式。 操作符描述
3、的是对数据进行的操作,C+语言的操作符有40多种;根据操作符需要的操作数个数不同,将操作符分为 3 类:单目运算符、双目运算符和三目运算符; 表达式可以嵌套,如 2+3+5*sizeof(int)/345 表达式根据某些约定、求值次序、结合性和优先级规则来进行计算 约定:类型转换的约定,由低高 求值次序:与编译器有关,a,6,4.2 赋值语句,操作符:= 作用是将一个数据赋给一个变量,如 int a=3; 将一个表达式的值赋给一个变量,如 int a=3;int b=a+3; 赋值表达式 由赋值运算符将一个变量和一个表达式连接起来的式子 语法形式: 赋值表达式求解过程:将赋值运算符右侧“表达式
4、”的值赋给左侧的变量。表达式的值就是被赋值的变量的值。 上述一般形式中的“表达式”还可以是一个赋值表达式: a=(b=5) C语言允许连续赋值,a,7,4.2 赋值语句,变量赋初值 程序中常需要对一些变量预先设置初值。 C+语言允许在定义变量的同时使变量初始化。 int a=3; /*指定a为整型变量,初值为3*/ float f=3.56; /*指定f为实型变量,初值为3.56*/ char c=a; /*指定c为字符变量,初值为a*/ 也可以使被定义的变量的一部分赋初值。 int a,b,c=5; /*指定a,b,c为整型变量,只对c初始化*/ 如果对几个变量赋予初值3,应写为:int a
5、=3,b=3,c=3; 不能写成:int a=b=c=3,注意:int a=3; 相当于:int a; /*指定a为整型变量*/ a=3; /*赋值语句,将3赋给a*/ int a,b,c=5; 相当于: int a,b,c; /*指定a,b,c为整型变量*/ c=5; /*赋值语句,将5赋给c*/,a,8,4.3 算术运算与赋值,中学阶段已学过的算术运算 基本运算:、, , , 取余 其它运算:取整、求整(四舍伍入),() C+中的基本算术运算 +、*(乘)、/(除)、%(求余) 双目或双元运算符 +、-、*、/ 的运算量可以是整型、实型甚至为字符型 如:4 + 8、8/5、5.5*4 、
6、A 1 /对于整型数为除法取整操作,如 5/2结果为2;对于浮点数则为通常意义上的除法,如6.2/2为3.1 % 要求两个运算量必须是整型数,否则会引起编译错误 如:5%2 、 5.6%2,a,9,4.3 算术运算与赋值,C+中的基本算术运算 双目运算符在运算时运算结果的类型取决于参与运算的两个运算量的数据类型 类型一致时,结果为参与运算的两个运算量的数据类型; 当两个运算量的类型不一致时,系统会自动进行类型转换,转换成相同的类型之后再进行运算称为隐式类型转换; 隐式类型转换规则:转换总是朝表达能力更强的方向并且转换总是逐个运算符进行;,float f=3.5; int n=6; long k
7、=21; double ss=f*n+k/2;,a,10,4.3 算术运算与赋值,C+中的基本算术运算 强制类型转换,又称显示转换 在一个数值或变量前加上带括号的类型名,或类型名后跟带括号的数值或表达式 如:cout(long)234*456/6endl; coutlong(234)*456/6endl; 若类型名带类型修饰符,则只能给类型名加括号 cout(unsigned long)234*456/6endl; 溢出 一个变量被赋予一个超出其数据类型表示范围的数值时发生溢出 short weight = 32764+4; / VC结果 -32768 数值溢出不会引起编译错误(有可能引起警告
8、),但运行结果发生偏差,int a = 7 ; float x = 2.5 , y = 4.7 , z; 求表达式 z = x + a%3*( int ) ( x + y )%2/4 的值,a,11,4.3 算术运算与赋值,C+中的基本算术运算 复合的赋值运算符:将算术运算符与赋值运算符结合起来:+=、-=、*=、/=、%= 注意:两个符号之间不可以有空格 。 优先级与“=” 同级、右结合性。,例:c=b*=a+2;,a,12,4.3 算术运算与赋值,C+中的基本算术运算 自加、自减运算符(+、-) 自加运算符 + 的推出 自减运算符-的推出 自加、自减运算符均为单目运算,并且要求运算量只能是
9、变量 在表达式中,一般不考虑+、- 的优先级,而是去找它的运算量,从而确定它是以前缀形式还是以后缀形式出现,例:int i=0 ; i=i+1 ;,i=i - 1 ;,a,13,4.3 算术运算与赋值,C+中的基本算术运算 自加、自减运算符(+、-) 如果以后缀形式出现,则先参与其它运算再使变量的值增1(或减1) 如果以前缀形式出现,则先使变量的值增1(或减1)后再参与其它运算;,例:int i = 5 , x , y ; x = i+ ; y = i ; couti:i x:x y:yendl;,例:int i = 5 , x , y ; x = +i ; y = i ; couti:i x
10、:x y:yendl;,a,14,4.3 算术运算与赋值,C+中的基本算术运算 自加、自减运算符(+、-) 当表达式中只有一个+、或-运算时,前缀和后缀形式一样,如 i+; +i; 副作用问题,x=i+y ; x=i+(+y) ; x=i+y ;,a,15,4.3 算术运算与赋值,C+中的基本算术运算 负号运算符( - ):单元、单目、一元,例1: int a=5,b=8; a = - a * - b + 1 ;,例2: int x , y = 3 ; x = - y + 2;,a,16,4.4 关系运算,关系运算符: ,=,=(等于),!=(不等于),a,17,4.4 关系运算,关系运算符运
11、算出的结果为 0 和 非 0: 0 表示假,即该关系不成立; 非0 表示真,即该关系成立; 绝大多数编译器,关系运算得到的非 0 结果为 1,但是不要利用这个 1; 用关系运算符连接操作数组成的表达式成为关系表达式; 优先级、双目、左结合性 , = 优先级相同,=, != 优先级相同,且前 4 个运算符的优先级高于后面 2 个运算符的优先级; 关系运算符的优先级低于所有算术运算符的优先级;,a,18,4.4 关系运算,例: #include int main() int x=2,y=3,z; z = 3-1 = x+1 = y+2; cout“x=”x“,y=”y“,z=”zendl; ,x=
12、2, y=3, z=1 Press any key to continue,a,19,4.4 关系运算,注意 等于号 “=” 与赋值号 “=” 的区别; != 误写=!,= 误写 =; 避免对两个实数作相等或不相等的比较; x!=3 与 x=!3区别,例: int z1,z2; float f1,f2; f1 = 100.111119f; f2 = 100.1111191f; z1 = f1 = f2; z2 = fabs(f1 - f2) 1e-6;,a,20,4.4 关系运算,计算关系表达式的值与判断关系表达式的真假 int z; z = 3 bc;,a,21,4.5 逻辑运算,逻辑运算符
13、: ( a b cinch; ch = A,a,25,例:判断某年year是否是闰年。 闰年的条件是符合下面两者之一: A:能被4整除,但不能被100整除 B:能被400整除,int year,t1,t2,t3,t; scanf(%d, ,4.5 逻辑运算,a,26,4.5 逻辑运算,短路表达式 求 0 x=y=0; z = x+ ,x=1 y=0 z=0 Press any key to continue,a,28,4.5 逻辑运算,例: #include int main( ) int i=0, j=0, k=5,z; z = (+i0)|(+j0)|(k+); couti=”i“tj=”
14、j“tk=”k“tz=”“zendl; ,i=1 j=0 k=5 z=1 Press any key to continue,a,29,4.6 条件运算,条件运算符: ? : 三元运算、优先级只比赋值高 条件表达式:表达式1 ?表达式2 :表达式3; 执行过程,例: int age; int nIsAdult; / 是否成年人 age = 18 ? nIsAdult =1: nIsAdult =0;,a,30,4.7 逗号运算符,作为分隔符使用 如:float f1, f2, f3, f4; 作为运算符使用 逗号表达式的一般形式:表达式1,表达式2,表达式n 逗号表达式的值是最右边表达式的值、
15、优先级最低 如果逗号表达式的最后一个表达式为左值,则该逗号表达式为左值,int x,y,a,b; x=(y=10,y+2); cout“x:”x“ y:”yendl; b=(a=4*5,2*a , a+6) ; cout“a:”a“ b:”bendl; (a=1,b,x+1,y)=5; couta:a b:b x:x y:yendl;,a,31,4.8 sizeof运算符,一般形式为: sizeof(数据类型); sizeof(变量名);,sizeof(double) long double a; sizeof(a),#include int main() coutData type Numb
16、er of bytesendl; cout- -endl; coutchar sizeof(char)endl; coutint sizeof(int)endl; coutfloat sizeof(float)endl; coutdouble sizeof(double)endl; coutshort int sizeof(short int)endl; coutlong int sizeof(long int)endl; coutlong double sizeof(long double)endl; return 1; ,a,32,4.9 位运算,位运算符: 、 、 cina; 判断 a
17、是正数还是负数?,10000000 00000000 00000000 00000000,4.9 位运算,a,35,4.9 位运算,按位或运算符 | 运算规则:如果两个运算量的相应位不同,则该位的结果值为1,相同则为原值 应用:对字节中某N位进行置1,11111010,01111111,a,36,4.9 位运算,按位异或运算符 运算规则:如果两个运算量的相应位不同,则该位的结果值为1,否则为0,又称不进位加 应用:对数据进行简单的加密,两次异或运算又恢复为原值,1110 0010,0111 0100,0000 1111,a,37,4.9 位运算,按位取反 运算规则:对操作数的各位取反,即0变为1,1变为0。 应用:对数据进行简单的加密,两次取反运算又恢复为原值,1000 0101,a,38,4.9 位运算,左移位 运算规则:对操作数 X 的每一位向右平移n位, 当X为有符号数时,左边空位补符号位上的值,算术移位; 当X为无符号数时,左边空位补0,逻辑移位; 应用:快速地实施整数的乘法,右移 n 位相当于除以2n 位运算与赋值运算的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省南阳市邓州市重点名校2025-2026学年初三第三次模拟考试英语试题含解析
- 邵东县2025-2026学年初三第五次中考模拟考试语文试题含解析
- 岳阳市湘阴县重点名校2025-2026学年初三下学期期末教学质量检测试题(Ⅰ)数学试题含解析
- 浙江省宁波市名校2026届初三暑假末结业考试物理试题含解析
- 江苏省东台市第四联盟市级名校2025-2026学年初三英语试题期末练习试卷含解析
- 重庆市七中学2025-2026学年初三下期第二次模拟考试英语试题文试题含解析
- (正式版)DB37∕T 3039-2017 《化妆品中溴硝丙二醇的测定 高效液相色谱法》
- 压疮护理中的护理实践与经验
- 2026年旅游管理专业导游证考取与带团技巧
- 2026年基站建设项目施工计划书
- 2026中交集团纪委第一办案中心社会招聘笔试历年常考点试题专练附带答案详解
- 2026年春季新教材教科版(2024)三年级下册科学全册教案
- 紫外线灯使用及安全指导
- GB/T 8554-2026电子和通信设备用变压器和电感器测试方法和试验程序
- 工业厂房改造项目风险评估报告
- 离婚后共同财产分割协议
- (2026年春季新版本)人教版二年级数学下册全册教案
- 澳门《网络安全管理基准规范》
- (完整版)杭州钱江新城中心区城市设计控规部分
- 中医治疗颈椎病课件完整版
- 器质性精神障碍的护理
评论
0/150
提交评论