C语言中,当a=1,b=1,c=1时,a<b<c的值. 究竟是0还是1

作者&投稿:进健 (若有异议请与网页底部的电邮联系)
c语言中,a=-1,b=1;if((++a<0)&&!(b--<=0))~

++a,先将a加1,再判断,
a=0,(++a<0)为假,值为0
b--,先进行判断,再减一,b=1,所以(b--<=0)值为假,
因逻辑是与,(++a<0)为假,整个表达式必为假,此时便不再算后面的表达式,因此,b的值并没有减1.
结果(++a<0)&&!(b--<=0)值为0,a为0,b为1

优先级问题啦,看看最外层的大括号里面,最后的进行的判断是||(可以去查优先级表),||的对象是(a<b)&&!c和1,不管左边是多少,右边是1所以结果是1,然后在有最外面的!一下,所以结果必是0

在c语言是应该写成a<b&&b<c,判断与关系如果前一个否定那么后面的就不需要再做判断,a<b显然否定那么,结果肯定是0

是1,帮你分析一下:先看a<b,为假,结果是0,再看后面的相当于(a<b)<c,0<1结果为真,返回1。

1是真,0是假。
如果是要判断b是否是在a与c中间;
C语言中a<b<c确实应该写成a<b&&b<c;&& 是“且”意思是a<b并且b<c;
因为a=1;b=1;c=1;
所以运算的结果是0,为假。
可是如果在C语言中直接写成a<b<c那么返回值就为1,就像1楼所分析的那样,我就不多说了,可这样写没有多大的实际意义。。。。
不明白的,可以再问。

楼主 不得不说是你自己理解的错误
关于数学中的a<b<c 如果翻译成c 确实应该写为a<b&&b<c
a<b<c确实是 a<b与上b<c 前提在于大小关系已经确定了
但是如果是c语言中的 a<b<c 这是一个判断表达式 跟上面是无关的
我们并不知道a,b,c的大小关系
仅仅只是一个逻辑运算符的结合方向的问题
我们都知道 逻辑运算符是右结合性
由于a=1,b=1,c=1
因此上式 a<b<c 先看右边 b<c 结果为假 值为0
接着 a<0 结果仍未假 值为0
因此上式值为0


这个c语言的一道题if
if (a%2) 当a=0,2,4,6 时, a%2 除法取余数为 0, 0就是假,执行 else 后面的语句putchar(c+a); c='A'。c+a 得 'A','C','E'。if (a%2) 当a=1,3,5 时, a%2 除法取余数为 1, 1就是真,执行 putchar(b+a); 这里 b='1'; ...

请问,C语言里,变量a=1,b=2; 那么if(a=b)怎样理解?
if(a=b)相当于两句:a=b;if(a)对应你的a=1,b=2;执行完 a=b;\/\/a 的值变成2 if(a)\/\/相当于if(2)所以条件一直成立 。

c语言中a=1 b=(++a)+(++a)+(++a); b=10为什么???
00411453 mov dword ptr [ebp-8],edx---把edx中数据10存入dword ptr [ebp-8]缓存器中===(dword ptr [ebp-8]:10)只能说这是软件问题,设计者就是这样设计的。总结规律:当a=1时:a=2,(++a)=2;a=3,(++a)+(++a)=3+3=6(特殊);a=4,(++a)+(++a)+(++a)=10;a=5,...

简单C语言
a=3,b=2,c=2.解析:a,b,c先分别赋值1,2,3。执行if语句:当a>c时,才将a的值赋给b。实际上,a=1,c=3,所以不执行b=a。b的值还是2。由于b=a后面是分号,表示if语句已经执行完毕,后面的a=c和c=b就是赋值,将c的值赋给a(即把3赋给c),再将b的值赋给c(即把2赋给b)...

C语言环境中,设a=1,b=2,c=3,d=4,则表达式:a>b?a:c>d?a:d的结果为...
表达式:a>b?a:c>d?a:d的结果为4。解析:1、由于C语言的相同优先级运算符运算规则为从左至右依次运算,而条件运算符具有右结合性,所以表达式:a>b?a:c>d?a:d优先运算c>d?a:d,得出的结果为4;2、再运输a>b?a:4,得出的结果为4。所以最终得出的结果为4。

c语言中如果a=1,那么b=2,如果a=2那么b=3,怎么表达
参考代码如下:switch(a){ case 1:b=2;break; case 2:b=3;}

麻烦帮我解答一道C语言的循环问题!!!
a=1;while(a=1){ printf("good");a--;} 这是一个死循环。道理同上,真值表达式为a的值,但这里每次判断真值前先将a的值赋为1,所以a的值为1,每次判断都为真,所以是无限循环。a==1 循环1次,第一次a的值为1,所以a==1为真,执行循环,循环体内执行a--,a的值变为0,第二次判断a...

