第2章运算符与表达式.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第2章运算符与表达式.doc》由会员分享,可在线阅读,更多相关《第2章运算符与表达式.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 运算符与表达式考核知识点:l C语言运算符的种类、运算符优先级和结合性l 不同类型数据间的转换与运算l C语言表达式的各种类型和求值规则l 位运算符的含义及使用l 简单的位运算重要考点提示:l 运算符的优先级及表达式的求值规则l 复合的赋值表达式的使用,自增和自减运算符及逻辑运算符的使用l 简单的位运算操作2.1 C语言运算符简介C语言的运算符范围很宽,几乎把所有的基本操作都作为运算符处理,具体运算符见表2-1. C语言运算符表名称运算符算术运算符+、-、*、/、%关系运算符、=、单目运算符算术运算符(先乘除后加减)关系运算符逻辑运算符(不包括“!”)条件运算符赋值运算符逗号运算符说明
2、:以上优先级别由左到右递减,初等运算符优先级最高,逗号运算符优先给最低。三、强制类型转换运算符可以利用强制类型转换符将一个表达式转换成所需类型,其一般形式为:(类型名)(表达式)例如:(char)(x+y);,将(x+y)的值强制转换成为字符型。(double)(m*n);,将(m*n)的值强制转换为double类型。小提示:表达式应用括号括起来,如果写成(char)x+y;,则表示只将x转化为字符型,然后与y相加。4.逗号运算符与逗号表达式用逗号运算符将几个表达式连接起来,例如a=b+c,b=a*a,c=a+b,称为逗号表达式。一般形式:表达式1, 表达式2,表达式3,表达式n逗号表达式的求
3、解过程是:先求解表达式1,然后求解表达式2,直到表达式n的值。整个表达式的值就是表达式n的值。需要注意的是,逗号运算符是所有运算符中级别最低的。2.2 算术运算符和算术表达式1.基本的算术运算符(1)+(加法运算符或正值运算符,如2+6) (2)-(减法运算符或负值运算符,如6-3)(3)*(乘法运算符,如2*6)(4)/(除法运算符,如2/6)(5)%(模运算符或称求余运算符,%两侧均应为整型数据,如2%6的值为2)需要说明的是:两个整数相除的结果为整型,如5/3的结果是值1,舍去小数部分,如果参加+、-、*、/运算的两个数中有一个数为实数,则结果是double类型。2.算术表达式和运算符的
4、优先级与结合性算术表达式是用算术运算符和括号将运算量(也称操作数)连接起来的、符合C语言语法规则的表达式。运算对象包括函数、常量和变量等。在计算机语言中,算术表达式的求值规律与数学中的四则运算的规律类似,其运算规则和要求如下。(1) 在算术表达式中,可使用多层括号,但括号必须配对。运算时从内层圆括号开始,由内向外依次计算表达式的值。(2) 在算术表达式中,对于不同优先级的运算符,可按运算符的优先级由高到低进行运算,若表达式中运算符优先级相同,则按运算符的结合方向进行运算。(3) 如果一个运算符两侧的操作数类型不同,则先利用自动转换或强制转换,使两者具有相同类型,然后进行计算。3.自增自减运算符
5、作用:使变量的值增1或减1。如:+i,-i(在使用i之前,先使i的值加1、减1)。i+,i-(在使用i之后,使i的值加1、减1)。小提示:(1)只有变量才能用自增运算符(+)和自减运算符(-),而常量或表达式不能用,如10+或(x+y)+都是不合法的。(2)+和的结合方向是“自右向左”,如-i+,不的左边是负号运算符,右边是自增运算符,负号运算符和自增运算符都是“自右向左”结合的,相当于-(i+)。在循环语句中常用到自增(减)运算符,在指针中也常用到该运算符,考生要弄清楚“i+”和“+i”及“i-”和“-i”的区别,防止用错。2.3 赋值运算符和赋值表达式一.赋值运算符和赋值表达式赋值符号“”
6、就是赋值运算符,作用是将一个数据赋给一个变量或将一个变量的值赋级另一个变量,由赋值运算符组成的表达式称为赋值表达式。一般形式为:变量名表达式在程序中可以多次给一个变量赋值,每赋一次值,与它相应的存储单元中的数据就被更新一次,内在中当前的数据就是最后一次所赋值的那个数据。2.复合赋值运算符在赋值运算符之前加上其他运算符可以构成复合赋值运算符。其中与算术运算有关的复合运算符是:+,-,*,/,%。小提示:两个符号之间不可以有空格,复合赋值运算符的优先级与赋值运算符的相同。表达式n+1等价于n=n+1,作用是取变量n中的值增1再赋给变量n,其他复合的赋值运算符的运算规则依次类推。如求表达式“a+=a
7、-=a*a”的值,其中a的初值为12。步骤:(1)先进行“a-=a*a”运算,相当于a=a-a*a=12-12*12=-132(2)再进行“a+=-132”运算,相当于a=a+(-132)=-132-132=-2643.赋值运算中的类型转换如果赋值运算符两侧的类型不一致,在赋值前系统将自动先把右侧表达式求得的数值按赋值号左边变量的类型进行转换(也可以用强制类型转换的方式),但这种转换仅限于某些数据之间,通常称为“赋值兼容”。对于另一些数据,例如,后面将要讨论的地址值,就不能赋给一般的变量,称为“赋值不兼容”。常用的转换规则如下:(1) 当实型数据赋值给整型变量时,数值不变,但以浮点数形式存储到
8、实型变量中。如int x;,执行“x=5.21;”后,x的值为5。(2) 当整型数据赋值给实型变量时,数值不变,但以浮点数形式存储到实型变量中。如float x=45;输出x的结果为45.00000。(3) 当double类型数据赋值给float型变量时,取其前面的7位有效数字,存放到float型变量的存储单元中,这时数值可能溢出。(4) 当字符型数据赋值给整型变量时,由于整型就是占两个字节,而字符只占一个字节,只需将字符数据(8位)放到整型变量的低8位中,对该整型变量最高位进行符号扩展,其他位补零。(5) 当整型、短整型、长整型数据赋值给一个char类型变量时,将其低8位原封不动地送到cha
9、r类型变量中(即截断)。2.4 位运算C语言提供6种位运算符,见表2-2表2-2 位运算符操作符含义规则&按位与若两个相应的二进制位都为1,则该位的结果为1,否则为0|按位或若两个相应的二进制位只要有一个为1,则该位的结果为1,否则为0按位异或若两个相应的二进制位同号,则该位的结果为1,否则为0按位求反按位取反,即0变1,1变0右移将一个数的二进制位全部右移若干位说明:(1)位运算中除“”以外,均为双目操作符,要求两侧各有一个运算量。(2)运算量只能是整型或字符型数据,不能为实型数据。【例1】下面程序的输出结果是 。#include main()char x=040;printf(“%dn”,
10、x=x1);例题解析:左移运算是每移一位数值放大一倍,x为八进制数的40,即十进制的32,程序是以十进制方式输出移位后的x,等于64。实际上,按二进制展开后刀可得到正确结果。八进制的40转换成二进制数为,再按题意左移一位后得到,最后按printf语句中的“%d”格式输出其十进制形式为64.【例2】设二进制数a是,若通过异或运算ab使a的高4位取反,低4位不变,则二进制数b是 .例题解析:异或运算常用来使特定位翻转,只要使需要翻转的位与1进行异或操作就可以了,因为原数值为1的位与1进行异或运算得0,原数中为0的与1进行异或运算结果得1。而与0进行异或的位将保持原值。异或运算还可用来交换两个值,不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 运算符与表达式 运算 表达式
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内