cxm-第3讲 C语言程序设计课件.pptVIP

  • 1
  • 0
  • 约 25页
  • 2017-06-19 发布于湖北
  • 举报
* * C语言程序设计 第三章 表达式与运算符 主讲: 计算机学院 曹晓梅 * * 内容提要 表达式体现对数据的处理,由运算符和运算对象组成 掌握每种运算符的以下知识: 对运算对象的要求 运算符的结合性 运算符的优先级 运算结果的特性 有多种运算符的复杂表达式的计算顺序及计算结果 数据类型的自动转换规则及强制转换的方法 * * 表达式的组成 表达式实现对数据的处理,每个表达式都有唯一的值 表达式由运算对象和运算符组成 运算对象的种类:常量、变量、有返回值的函数调用、其它表达式 例:2 a rand() (2+a)*rand( ) 运算符:共34种,分为15个不同的优先级 可以理解成是不带运算符的最简单表达式 常量表达式 变量表达式 函数表达式 带运算符的表达式 * * 左值与右值 表达式不是左值就是右值。 左值与右值的关系:右值只能出现在赋值号的右边;而左值既可以出现在赋值号的左边,又可以出现在赋值号的右边。左值可以取地址,右值不可以取地址. 例: 2 a rand() (2+a)*rand( ) a=b 常量表达式只能作为右值 例:a=2;(右值) 变量表达式为左值,既可在赋值号左边也可以在右边,例:a=5;(左边) b=a;(右边) 此函数表达式为右值 例:a=rand( )右值 此表达式只能作为右值 例:b=(2+a)*rand( ); (右值) 赋值表达式只能作为右值 例:c=a=b;(右值) (a=b)=c;(出错) * * 算术运算符 算术运算符主要完成数值计算问题,具体如下表所列 运算符 优先级 结合方向 对运算对象的要求 运算结果特性 特殊说明 - 取负 2 从右到左 整、实型值 运算对象的相反数 单目运算符 ++ 自增 整,实,字符,指针型变量 结果与变量的值可能一致 单目,分为前++ 后++ -- 自减 单目,分为前++ 后- - * 乘 3 从左到右 允许整型与实型数混合 只要有1个实对象结果实型,否则整型结果 / 除 两个整数相除只能得到整数商 % 取余 仅限整型数 整除的余数 正负号同第1数 + 加 4 从左到右 允许整型与实型数混合 只要有1个实对象结果实型,否则整型结果 - 减 例:int a=3,b,c; a++的表达式结果是3,变量a的值是4; ++a的表达式结果是4,变量a的值是4; 因此,c=a++执行后, c的值是3,a的值是4 b=++a执行后,b的值是4,a的值也是4 例:int a=3; -a结果为-3,但是变量a的值仍为3 -2.45是2.45的相反数 例:int a=3,b,c; a--的表达式结果是3,变量a的值是2; --a的表达式结果是2,变量a的值是2; 因此,c=a--执行后, c的值是3,a的值是2 b=--a执行后,b的值是2,a的值也是2 例:int a=27,b=5,c; 表达式a/b结果是5,而不是5.4 表达式27.0/b结果是5.4 表达式27.0/5.0结果是5.4 例:int a=27,b=5,c; 表达式a%b结果是2, 表达式-a%b结果是-2 表达式27.0%b是错误的 例:表达式2+3结果是5 表达式2+3.0结果是5.0 表达式2.0+3.0结果是5.0 例:表达式3-2结果是1 表达式3.0-2结果是1.0 表达式3.0-2.0结果是1.0 * * 算术运算符 程序3.1 赋值表达式及算术运算符示例 #includestdio.h #includestdlib.h //包含随机函数rand的声明 int main( ) { int a=5,b=6,c=7; printf(“%d\n”,rand()); //显示随机数 print(%d\n,a*(b+c)/2-2); //显示算术表达式的值 printf(%d\n,a=b); //显示赋值表达式即a的值 b=rand()%10; //混合表达式赋0至9之间的1个随机数 printf(“%d\n”,c=a=b); //显示赋值表达式的值即c的值 return 0; } 动态 演示 过程 * * 关系运算符 关系运算符主要完成表达式间的比较,比较的结果非真即假,C语言中无逻辑类型,故用1表示真,0表示假 任何类型的值,只要不等于0,在需要作出真假判断的场合就代表逻辑真。 运算符 优先级 结合方向 对运算对象的要求 运算结果特性 大于 6 从左到右 允许不同类型的值混合计算,运算对象非0就表示真值,0表示假,当类型不一致时,会自动进行类型转换为同一

文档评论(0)

1亿VIP精品文档

相关文档