C语言使用的基本表达式

上传人:ldj****22 文档编号:51936892 上传时间:2018-08-17 格式:PPT 页数:28 大小:540.50KB
返回 下载 相关 举报
C语言使用的基本表达式_第1页
第1页 / 共28页
C语言使用的基本表达式_第2页
第2页 / 共28页
C语言使用的基本表达式_第3页
第3页 / 共28页
C语言使用的基本表达式_第4页
第4页 / 共28页
C语言使用的基本表达式_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《C语言使用的基本表达式》由会员分享,可在线阅读,更多相关《C语言使用的基本表达式(28页珍藏版)》请在金锄头文库上搜索。

1、共 56 页 第 1 页C语言使用的基本表达式有:赋值表达式,如:a=3算数表达式,如:3+4*2关系表达式,如:32逻辑表达式,如:35 -9/2=-4; %是取余数运算符,只能作用于两个整数。运算结果的符号 与被除数的符号一致。9%2=1 ; -9%2=-1 ; 9%-2=1; 共 56 页 第 3 页符号说明优先级结合性算术表达式+ -单目取正 单目取负14 14从右到左a=+8 b=-a * / %乘 除 取余13 13 13从左到右a=12*5.5 b=14/6.5 c=12%5 + -加 减12 12从左到右a=15+8.5 b=18-8.5基本算术运算符共 56 页 第 4 页运

2、算符属性:运算符属性:(1) 优先级当若干个运算符同时出现在表达式中时,优先级规定了 运算的先后次序。优先级有15级。C语言把圆括号作为运算符,规定它的优先级最高,规 定为15级,从而保证优先运算圆括号内的式子,逗号运算符 的级别最低,规定为1级。 (2) 结合性当若干个具有相同优先级的运算符相邻出现在表达式中 时,结合性规定了运算的先后次序。分为“从左到右”和“ 从右到左”两个结合方向。大多数运算符的结合方向”从左到右”;单目运算符、赋值运算符和条件运算符的结合方向”从右 到左”(单目运算符是指作用于一个操作对象的运算符)。共 56 页 第 5 页例: 将下列数学表达式: 写成符合C语语言规

