int a=3,b=2;printf("%d,%d",b=a<b,a=a<b);输出答案是什么 ?为什么呢?

我是想问为什么先执行a=a<b后再执行b=a<b

输出结果:1,0
赋值的优先级比逻辑低,先是算a=a<b,a<b 3<2结果为0,赋值给a, 即a=0

然后执行前面b=a<b,a<b 0<2(注意a=0) 结果为1, 然后赋值给b ,即b=1 。所以结果为:1,0
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-23
输出结果应该是:0,0
原因是在进行条件运算的时候,运算的法则是从右向左进行的,a<b输出的结果是0,也就是条件不成立,然后将0赋值给a,同理再赋值给b,因此输出的结果是0,0
建议你可以在百度中搜索一下相关的条件运算符的知识。
第2个回答  2011-10-23
1,0
b=a<b,a=a<b这两条语句是从第二条开始执行的。

int a=3,b=2;printf("%d,%d",b=a<b,a=a<b);输出答案是什么 ?为什么呢...
输出结果:1,0 赋值的优先级比逻辑低,先是算a=a<b,a<b 3<2结果为0,赋值给a, 即a=0 然后执行前面b=a<b,a<b 0<2(注意a=0) 结果为1, 然后赋值给b ,即b=1 。所以结果为:1,0

...int a=3,b=2; printf("%d,%d",b=a<b,a=a<b); 求输出结果,要详细...
printf先对后面的操作进行操作,即先执行a=a<b,在执行b=a<b;故:后一个a<b为假所以a=0;前一个a<b为真所以b=0;因此输出为1 0

int a=1,b=2; printf("%d",(a==b)?a:b); 的答案是什么?怎样得来的...
本题说 a等于b,而实际a是不等于b的,所以表达式是假,就取b的值 2 , 答案为:2

int a=1,b=2; printf("%d",(a==b)?a:b); 的答案是什么?怎样得来的...
(a==b)?a:b中的?:是c语言中唯一的三元式,即?之前的表达式为‘真’,则返回:之前的值;否则返回:之后的值。谢谢采纳

C语言中若int a=3.b=2.则a>b表达式的值.a<=b表达式的值
a>b表达式的值是1 .a<=b表达式的值是0

int a=201,b=012;printf("%2d,%2d\\n",a,b);输出结果是多少详细的解题过...
输出是201,10 这有什么详细解释?十进制201就是201,0打头的是八进制,八进制012就是十进制10;输出控制符%d是按十进制输出的意思,所以结果是201,10。

设a=3,b=4,执行语句“printf("%d,%d",(a,b),(b,a));”的输出结果...
4,3 这个是逗号表达式的问题,逗号表达式从左往右执行,最后显示最右边的那个。即(a,b)相当于b,如果是printf("%d,%d",(++a,++b),(++b,++a));输出为6,5

...{ int a=3,b=4; printf("%d,%d",(a,b),(b,a)); return 0; }_百...
逗号表达式 (a,b)整个逗号表达式的值是b的值为4 (b,a)整个逗号表达式的值是a的值为3 所以输出的结果是4,3 希望能够帮到您。

main() {int a=2,b=5; printf("a =%%d,b=%%d,a,b); },输出的结果为什么a...
按C\/C++“贪心法”%%d被解释成(%%)d而不会解释成%(%d)。如果想达到输出“%d”的效果,得写成%%%d才可以,这就被解释成(%%)%d了,最后输出就是%X形式。如:include "stdio.h"int main(int argv,char *argc[]){int a=24;printf("a = %%%d\\n",a);return 0; }输出样例:...

int a=2,b=4; printf("%d",(a,b)) 输出什么
int a=2,b=4; printf("%d",(a,b)) 输出什么 输出的是4 因为括号里面是先取最后一个逗号后面的值,然后把那个值输出的

相似回答