- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 * 页 3.7.2 算术运算符和算术表达式 1、基本的算术运算符 C语言基本的算术运算符包括+、 -、 *、 /、 %、++、-- 注意: (1)%为模运算符,又称求余运算符,%两侧均应为整型数据。如5%3 ,6%10是合法的,1.5%2不合法。 (2)两个整数相除结果为整数,小数部分被舍去。 如5/3结果为1, -5/3结果为-1,3/5结果为0。 (3)若参加+、 -、 *、 /运算的两个数中有一个为实数,则运算结果为double型,因为所有实数都是按double型进行运算。 如1.0/2结果为0.5,而1/2结果为0。 第 * 页 3.7.2 算术运算符和算术表达式 自增、自减运算符的作用是使变量的值增1或减1。 ++i, --i 在使用i之前,先使i的值加(减)1; i++, i- - 在使用i之后,使i的值加(减)1 i=3; printf(“%d”,++i); 运行结果为:4 i=3; printf(%d,i++); 运行结果为:3 如: 第 * 页 3.8.2 算术运算符和算术表达式 例3.9 main() { int x=6, y; printf(x=%d\n,x); y = ++x; printf(x=%d,y=%d\n,x,y); y = x--; printf(x=%d,y=%d\n,x,y); } 程序运行结果: x=6 x=7,y=7 x=6,y=7 第 * 页 注意: (1)自增(++)、自减(- -)运算符只能用于变量,不能用于常量或表达式, 5++、--(a+b)等都是非法的。 (2)++和- -的结合方向为“自右向左”,即右结合性。如: -i++,相当于-(i++) 设i=3,则printf(“%d,-i++”);相当于先将3加上负号输出-3,再对i加1,使i增值为4。 3.8.2 算术运算符和算术表达式 第 * 页 3.8.2 算术运算符和算术表达式 4、有关表达式使用中的问题说明 (1)不同的编译系统对表达式中子表达的求值顺序的规定不同。 如:(i++)+(i++)+(i++),设i的原值为3,则如果按从左到右的顺序求解,其值为12,而如果将3作为全体i的值,则结果为9。 第 * 页 3.8.2 算术运算符和算术表达式 main() {int i=3; printf(%d,(i++)+(i++)+(i++)); } 运行结果为12 main() {int i=3,j; j=(i++)+(i++)+(i++); printf(%d,j); } 运行结果为9 要避免出现歧义, 可以写成下列语句: i=3; a=i++; b=i++; c=i++; d=a+b+c; 则d为12 第 * 页 3.8.2 算术运算符和算术表达式 (2)C语言对调用函数时实参的求值顺序无统一规定,多数编译系统按自右向左的顺序进行求值。 例:i=3; printf(“%d,%d”,i, i++); 结果为4,3 第 * 页 3.8.2 算术运算符和算术表达式 例3.11 main() { int i,j; i=1;j=2; printf(“%d,%d\n”,(i++)+(i++),(++i)+(++i)); printf(“%d\n”,(i++)+(i++)); printf(“%d\n”,(++i)+(++i)); printf(“%d\n”,i+++j); printf(“%d\n”,i+(++j)); } 第 * 页 3.8.2 算术运算符和算术表达式 2、强制类型转换运算符 作用:将变量或表达式转换成所需类型 语法形式: (类型名)(表达式) (类型名)变量名 如:(int)x, (double)(x+y),(float)(5%3) 注意: (1)表达式应该用括号括起来。 (2)在强制类型转换时,原来变量的类型并不变。 第 * 页 课堂练习 (1)假定x和y为double型,则表达式x=2,y=x+3/2的值是A) 3.500000 B)3 C) 2.000000 D) 3.000000 (2)设正x、y均为整型变量,且x=10, y=3,则以下语句的输出结果是printf(%d,%d\n, x--, --y);A) 10,3 B) 9,3 C) 9,2 D)10,2 (3) 设有 int x=11; 则表达式 (x++ * 1/3) 的值是( ) A) 3 B
您可能关注的文档
- CZ型零破损提升机程序.ppt
- 2015-2016学年辽宁辽阳九中七年级政治:1.1.1《自尊是人人都需要的》(新人教版下册)程序.ppt
- 2015-2016学年人教B版高中数学选修2-2:第一章导数及其应用1.1《变化率问题》程序.ppt
- 2017高考物理一轮复习第6章静电场基础课时17电场的能的性质程序.ppt
- C第5章-数组与字符串程序.ppt
- 2015-2016学年人教版必修5《陈情表》程序.ppt
- 2017高考物理一轮复习第9章电磁感应基础课时24电磁感应现象楞次定律程序.ppt
- C内存管理程序.ppt
- 2015-2016学年人教版必修二第1课荷塘月色1程序.ppt
- 2015-2016学年人教版高一地理必修1:第3章第1节自然界的水循环程序.ppt
文档评论(0)