c语言中a=b=c=d=3这个表达式后,a,b,c,d的值各是多少

作者&投稿:滕虹 (若有异议请与网页底部的电邮联系)
大学C语言问题 int a=0,b=1,c=1,d=3 表达式++b&&--c||--a的值是多少?变量a,b,c的值分别是多少?为什么?~

先计算++b,为2,再计算--c,为0,2&&0为0;然后计算--a,为-1,0||-1为1。所以表达式为1,a,b,c分别为-1,2,0.

表达式: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。

扩展资料
表达式为:表达式1?表达式2:表达式3
先求解表达式1,
若其值为真(非0)则将表达式2的值作为整个表达式的取值,
否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。
例如:
1、max=(a>b)?a:b,就是将a和b二者中较大的一个赋给max。
2、min=(a<b)?a:b,就是将a和b二者中较小的一个赋给min。
条件运算符具有右结合性
当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。
例如:
w<x ? x+w : x<y ? x : y,与 w<x ? x+w : ( x<y ? x : y) 等价,与 (w<x ? x+w : x<y) ? x : y 不等价。
参考资料:百度百科-C语言运算符
参考资料:百度百科-条件运算符

=是自右向左结合的
所以原式等价于 a = (b = (c = (d = 3)))
最后a,b,c,d的值都是3,表达式的值也是3

都是3 运算顺序是从右往左的。所以a,b,c,d都是3

都是三

都是3

3
这个我觉得就算是没有学过c语言的也应该知道啊!


c语言a==b==c跟a==b&&b==c的区别
首先,你如果真的在做编程的话,建议千万不要采用第一种方式,不管是哪门语言都一样,因为它计算 a==b 时,得出 一个逻辑值0或者1 ,然后再用这个逻辑值去与C比较,那肯定是不对的,而第二个式子,先计算 A==B 得出一个逻辑值0或者1 ,再去计算B==C,也得出一个逻辑值0或者1 ,然后...

赋值语句中有A=B=C的形式吗.
有,在C语言里,赋值是从右向左赋值的,例如:C为4,则先把4赋给B,B就为4,再把B赋给A,则A也为4,最后,A,B,C的值则全都为4

C语言 a=b=c=0;x=35 if(!a)x--;
a=0,!a就是不等于0,那么第一个就是真 执行 x=34。b,c都等于0,if不执行还函数。输出的结果为4的原因是 多个 if语句同时执行 输出的是最后一个 若有错误请指正

c语言问题。 a=b!=c什么意思? a==(b=c++*3)什么意思? a=b>c>2什么意...
a=b!=c 等价于 a=(b!=c),b!=c是关系表达式,值为1或0,再把这个值赋给a a==(b=c++*3) 相当于 a==(b=c*3),++c;a=b>c>2 等价于 a=((b>c)>2)

在信息技术中,a=b=c=1含义是?
先说结果,a=1,b=1,c=1 在编程中,等号=的运算顺序通常是从右到左,加上括号后是a=(b=(c=1)),所以这个运算实际上执行了三个操作 c = 1;b = c;a = b;所以最后所有变量均为1

...定义数据类型时可以连续的赋值吗,如 int a=b=c=5 这是错误的吧?_百...
可以 。int a , b , c ;a = b = c = 5 ; \/\/ 这样可以。但是 int a = b = c = 5 ; \/\/ 这样不可以,因为 b 跟 c 都还没有定义。

c语言中==和=有什么区别?
c语言中==和=只在意义一个方面有区别,具体如下:“==”是关系运算符,而“=”是赋值运算符。其中c语言中的关系运算符还有:1、“!= ” 是不等于的意思。2、“< ”是小于的意思 3、“< =” 是小于等于的意思。4、“> ”是大于的意思 5、“> =” 是大于等于的意思。

C语言中 a=b,c 和a=(b,c) 的值分别是多少
逗号运算符的优先级是最低的,在第一个表达式中,先把b赋值给a,然后a与c逗号运算返回c当然没有任何变量接收这个返回值,如果 d=(a=b,c) 这样d的值就和c的值一样了,所以在a=b,c;之后a和b的值一样 在第二个表达式中,逗号表达式用括号括起来了,所以先计算逗号运算,结果为最右边的值,...

...c+b;是赋值语句吗?为什么?a=b=c=100;是赋值语句吗?
仅仅c+d是吗?如果是的话,它不是赋值语句的,因为没有变量的值改变了。而且有个warning: '+' : operator has no effect; expected operator with side-effect。a=b=c=100;是赋值语句首先执行的c=100;然后是b=c;再是a=b;。

