(c语言题)已知有声明"int a=12,b=15,c;",则执行表达式"c=(a||(b-=a))"后,变量b和c的值分别为____。
A.3,1 B.15,12 C.15,1 D.3,12
选C。
"||"是逻辑运算符“或”,即有真则真。
c语言中非0为真,0为假。
a!=0所以(a||(b-=a))为真,后面的b-=a不需判断被忽略
所以b不变,c=1追问
"||"是逻辑运算符“或”,即有真则真。
c语言中非0为真,0为假。
a!=0所以(a||(b-=a))为真,后面的b-=a不需判断被忽略
所以b不变,c=1追问
为什么b不变?
追答C语言的规则:
"||"前者为真则后者被跳过,值为1(真),其它情况后者需进行判断;
"&&"前者为假则后者被跳过,值为0(假)……
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-12-22
选A
b-=a:b=b-a;
因为b与a都不为0 所以c=1
b-=a:b=b-a;
因为b与a都不为0 所以c=1
第2个回答 2013-12-22
选c追问
为什么?
追答‖运算是逻辑运算,只要二者不全为零就是1,只给c付了值,所以b没有改变