设变量m,n,a,b,c,d的初值均为5,执行(m=a==b)‖(n=c==d)后,m,n的值是( )。

admin2017-09-20  21

问题 设变量m,n,a,b,c,d的初值均为5,执行(m=a==b)‖(n=c==d)后,m,n的值是(    )。

选项 A、5,5
B、5,1
C、1,5
D、1,1

答案C

解析 计算(m=a==b)‖(n=c==d)的过程是先计算逻辑或的左运算分量(m=a==b)的值,由于赋位运算符的优先级比关系运算符==的优先级低,又先计算a==b,因a,b均为5,所以比较结果值为1,将1赋给变量m,使变量m的值变为1。同时这个赋值运算的结果也是1,这样逻辑运算的左运算分量的值为1。由于逻辑或运算的左运算分量值为1,按照C语言对逻辑或运算优化计算的规定,不再计算逻辑或的右运算分量。而直接得到逻辑或运算的结果为1。由于逻辑或的右运算分量不曾计算过,所以变量n的值也不变化。这样,上述表达式计算后,变量m的情为1,变量n的值为5。
转载请注明原文地址:https://kaotiyun.com/show/qgGv777K
0

最新回复(0)