中易网

C语言问题:a=3,b=4,c=5,则逻辑表达式“!(a+b)*c-1&&b+c%2

答案:2  悬赏:40  
解决时间 2021-01-15 11:21
  • 提问者网友:精神病院里
  • 2021-01-14 17:00
C语言问题:a=3,b=4,c=5,则逻辑表达式“!(a+b)*c-1&&b+c%2
最佳答案
  • 二级知识专家网友:底特律间谍
  • 2021-01-14 17:22
&&是逻辑和,!是逻辑非
!(3+4)*5 - 1 && 4+ 5%2
先算括号里的
!7*5-1 && 4+5%2
!逻辑非运算符的优先级比-运算符高
7转换成bool值是true,运作逻辑非就翻转成false(0)
0*5-1 && 4+5%2
0-1 = -1
true && 4+5%2
%优先级在+前面
5%2 = 1
4+1 = 5
true&&true
&&运算符要两边对象都是true时才会为true追问!7用中文怎么说?
为啥!7会等于0?追答任何值不为0的对象只要他可以转换成bool值就会被转换为true
这里7转换成bool值肯定就是true了。
!(逻辑非运算符)是反转得到的结果
如果你得到的是true(真)使用逻辑非就会反转成false(假)
比如
scanf("%d",i); //假设有一个int类型的对象i
if(i)    //如果i不为0(false,只有0会转换成false)
//xxxxx
//上面那句话也就说明了只有0(false)才会被逻辑非转换成true
if(!i)  //如果i为0
//xxx
全部回答
  • 1楼网友:不甚了了
  • 2021-01-14 17:35
该表达式为真追问能不能详细解释下前面的!和后面的&&的意思,是怎么判定为真为假的条件?如果把中间的&&换成||又怎么算?追答!(a+b) = ! 7 = 0
!(a+b)*c-1= -1
b+c%2=4 + 5%2=4+1=5
(-1)&&(5)=1
(-1)||(5)=1追问看不懂= =追答哪里看不懂?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息