下列程序执行的结果是() a=1;b=2;c=3; while(a<b<c) { t=a;a=b;b=t;c--;} printf("%d,%d,%d",a,b,c);

要详细过程

先说条件:a<b<c,注意:<的结合性自左向右,而a<b条件为真。
然后说下C语言逻辑值的表示:真为1,假为0。所以a<b的值为1,于是a<b<c化为1<c即真。
最后t=a;a=b;b=t;是实现两个数相互交换的典型,所以a=2,b=1,而c--结果为2
所以最后输出结果为2,1,2.
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-29
第一次比较结果2,1,2,第二次结果1,2,1,结束。VC6.0的运行结果。
这个本身是错的,要写成while(a>b&&b>c).本回答被提问者采纳
第2个回答  2012-05-26
楼主认真点吧。。。。是while (b<a<c)
第3个回答  2011-05-29
2,1,3

...a=1;b=2;c=3; while(a<b<c) { t=a;a=b;b=t;c--;} printf("%d,%d,%d...
然后说下C语言逻辑值的表示:真为1,假为0。所以a<b的值为1,于是a<b<c化为1<c即真。最后t=a;a=b;b=t;是实现两个数相互交换的典型,所以a=2,b=1,而c--结果为2 所以最后输出结果为2,1,2.

...a=1;b=2;c=3; while(b<a<c) {t=a;a=b;b=t;c--;} printf( ” %d,%d...
b<a<c即(b<a)<c b<a即2<1,结果为假。。即false(0)然后b<a的结果和c进行比较.即0<3,结果为真,进到里面的处理不说了,结果变为a=2,b=1,c=2 再进行while里面的判断,同上判断,结果a=1,b=2,c=1 再进行while里面的判断,同上判断,结果a=2,b=1,c=0 ...

...{int a=1 ,b=2,c=3,t=4; while (a<b<c) {t=a;a=b;
答案是1,2,1 include<stdio.h> main(){ int a=1 ,b=2,c=3,t=4;while (a<b<c) \/\/当条件成立,就执行while里面的代码,那么,这里面不成立就为0,成立就为1 { t=a;a=b;b=t;c--;} printf("%d,%d,%d",a,b,c);} 这个程序的难点在于while (a<b<c) ,a<b<c是如何...

...a=1,b=2,c=3,t; while(a<b<c) { t=a;a=b;b=t;c--; } printf("%d,%...
while(a<b<c) \/\/第一次执行到这里成立(a<b成立为1,1<c成立)。执行括号里的。这是a为2,b为1,c为2.在判断的时候,a<b不成立为0,0<c成立,所以仍然成立,继续执行。这是a为1,b为2,c为1,在判断(a<b成立为1,1<1不成立了,循环结束){ t=a;a=b;b=t;c--; } printf("...

...a=1,b=2,c=2,t; while(a<b<c) {t=a;a=b;b=t;c--;} printf("%d,%d...
!第一次循环a<b成立为1,然后1<c也成立,循环的条件成立 那么执行循环体后a=2,b=1,c=1 第二次循环a<b成立为0,然后1<c也成立,循环的条件成立 那么执行循环体后a=1,b=2,c=0;第三次循环a<b成立为1,然后1<c不成立,循环的条件不成立,退出循环,输出 1 2 0 ...

int a=1,b=2,c=3,t;while (a<b<c) {t=a;a=b;b=t;c--;
while第一次循环后:a=2,b=1,c=2;第二次循环后:a=1,b=2,c=1;第三次循环条件不满足,跳出循环,输出:1,2,1

...结果是( )。 char *p="abcdefgh"; p+=3; printf("%d\\n",strlen(str...
让p指针指向“A”的地址,如果取值的话就*P拿到A了。这个函数返回的值是目标串的地址,也就是p啦,那么p是个指针怎么算地址的长度呢,其实就是strlen("ABCD")啦,为什么,计算机知道的啦,因为p指向了“ABCD”首地址了,而c语言中默认在ABCD后加个结束符的,所以答案就是4了。

...a=2,b=3,c=-2; while (a>b>c) {t=a;a=b;b=t;c++;}
A,while(a>b>c)这句话,是先用a>b的值和C比较,不是a>b并且b>c,这点清楚了之后就很好理解了,a>b这个是个bool值,不是1就是0,所以第一次循环的时候必为真,交换ab值,c++之后为-1,再循环一次后,ab值再次交换,此时的a为2,b为3,c++后c为0,再次循环的时候,a>b为假,值为0...

...a=1,b=2,c=2,t; while(a<b<c) {t=a;a=b;b=t;c--;} printf("a=%d,b...
a=1,b=2,c=0

while(a<b<c) {t=a;a=b;b=t;c--;} printf("%d,%d,%d",a,b,c); }...
所以他会先执行a<b,这里是成立的,所以会返回1,然后在判断1<c也是成立的,会执行循环,执行后a = 2,b = 1,c = 1,然后继续判断循环条件是否成立,更上次一样想判断a<b,结果是0,返回0,在判断0<c;循环条件成立继续循环内容,执行后a = 1,b = 2, c = 0;...

相似回答