100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > c语言程序设计运算符及表达式 c语言程序设计3第3章运算符和表达式

c语言程序设计运算符及表达式 c语言程序设计3第3章运算符和表达式

时间:2019-11-04 03:31:20

相关推荐

c语言程序设计运算符及表达式 c语言程序设计3第3章运算符和表达式

1、第3章 运算符和表达式,3.1 表 达 式 3.2 运算符及表达式 3.3 运算符优先级和结合性,3.1 表 达 式,C语言的表达式分为基本表达式和复杂表达式。 基本表达式是由以下单项构成的,即:标识符、常量、字符串字面量和用圆括号括起来的表达式。 将基本表达式通过运算符连接在一起,就构成复杂表达式。例如:28,ab,(xy)/a等。 由表达式还可组成更大的表达式。例如: x(ab) 10,3.2 运算符及表达式,运算符是在一个数学运算中表示相应运算动作的一种符号。 运算符所作用的对象称作运算分量。,3.2.1 算术运算符和算术表达式 在C语言中,基本算术运算符有5个,它们是: (加) (减)。

2、 *(乘) /(除) (取模) 算术运算符和运算分量组成的求值序列称作算术表达式。 要注意运算符“/” 和 “” 的区别。 运算符 “/” 可以作用于算术类型。 运算符“”却只能作用于整型量。 a/b表示两个整数进行整除,其结果是舍弃余数后所得到的商值。 是取整数除法的余数,而不管商的值是多少。,例3-1:算术运算符应用示例。 /* arithmetic practice */ #include void main() int a99; int b5; int c11; int d3; int result; resultab;,printf(“abdn“,result); resultb*c。

3、; printf(“b*cdn“,result); resulta/b; printf(“a/bdn“,result); resultab; printf(“abdn“,result); resultadb/c; printf(“adb/cdn“,result); ,输出结果是: ab94 b*c55 a/b19 ab4 adb/c0,例3-2:计算有多个算术运算符的算术表达式。 #include void main() int x,a3; float y; x2025/5*2; printf(“(1)xdn“,x); x25/2*2; printf(“(2)xdn“,x); xa4*56;,。

4、printf(“(3)xdn“,x); xa456; printf(“(4)xdn“,x); x3*46/5; printf(“(5)xdn“,x); x(76)5/2; printf(“(6)xdn“,x); y25.0/2.0*2.0; printf(“(7)yfn“,y); ,输出结果是: (1)x30 (2)x24 (3)x11 (4)x1 (5)x0 (6)x1 (7)y25.000000,3.2.2 赋值运算符和赋值表达式 赋值运算符“”,其简单的使用形式是: 变量表达式 这种形式的整个表达式称作赋值表达式。在使用赋值表达式时应注意以下几点: 在赋值运算符左边的量(通常称为左值)必。

