c语言中!((a<b)&&!c||1)值为什么是0

 我来答
帐号已注销
2020-11-13 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:165万
展开全部

优先级: !>&&>||((a<b)&&!c||1)的值必为真,问题中(a<b)&&!c为假为真无所谓了(和a、b、c的值相当于没有关系),因为后面有个: ||1。

因此((a<b)&&!c||1)的值必为真(我们先当1处理),而!((a<b)&&!c||1)则为假,假在C语言中用0表示。所以!((a<b)&&!c||1)值是0。

先算a<b的逻辑值,在判断c是否是0,如果是0,!c为真,否则,!c为假;

再判断 a<b && !c 整体的逻辑值,同真为真,否则为假。

再求出1+a的值后判断逻辑值,如果是0,为假,否则,为真。

再判断( a<b && !c ) || 1+a 的逻辑值,同假为假,否则为真。

最后判断整体!如果( a<b && !c ) || 1+a 为假,整体值为真,否则为假。

扩展资料:

其中a0=0;ai由下面确定(记m0为正整数):

(1) 当m=2m0(偶数)时,ai=j,i=2j−1,2j,j=1,…,m0−1;am−1=m0,am=m0;am+i=am−i,0<i<m。

(2) 当m=2m0−1(奇数)时,ai=j,i=2j−1,2j,j=1,…,m0−1;am=m0;am+i=am−i,0<i<m。

前面对于优先级表的讨论都是针对任务具有特定的相对截止期和特定的空闲时间来进行优先级设计的。对于任一任务T,其相对截止期u或空闲时间v不一定是特定的相对截止期或特定的空闲时间,这时T的优先级可通过对事先确定的优先级表进行线性插值获得。不妨假设d1≤u≤dm,s1≤v≤dn,下面介绍采用二元三点插值公式来计算T的优先级P(T,u,v)的方法。

参考资料来源:百度百科-优先级

声冰真泥水
游戏玩家

2019-07-22 · 非著名电竞玩家
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:609万
展开全部
优先级问题啦,看看最外层的大括号里面,最后的进行的判断是||(可以去查优先级表),||的对象是(a<b)&&!c和1,不管左边是多少,右边是1所以结果是1,然后在有最外面的!一下,所以结果必是0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
新来的文盲
2018-07-14 · TA获得超过217个赞
知道答主
回答量:79
采纳率:100%
帮助的人:58.8万
展开全部
a[]比a少一维,我具体给你解释下。
几个元素可以组成数组,而几个一维数组可以组成二维数组,如此一直增加维数。
比如说a[0]=2,a[1]=1,a[2]=3,组成一个一维数组,这就是a.但是,你要注意,a不是直接把这些东西都存着的,a只存首地址。
假设定义了一个二维数组a[3][3].这时候a[0],a[1],a[2]就不再是元素了,而代表的是一个有三个元素的一位数组,而此时的a就是一个二维数组。如果感觉这个有点困难没关系,等学习了指针什么的久很好理解这个了。
再说说你给的程序,你是不是在疑问为什么gets()直接给str1 就可以了?还有那个输出函数,为啥只用给str1就可以?
这得给存储方式有关,字符串就是字符的二维数组,gets()需要输入字符串的首地址,这个还算好理解,因为你应该学过了scanf()了,二者差不多,关键是为什么输出函数直接就写了str1呢?printf()之前你学的一般都是(printf("%d",a[1]));这种类型的。这里为啥要填一个地址参数呢?这是因为你前面是%s s代表字符串,字符串本身就是二维的,因此,你当然不能只给他一个单独的元素了,那么,你给了首地址他如何知道你这个字符串是啥呢?因为字符串都是顺序存储的,更重要的是字符串在结尾处有个标志“/0”,因此,你只要给力他首地址,他就知道从哪里开始,从哪里结束了。
纯手打,望采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式