请问c语言中 a==b?c:d 和 a?b == c :d这两个三目运算是什么意思?_百度...
第一个理解是对的。第二个,如果a的值是0,结果就是d,如果a不为0,结果就是b==c的值,b==c是关系表达式,其结果是逻辑值1或0

鹤庆县19350913816: C语言中,下面这个语句如何理解? a=(b=(c=2,d=3));
谢国速力: 很明显,首先执行的是c=2,d=3, 然后逗号表达式的返回值为最后一项d=3 再把d的值赋给b,所以b=3,最后把b的值赋给a,a=3. 从而,a,b,c,d的值分别为3,3,2,3

鹤庆县19350913816: C语言里面 a=b; b=c; c=d; 是什么意思?顺序什么样? -
谢国速力: a=b; //把b的值赋给a b=c; //把c的值赋给b c=d; //把d的值赋给c 赋值顺序:自右向左 执行顺序:从上到下下面的结果是:2 3 4 4 自己好好消化消化 #include <stdio.h> void main() { int a=1,b=2,c=3,d=4; a=b; b=c; c=d; printf("%d %d %d %d",a,b,c,d); }

鹤庆县19350913816: C语言中 a=b==c怎么理解 -
谢国速力: “=”是赋值符,把c的值赋给b赋给a,最后a、b、c的值都相等,“==”是判断符; =赋值==等于运算说a=b=c,表达式运行a值赋给b、c运行完abc值相等; a=b==c,复合表达式先a值赋给b与c比较相等则返0,否则返非零值; 运算b==c,若b...

鹤庆县19350913816: 在c语言中a=(b=1,c=2,d=3) -
谢国速力: 这是逗号表达式,逗号表达式的值取最后一项表达式的值,例如(3,4,5)则表达式的值为5,(b=1,c=2,d=3)的值取表达式d=3的值.复杂点(3,(4,5))的值为5,因为(3,(4,5))的值为(4,5)的值

鹤庆县19350913816: C语言中,a=b=c具体是什么意思? -
谢国速力: 1. 赋值语句本身也是一个表达式,也是有返回值的,它的返回值就是赋值给变量的值,比如b = 1 这个语句,会把1赋值给b,但是它本身也是个表达式,这个表达式的返回值为1. 2. 赋值语句是先算等号右边的值,把右边的值赋值给左边的变量 ...

鹤庆县19350913816: C语言,表达式(a=b=c=3)&&a==b==c的值为什么是0,求大佬解答,谢谢. -
谢国速力: 这是因为先执行赋值(a=b=c=3),其值为3,非0,所以,再执行 a==b==c 它等价于(a==b)==c,即1==3,所以为假,即0 整个表达式的值就是0 表达式(a=b=c=3)&&a==b&&b==c的值是1

鹤庆县19350913816: c语言中a=1;b=2;c=3; d=(a++, -- b,b--,--a,--c,c--); 这个怎么做求A,B,C,D的值,要具体分析啊谢谢啦.. -
谢国速力: 逗号运算符从左到右计算 d=(a++,--b,b--,--a,--c,c--); 对a,a++,--a,增1减1,没有变化,最终a=1 对b,--b,b--两次减1,故b=0 对c,--c,c--两次减1 故c=1d其实就等于c--,c--是先返回在减1,故d=2

鹤庆县19350913816: c语言中语句中 "连等" 问题 -
谢国速力: 连等关键有两点: 1、运算符的优先级跟结合性. 2、一个赋值表达式是有值的,值就是被赋的值,比如a=3 ,这个赋值表达式的值就是3,若有b=(a=3),则b的值为3. 例如: a=b=c中只有一个运算符,等号,所以优先级是一样的,而等号的结合性是从右向左的(也就是等式从右往左计算),所以a=b=c 等同于 a=(b=c),故a=4,b=4;

鹤庆县19350913816: c语言中k=(a=2,b=3)是什么意思 -
谢国速力: 这就相当于是一个赋值语句,()里是一个逗号表达式,逗号表达式最终结果取决于最后一个式子,所这个语句的意思是: k=b 即 k=3;如下程序:#include <stdio.h> main() { int a,b; int k=(a=2,b=3); printf("%d\n",k); } 运行结果为:3 Press any key to continue 希望能对楼主有所帮助!

鹤庆县19350913816: 在C语言中,能不能定义时用int a=b=c=3;?拜托了各位 谢谢 -
谢国速力: 不可以 =是赋值 只有先将a,b,c三个变量都声明的情况下 才能进行赋值操作 否则你int a=b 相当于声明一个整型a然后将一个未声明类型的变量b赋值给a 这句话很明显是错的!

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