5、须是变量,不能是常量或用上述运算符结合起来的表达式。 int a,b; ab;b8; 是正确的赋值形式; 6a;ab14; 等形式都是不对的。, 赋值运算可连续进行。例如, abc0 a(b(c0) 赋值运算符的优先级比上述运算符的优先级都低。 a(b9)*(c7) 赋值表达式的值等于右边表达式的值,而结果的类型由左边变量的类型决定。, 除了上述基本的赋值运算符之外,C语言中还提供了另外10个赋值运算符,它们是: * & 这些运算符是把“运算”和“赋值”两个动作结合在一起,往往把它们称为复合赋值运算符。 x 2 其等效形式是:xx2。 表达式 x *y5 的等效形式是:xx*(y5)。 而表达。

6、式 x y10 的等效形式是:xx(y10) 复合赋值运算符右边的表达式应作为一个整体对待。,3.2.3 增量运算符和增量表达式 自增运算符“”和自减运算符“”。它们都是单目运算符。当出现在运算分量的前面时,例如i、i,就称之为前缀运算符;当出现在运算分量的后面时,例如x、y,就称之为后缀运算符。由增量运算符和运算分量构成的表达式称为增量表达式。 1自增运算符 n 这个表达式执行后,n的值增1。 还可采用“后缀加”的形式: n 但必须指出,并非在任何情况下二者都等价。,例3-3:显示前缀加和后缀加的区别。 #include void main() int a,b,c; a9; ba;,prin。

7、tf(“ (1) ad *bdn“,a,b); a9; ca; printf(“ (2) ad *cdn“,a,c); 运行后输出的结果是: (1)a10*b10 (2)a10*c9,执行ba,这条语句等价于下述两条语句: ca1; ba; 而改为后缀加形式,即:ca,这条语句等价于下述两条语句: ca; aa1; 简而言之,在表达式中出现前缀加的情况下,前缀加所作用的运算分量值先增1,然后进行其他级别较低的运算;而在表达式中出现后缀加的情况下,先以其运算分量的当前值参与其他级别较低的运算,最后该运算分量值才增1。,例3-4:复合赋值符和自增运算符“”的应用。 Void main( ) int。

8、 x2,y,z; x *32; printf(“(1)xdn“,x); x *yz4; printf(“(2)xdn“,x); xy1; zx 1;,printf(“(3)xd*zdn“,x,z); zx * y; printf(“(4)xd*yd*zdn“,x,y,z); 输出结果是: (1)x10 (2)x40 (3)x2*z0 (4)x3*y2*z4,2自减运算符 “n”就等价于: nn1 它也分前缀减和后缀减两种形式。 mn; 等价于:nn1; mn; 而 mn; 却等价于:mn; nn1;,在使用增量运算符时,还应注意以下几点: 增量运算符有副作用。就是说,增量运算符作用于运算分量时。

9、,如“a”,不仅可以向外提供一个值,而且还改变运算分量自身的值。例如: xii 或者 xi(i) “”和“”是单个运算符,不是通常意义上的两个“加”号或者两个“减”号。,xij; 是理解成(i)j,还是i(j)呢?C语言词法分析遵循“最长匹配” 原则,即:如果在两个运算分量之间连续出现多个表示运算符的字符(中间没有空格),那么,在保证有意义的条件下,就从左到右尽可能多地将若干个字符组成一个运算符。所以,表达式就解释为(i)j,而不是i(j)。建议读者在录入程序时,在各个运算符之间加入空格,或者使用圆括号,把有关部分括起来,使之作为整体处理。, “”和“”只能作用在变量上,如“”,“”等,而不能。

10、用于常量和一般表达式(不是左值的表达式)。 另外,增量运算符与运算分量结合在一起构成的表达式带有自身赋值含义,但这种表达式不是左值,不能直接出现在赋值号左边。,3.2.4 关系运算符和关系表达式 C语言有完整的一组关系运算符,用于比较两个运算分量间的大小关系。这组运算符有6个,即: ! 用关系运算符将两个运算分量连在一起构成的表达式称作关系表达式。根据运算符所作用的两个运算分量之间的指定关系是否成立,分别得到关系表达式的“真”、“假”结果。,在C语言中,没有表示“真”、“假”的逻辑量TRUE(真)和FALSE(假),就借用数值来表示。以数值0表示“假”,以非0值表示“真”。对于关系表达式来说,。

11、结果的真、假分别用1和0表示。 关系运算只判定两个运算分量是否满足指定的关系,而不理睬二者具体数值相差多少。 应注意,赋值号“”与全等比较运算符“”的区别。 关系运算符的优先级低于算术运算符。 abcd 应理解为:(ab)(cd) 前4个关系运算符的优先级相同,后两个相等比较运算符的优先级也相同。但前者的优先级恰好比后者高一级。,例3-4:分析下面程序的运算结果。 1 void main() 2 3 int a,b,c; 4 abc10; 5 ab c; 6 printf(“ ad,bd,cdn“,a,b,c); 7 a (bc*2); 8 printf(“ ad,bd,cdn“,a,b,c)。

12、; 9 abc100; 10 printf(“ ad,bd,cdn“,a,b,c); 11 ,上述程序运行之后的输出结果是: a1,b10,c10 a1,b20,c11 a0,b20,c11,3.2.5 条件运算符和条件表达式 C语言中提供的条件运算符“?:”是惟一的三目运算符。 由条件运算符组成的表达式简称为条件表达式,或三目表达式。其一般构成形式是: 表达式1?表达式2:表达式 3 决定条件表达式值的方法是:先计算表达式1的值;若该值不为0,则计算表达式2的值,并将表达式2的值作为整个条件表达式的值;否则,就计算表达式3的值,并将该值作为整个条件表达式的值。,例如,要求出x和y中最大的一个。

13、,并赋予变量max。 max(xy)?x:y; 使用条件运算符时,还要注意以下几点: 条件运算符的优先级稍高于赋值运算符,但比其他运算符的优先级都低。 三个运算分量不限于简单的算术表达式,甚至可以是函数调用。 分析条件表达式时,关键是先找出“?”和“:”,把三个运算分量区分开,然后按一般方法进行计算。,例3-5:分析下面程序运行的结果。 1 void main() 2 3 int a,b,c; 4 abc1; 5 a b; 6 b c; 7 c a; 8 printf(“ (1)dn“,ab? a:b); 9 printf(“ (2)dn“,ac? a:c+); 10 ( abc)? prin。

14、tf(“ AA“):printf(“ CC“); 11 printf(“ n ad,bd,cdn“,a,b,c); 12 ,3.2.6 逗号运算符和逗号表达式 在C语言中,逗号的用途主要有两种:一是作为分隔符,二是作为运算符。 (1)逗号分隔符 用来分开相应的多个数据。 int a,b,c; printf(“ Adt Bdn“,a,b);,(2)逗号运算符 逗号作为运算符时,是把两个运算分量“连接”起来,使之构成一个逗号表达式。 逗号表达式的一般形式是: 表达式1,表达式2 它的执行过程是:先计算表达式1,然后计算表达式2。整个逗号表达式的值是表达式2的值。 逗号表达式的扩展形式是: 表达式1,表达式2,表达式n 各个表达式必须从左到右顺序执行,而整个逗号表达式的值是其中最右边表达式的值。 x(i10,j5,i*j) 逗号运算符在所有运算符中是级别最低的。,3.2.7 逻辑运算符和逻辑表达式 C语言中逻辑运算符有3个,它们是: ! 逻辑非(相当于其他语言中的NOT) & 逻辑与 (相当于其他语言中的AND) | 逻辑或 (相当于其他语言中的OR) 其中,“!”是单目运算符,而&和 | 是双目运算符。,由逻辑运算符和运算分量构成的表达式称为逻辑表达式。 (1)逻辑非运算符! 作用在单个运算分量上,其结果是运算分。

《c语言程序设计3第3章运算符和表达式》由会员san****019分享,可在线阅读,更多相关《c语言程序设计3第3章运算符和表达式》请在金锄头文库上搜索。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。