c语言中怎么书写假如a=1且b=2且c=3且d=4时输出...a!=1或b!=2或c!=3...
天哪,人家写的是且不是或,应该是 if(a==1&&b==2&&c==3&&d==4){ 执行语句 } 里面应该是“==”,因为是用来判断a是否等于1,b是否等于2,c是否等于3,d是否等于4的,如果写成楼主的那样,就成赋值语句了。

C语言里的if(a=1)b=1;什么意思啊看不懂求大神帮助
这条语句最终结果是,a获赋值1,b获赋值1。注意if的判断条件是个赋值语句。a=1 \/\/将1赋值给a if(a=1) \/\/a此时为1,if条件为真 b=1 \/\/if为真,执行1赋值给b

C语言 设a=1, b=2, c=3,d=4,则表达式a<b?a:c<d?a:d的结果为何是
a:(c<d?c:d) 翻译成语言文字即先c<d?答案 是,所以执行冒号q前面的c,再判断,前面的a<b?答案 是 所以再a和前面执行的c中选择冒号前面的a 我才是正解,专门扒拉出书来看的,答案是一样的但是优先级不一样,我参考的书是C语言程序设计第三版 何钦铭,颜晖主编(P132P139)!!

天祝藏族自治县13749737147: 在C语言中,当a=1,b=1,c=1时,a<b<c的值. -
锺曼冰珍: 就是判断a<b<c的真假问题,这里很显然是假就是 0 如果是真就是1

天祝藏族自治县13749737147: C语言中,当a=1,b=1,c=1时,a<b<c的值. 究竟是0还是1 -
锺曼冰珍: 是1,帮你分析一下:先看a

天祝藏族自治县13749737147: C语言中!定义a=1,b=1,c=1,为什么a+++b+++c=4?请高手给我讲下!我是新手!
锺曼冰珍: 是这样的,++和+在一起++的运算优先级高,而且++是从右到左运算的,所以a+++b+++c就变成了 (a+(++b))+(++c)因为是从右往左,所以是1+2+1

天祝藏族自治县13749737147: int a=b=c=1; ++a||++b&&++c; a= ,b= ,c= . -
锺曼冰珍: a\b\c初是1 后面的逻辑表达式本来是先算&&再算|| 但是最终还是算||,||中当左边表达式为真时就不会计算右边表达式所以只运算++a,所以结果是a=2,b=1,c=1

天祝藏族自治县13749737147: c语言里面c=0;a=b=1; (a=c)&&(b=c) -
锺曼冰珍: 首先写法上a=b=1; 是不行的!应该分开写,a=1,b=1; 然后就是a=c=0,因为0&&什么数都是假的!所以后面就不运行了~既b=1,没有b=c 希望帮到你哈

天祝藏族自治县13749737147: C语言中a = b = 1; a,b哪一个先等于1 -
锺曼冰珍: =号右结合, 所以a=b=1相当于a=(b=1). 因此先将1赋值给b, b值为1, 然后将(b=1)这个表达式的返回值赋值给a, a值为1. 因此是先b后a.

天祝藏族自治县13749737147: C语言简单习题:当a=1,b=3,c=5,d=4时... -
锺曼冰珍: 第1行a<b(1<3)为真 执行后面的第2到6行 第2行c<d(5<4)为假 执行else和后面的第3到6行 第3行a<c(1<5)为真 执行后面的第4到5行 第4行b<d(3<4)为真 执行第4行剩下的部分 最后得出结果:x的值将是2

天祝藏族自治县13749737147: C语言中,a=b=c具体是什么意思? -
锺曼冰珍: 1. 赋值语句本身也是一个表达式,也是有返回值的,它的返回值就是赋值给变量的值,比如b = 1 这个语句,会把1赋值给b,但是它本身也是个表达式,这个表达式的返回值为1. 2. 赋值语句是先算等号右边的值,把右边的值赋值给左边的变量 ...

天祝藏族自治县13749737147: C语言 若有定义,int a=010,b=1,c=2;接着顺序执行下列语句后,变量c中的值是3?( -
锺曼冰珍: int a=010这个是八进制表达,十进制为a=8//凡是0开头的都是八进制 a-=(b+5)这里b+5=6,a-=6,就是a=a-6=2//a-=(b+5)这里先计算再赋值,所以只在这里a的值变化 c=(a%11)+(b=1)=2+1=3

天祝藏族自治县13749737147: c语言中t=((a==1)+(b==2))==1是什么意思 -
锺曼冰珍: a==1、b==2和(…)==1都是逻辑表达式,其值只能是1或0.当表达式为真时,值为1,否则值为0.先判断a==1是否为真,是则值为1,否则为0,再判断b==0的值.设此二式的值的和为c,则再判断c==1的值(1或0),此值赋给t

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网