---------------------------------------------------------------最新资料推荐------------------------------------------------------
C语言复习第十五课
第十五课※主要内容(1)、C语言运算符的优先级※主要知识点(1)、C语言运算符的优先级、C语言涉及的运算符如下表:
优先级运算符名称或含义使用形式结合方向说明 [] 数组下标数组名[常量表达式] ()  圆括号(表达式) /函数名(形参表)  .  成员选择(对象)对象. 成员名  1 - 成员选择(指针)对象指针-成员名左到右  - 负号运算符 -表达式单目运算符(类型)强制类型转换 (数据类型) 表达式++ 自增运算符 ++变量名/变量名++ 单目运算符-- 自减运算符 --变量名/变量名-- 单目运算符* 取值运算符 *指针变量单目运算符取地址运算符变量名单目运算符! 逻辑非运算符 !表达式单目运算符~ 按位取反运算符 ~表达式单目运算符  2 sizeof长度运算符sizeof(表达式)  右到左  / 除表达式/表达式双目运算符* 乘表达式*表达式双目运算符3 % 余数(取模)整型表达式/整型表达式左到右双达式左到右双目运算符  10 |  按位或表达式| 表达式左到右双目运算符11  逻辑与表达式表达式左到右双目运算符12 | |  逻辑或表达式| | 表达式左到右双目运算符13 ?:  条件运算符表达式1? 表达式2:  表达式  3 右到左三目运算符= 赋值运算符变量=表达式  /= 除后赋值变量/=表达式  *= 乘后赋值变量*=表达式  %= 取模后赋值变量%=表达式  += 加后赋值
1 / 6
变量+=表达式  -= 减后赋值变量-=表达式  = 左移后赋值变量=表达式  = 右移后赋值变量=表达式  = 按位与后赋值变量=表达式–按位异或后赋值变量–表达式  14 | = 按位或后赋值变量| =表达式右到左  15 ,  逗号运算符表达式, 表达式,  左到右从左向右顺序运算(2)、说明:
、同一优先级的运算符,运算次序由结合方向所决定;、简单记就是:
!算术运算符关系运算符    | |  赋值运算符;、优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
其它的都是从左至右结合。
具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。
() 是与函数相关, []与数组相关,而-及. 是取结构成员。三目条件运算符?:的含义
其次是单目运算符,所有的单目运算符具有相同的优先级,因此在真正的运算符中它们具有最高的优先级,又由于它们都是从右至左结合的,因此*p++与*(p++) 等效是毫无疑问的。
下来是算术运算符, *、 /、 %的优先级当然比+、-高了。
移位运算符紧随其后。
其次的关系运算符中, =  =要比 == !=高一个级别,不大好
---------------------------------------------------------------最新资料推荐------------------------------------------------------
理解。
所有的逻辑操作符都具有不同的优先级(单目运算符出外,!和~)逻辑位操作符的与比或高,而异或则在它们之间。
跟在其后的比| | 高。
接下来的是条件运算符,赋值运算符及逗号运算符。
在 C 语言中,只有 4 个运算符规定了运算方向,它们是、|  | 、条件运算符及赋值运算符。
、 |  | 都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。
如 a = 0  b;  运算符的左边位 0,则右边表达式 b 就不再判断。
在条件运算符中。
如 a?b: c;先判断 a 的值,再根据 a 的值对 b 或 c 之中的一个进行求值。
赋值表达式则规定先对右边的表达式求值,因此使 a = b = c = 6; 成为可能。
练习题一、选择题  1、若变量已正确赋值,以下符合 C 语言语法的表达式是()  A.  a=a+7;      B.  a=7+b+c, a++          C.  int(12. 3%4)                        D.  a=a+7=c+b 2、整型
3 / 6
变量 x=1, y=3,经下列计算后, x 的值不等于 6 的表达式是()
A.  x=(x=1+2, x*2)
B.  x=y2?6:5
C.  x=9-(--y)
-(--y)    D.  x=y*(int) (4. 8/2)  3、若定义 int m=7, n=12;
则能得到值为  3 的表达式是()  A. n%=(m%=5)            B.  n%=(m-m%5)        C.  n%=m-m%5          D.  (n%=m)
-(m%=5)  4、以下程序的运行结果是()  main()  {    int
i=5, j=6, m=i+++j;      printf(%d, %d, %d\n, i, j, m) ;  }  A.
6, 6, 11              B.  5, 6, 11                  C.  5, 6,
12                  D.  6, 6, 12 5、以下程序的运行结果是
()  #include stdio. h void main()  {    double f=3. 14159;
int n;      n=(int) (f+10) %3;      printf(%d\n, n) ;  }  A.
1    B. 0
C.  2
D.  3 6、以下程序的运行结
果是()  #include stdio. h void main()  {    int n, i=2,
j=4;      n=(++i==j--) ;      printf(%d\n, n) ;  }  A.  0            B.    1    C.    2            D.  3 2.  填空题(1)表达式语句与表达式的不同是;
(2)在 C 语言中可以利用将一个表达式的值转换成指
定的类型。
(3)写出完成下列功能的表达式:
如果变量 c 是大写字母,则将 c 转换成对应的小写,否
则 c 的值不改变。
---------------------------------------------------------------最新资料推荐------------------------------------------------------
;如果 d 是数字,则将 d 转换成相应
的整数,否则 d 的值不改变。
;返回两个整数 x、 y 中较大者。
;返回三个整数 x、 y 和 z 中最
大者。
;(4)以下程序的运行结果
是;  #include stdio. h #include string. h main()
{    char s[]=ab\n\\\’ \r\b;    printf(%d, %d\n, sizeof(s) , strlen(s) ) ;  }  (5)以下程序的运行结果是;
#include stdio. h main()  {    int a=2, b=4, c=6, x, y;      y=(x=a+b) , (b+c) ;      printf(y=%d, x=%d\n, y, x) ;  }  (6)
以下程序的运行结果是;  #include stdio. h main()
{ char a, b; a=‘ a’ ; b=‘ b’ ; a=a-32; b=b-32;  printf(%c, %c, %d, %d\n, a, b, a, b) ;  }  (7)以下程序的
运行结果是;  #include stdio. h main()  {int i, j,
x, y;  i=5; j=7;  x=++i; y=j++;    printf(%d, %d, %d, %d\n,
i, j, x, y) ;  }  (8)以下程序的运行结果是;
#include stdio. h main()  {    int a=1;  char c=‘ a’ ;  float f=2. 0; printf(①: %d\n, a+2! =c-100) ;      printf(②: %d\n, (ac) =(f4) ) ;      printf(③: %d\n, ! a==!
f) ; printf(④: %d\n, (!a1) !=(!c| | 1) ) ;
5 / 6
printf(⑤: %d\n, (!a2) ?3: 0) ((f!=1) ?0:1) ;
printf(⑥: %d\n, (1, 2, 3) ==(3, 3, 3) ) ; }            时间:
2019 年11 月  4 号
Genius is one percent inspiration and ninety-nine percent perspiration. 天才就是百分之一的灵感加上百分之九十九的汗水

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。