3、则规则 的表达式如下: (a+b+c)/(sqrt(a)+b*( sin(x)+sin(y)+sin(z)其中sqrt(a)和sin(x)、sin(y)、sin(z)都是数学函数的引用,表达式中用了三层 括号,以保证表达式的运算顺序。共 56 页 第 6 页2.3.2 赋值运算符和赋值表达式1.一般赋值运算符:=赋值表达式:由赋值运算符将一个变量和一个表达式连接起来的 式子。形式:变量名=常量或表达式 作用:将右边常量或表达式的值赋给左边的变量。 例: a=3 共 56 页 第 7 页2.3.2 赋值运算符和赋值表达式说明: (1) 赋值后,原来左边的值被右边表达式的值替换; (2) 如果右边

4、表达式的值的类型与左边变量的类型不一 致,以左边变量的类型为准,将表达式值的类型转换 为左边变 量的类型。 (3) 结合方向“从右向左”。例: x=y=a+b 等价 x=(y=a+b) (4) 左边变量的值作为整个赋值表达式的值.x=y=3+4 (值为7) (5)赋值表达式加上分号, 称为赋值语句. 如:x=a+5;共 56 页 第 8 页例: main() int a;double b=3.5;a=b+2.1;printf(“a=%d”,a);共 56 页 第 9 页2. 复合赋值运算符 复合赋值运算符:在赋值符“=”之前加上其它运算 符。常见的有:+= ,=,复合赋值运算 的功能:与左边的

5、变量进行复合运 算后再赋给左边变量。 共 56 页 第 10 页如: a+=3 等价于 a=a+3x*=y+8 等价于 x=x*(y+8)x%=3 等价于 x=x%3共 56 页 第 11 页2. 复合赋值运算符 例:int a=1, b=2, c=2; double x=1.5,y=2,z=2;c*=a-b; c的值? -2 int型z-=x+y; z的值?-1.5 double型共 56 页 第 12 页2.3.2 赋值运算符和赋值表达式例:已知: int a, b=5, c=4计算表达式 a-=a=b+c 的值。解: a-=a=b+c a-=(a=b+c)a=a-99a00a共 56 页

6、 第 13 页2.3.3 2.3.3 逗号运算符和逗号表达式逗号运算符和逗号表达式1.逗号运算符:即“,”优先级:为所有运算符中级别最低的(15)。 2.逗号表达式形式:表达式1,表达式2,表达式n求解过程:顺次求解表达式1,表达式2最后求解表达式n。逗号表达式的值为表达式n的值。结合性:左结合 例如:a=3*5,a*4a=3*5,a*4,a+5x=(a=4%3 , a+1, a*10)602010共 56 页 第 14 页2.4 、 各类数值型数据间的混合运算 一、运算过程: 先自动转换成同类数据,再进行运算。 二、转换规则: 低字节类型转换成高字节类型。doublefloatlong un

7、signed intchar,short向左的横向箭头表示即使在 同一种数据类型间进行运算时 也要进行转换。用于提高精度 。 向上纵向箭头表示当运算对 象类型不同时的转换方向。共 56 页 第 15 页例:若有: int i ; float f ; double d ; long e ;试判断表达式 3 +b +i*f - d/e 的类型int unsigned int long int unsigned long int doubleshort , char float系统自动转换3/4 ? 3.0/4 ?1/2*15*20 ?1.0/2*15*20 ?共 56 页 第 16 页强制类型转换

8、将指定表达式的值转换为指定类型.形式:(类型名)(表达式)例如:( double) (a+b)说明:() 表达式应用括号括起例如: (int)(x+y) ;(int)x+y; () 在强制类型转换时,得到一个所需类型的中间变 量,原来变量类型未发生变化。例如:float x=8.6 ; int y; y=(int)x ;共 56 页 第 17 页 运算符说明:+ + 自增, 变量值加 1 自减, 变量值减 12.5 自增、自减运算符共 56 页 第 18 页 自增(或自减)运算符的第一种用法:单独作为一个表达式语句被使用2.5 自增、自减运算符i=i+1; i+ ; 或 +i ;i=i-1;

9、i- - ; 或 -i ;共 56 页 第 19 页 自增运算符的另一种用法:出现在其他表达式中,参与运算。+ + i、 i 先使i的值加(减)1, 再使用 i i + +、 i 在使用 i 之后, 使 i 的值加(减)12.11 自增、自减运算符共 56 页 第 20 页2.11 自增、自减运算符 举例:int j,i=3;j=+i; /* i, j 的值为4*/ j=i+; /*j的值为4,然后i的值变为5 */j=-(i+); /*j的值-5,然后i的值变为6 */i+; /* i=i+1; i为7*/j-; /* i=i-1; */j=-(i+) j=(-i)i=i+1共 56 页 第

10、 21 页2.5 2.5 自增、自减运算符 (、)自增、自减运算符 (、)说明: (1)+、- 为单目运算符。 (2)+ 、 - 只能用于变量,而不能用于常量或表达式。例如:10+,(x+y)+ ,+a是非法的.(3)自增、自减运算符为右结合性(即自右至左)。例如:a+ (a+) 共 56 页 第 22 页2.5 2.5 自增、自减运算符 (、)自增、自减运算符 (、)例如:a=4;b=-a+ ; /* a的值为 5, b的值为 4 */共 56 页 第 23 页main() int x, y, z;x=2; y=5;z=x;x=y;y=z;printf(“x=%d, y=%dn“, x, y

11、); z22x25yx55xyy2z2共 56 页 第 24 页#include “stdio.h“ main() int x=6,y=7,z;z=x;x=y;y=z;printf(“x=%d,y=%dn“,x,y);getchar(); 共 56 页 第 25 页#include “stdio.h“ main() int x,y,z;scanf(“%d%d“,z=x;x=y;y=z;printf(“x=%d,y=%dn“,x,y);getchar(); getchar(); 库函数名写错, 连接时出错。共 56 页 第 26 页#include “stdio.h“main() int x, y, z, a;x=2; y=5;z=x;x=y;y=z;printf(“x=%d, y=%dn“, x, y);system(“pause”); /*显示运行结果的窗口停住*/共 56 页 第 27 页共 56 页 第 28 页第5周 上机题目:P34: 3-9、3-10P46: 4-6P51 (第四章 编程题): 1 题、 2 题、 3 题

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号