c语言中!((a<b)&&!c||1)值为什么是0
是位运算,先把a,b转化成二进制,然后位相或,有1出1,无1出0
比如
a=5
b=2
5的二进制表示是101
2的二进制表示是10
那么101|10=111
111十进制表示是7
所以a|b=7
如果a=3
b=2
那么a|b
结果是
11|10=11
a|b=3
(a<b) && ! c||1 为真时整个表达式为假
即 a<b为真且!c||1为真时整个表达式为假
因为!优先级高于||
所以!c||1结果肯定为真
即 a<b时整个表达式为假
a>=b时整个表达式为真
优先级: !>&&>||((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)的方法。
参考资料来源:百度百科-优先级
优先级问题啦,看看最外层的大括号里面,最后的进行的判断是||(可以去查优先级表),||的对象是(a<b)&&!c和1,不管左边是多少,右边是1所以结果是1,然后在有最外面的!一下,所以结果必是0
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”,因此,你只要给力他首地址,他就知道从哪里开始,从哪里结束了。
纯手打,望采纳。
c语言中!((a<b)&&!c||1)值为什么是0
优先级: !>&&>||((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)...
c语言中!((a<b)&&!c||1)值为什么是0
优先级问题啦,看看最外层的大括号里面,最后的进行的判断是||(可以去查优先级表),||的对象是(a<b)&&!c和1,不管左边是多少,右边是1所以结果是1,然后在有最外面的!一下,所以结果必是0
c语言中!(a<=10)表示什么
!在C语言中是非运算。相当于逻辑取反。那么!(a<=10)就代表,如果a<=10,返回0,否则返回1。也就是说,当a>10时,!(a<=10)=1;当a<=10时,!(a<=10)=0;
c语言,!(a%2什么意思)
if (!(a%2)) putchar('a');表示如果a是2的倍数,就输出字符a
C语言中 ! ( (a<b) && ! c||1 )
(a<b) && ! c||1 为真时整个表达式为假 即 a<b为真且!c||1为真时整个表达式为假 因为!优先级高于|| 所以!c||1结果肯定为真 即 a<b时整个表达式为假 a>=b时整个表达式为真
C语言中的“!”是什么意思?
在C语言中,"!"是逻辑运算符,表示取反操作。它用于对一个表达式进行逻辑取反,即如果表达式的值为真,则取反后为假;如果表达式的值为假,则取反后为真。例如: ```c int a = 10; int b = 20; if (!(a > b)) { printf("a不大于b\\n"); } ``` 上述代码中,"!"用于对`(a ...
C语言中!a是什么意思
在C语言中,感叹号"!"是一种重要的逻辑运算符,其主要功能是执行"非"操作。具体来说,当变量a的值为真(非零)时,!a的结果会是假(0);反之,如果a的值为假(零),那么!a的结果会是真(1)。逻辑运算在C语言中用于判断条件,它包括三种基本形式:逻辑非、逻辑与和逻辑或。这些运算的结果都...
C语言 !(a%b)什么意思
计算机一般作整数除法a\/b只能得到商,余数就用a%b得到,它是0到b-1中的一个值。如果a\/b能整除,a%b就是0。!(a%b)是逻辑运算,只有a%b是0时为真(就当是1吧),a%b不为0时为假(就当是0吧)。int a=30,b=8,a\/b商为3,余6,所以a%b=6,!(a%b)为假,打印结果是0。
C语言 !(a%b)什么意思
就是a除以b的余数等于0的意思,即a能被b整除。它等价于!(a%b!=0)也就是a%b==0
c语言:求下列表达式的值: !(a>b)&&!c||1 其中a=1,b=2,c=3
结果为1 是是关系表达式,首先进行a>b得假值为0,则式子变为!0 && !c || 1 与或非的运算关系为先进行非运算则式了变为 1 && 0 || 1 再进行与运算变为 0 || 1 最后或运算等1
策盼高聚: 表示非a 如if(!a)a若为0则执行if后面的语句 a若不为0那么非a则等于0 那么不执行后面的语句.!=表示不等于.a!=b :a不等于b !a 用于逻辑表达.
灌阳县19813506696: c语言逻辑复合运算:!(x=a)&&(y=b)&&0 - ?
策盼高聚: 1. (x=a) 运算后,x=3,表达式的值也是32. !(x=a) <==> !3 = 0----3. (y=b) 运算后,y=4,表达式的值也是4----4. !3&&4&&0 <==> 0&&4&&0 <==> 0&&0 <==> 0 (&&, 且运算,遇0得0)---- a,b,c不变.还是3,4, 5
灌阳县19813506696: C语言中!a代表什么意思? - ?
策盼高聚: 感叹号“!”是C中的逻辑非运算符. C语言是没有boolean数据类型的,所以也就没有true,false这样的值,除非去宏定义一个. C中的逻辑运算值是用整型0或1来代替的.0为假,1为真.非0值也为1所以,!a 是一个逻辑非表达式,当a值为0时,!a的值是1,否则是0.
灌阳县19813506696: &在c语言中什么意思 - ?
策盼高聚: 主要有两个意思: 1. 取地址符,用在指针表达式或输出变量地址时 例如 int a; &a就是表示变量a在内存中地址 2. 二进制位与位运算符 1&1=1 0&0=0 拓展资料:C语言主要特点: 1. C语言是高级语言.它把高级语言的基本结构和语句与低级...
灌阳县19813506696: !((a<b)&&!c||1+a)是什么(c语言问题)?
策盼高聚: 先算a<b的逻辑值,在判断c是否是0,如果是0,!c为真,否则,!c为假; 再判断 a<b && !c 整体的逻辑值,同真为真,否则为假. 再求出1+a的值后判断逻辑值,如果是0,为假,否则,为真 再判断 ( a<b && !c ) || 1+a 的逻辑值,同假为假,否则为真 最后判断整体 !,如果( a<b && !c ) || 1+a 为假,整体值为真,否则为假
灌阳县19813506696: C语言中调用函数时A(&B)中的&是什么意思 - ?
策盼高聚: 函数中的&有两种情况,一种为获取该变量的内存地址,赋给指针,进行相关操作 另外一种最常见的是指传入参数为引用,相对于非引用参数,引用的参数在该函数中不会产生临时变量,而是直接将自身作为参数传递至该函数,因此在该函数内部的值修改后,在函数外仍然有效
灌阳县19813506696: c语言中 单个&是什么意思 - ?
策盼高聚: &是逻辑运算: && 表示如果两个条件都成立则执行之后的逻辑; eg: if((1> 2)&&(3> 1) )eg: 2&3=2; 2的二进制为10 ;3的二进制为11 ; 其余表示输出类型的格式字符,格式字符意义: d 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀O) x 以十六进制形式输出无符号整数(不输出前缀OX) u 以十进制形式输出无符号整数 f 以小数形式输出单、双精度实数 e 以指数形式输出单、双精度实数 g 以%f%e中较短的输出宽度输出单、双精度实数 c 输出单个字符 s 输出字符串
灌阳县19813506696: C语言中&是什么意思?a&b怎么理解? - ?
策盼高聚: &: 在C语言中有两种意思,一种是取地址符,是单目运算符;另一种是位运算符,表示“按位与”,是双目运算符. a&b表示啊a和b按位进行与运算. &后面是个变量.每个变量对应一块存储空间.每个存储空间有一个编号,也就是地址,&...
灌阳县19813506696: C语言里运算符的级别 - ?
策盼高聚: ++a||++b&&++c,加上括号为(++a)||(++b&&++c),++a先算,其结果为2,其值不为0,为真,这时整个表达式为真,后面的就不算了,因此b和c仍然保持为1
灌阳县19813506696: C语言中 !(a==b) 与 (a>b)&&(a<b) 这两个逻辑表达式等价吗?为什么??
策盼高聚: (a>b)&&(a<b)永远是假,而当a = b时,表达式 !(a==b) 才是假,否则为真.故两个表示式不是等价的.