C语言 循环结构3道题 求救!加分!

三道题 答案和分析(翻译程序和怎么做)
1.下面程序运行结果是
a=1;b=2;c=2;
while(a<b<c){t=a;a=;b=t;c--;}
printf("%d,%d",%d,a,b,c);

2下面程序运行结果是
x=y=0;
while(x<5) y++, x+=++y;
printf("%d,%d",y,x);

3下面程序运行结果是
int n=0;
while(n++<=2);printf("%d",n);

就这三题 跪求各位大虾帮助!
第一个第二句是 a=b;
第二个第二句是 while(x<15)

1.下面程序运行结果是
a=1;b=2;c=2;
while(a<b<c){t=a;a=b;b=t;c--;}
printf("%d,%d",%d,a,b,c);

答:先判断a<b,结果为真,则是1 再判断1<c 为真,则执行循环
第一次循环后a,b值对调,就是a=2,b=1; c--后,c就等于1了
再重复上面的判断方法:这次是a<b为假,则为0, 而0<c还是为真,因为c=1的,再执行循环体,执行完后:a=1,b=2,c=0;
第三次判断a<b为真,则为1,而c=0了,所以1<c条件为假了,退出循环。这时候:a=2,b=1,c=0

2下面程序运行结果是
x=y=0;
while(x<5) y++, x+=++y;
printf("%d,%d",y,x);

答:第一次判断,条件为真,循环体y++后,y=1,
后一句可以写成x=x+(++y); 先让y+1后(y=2了),再加到x上去,x也就等于2了;
第二次判断,条件还是真,循环体y++后,y=3,
后一句可以写成x=x+(++y); 先让y+1后(y=4了),再加到x上去,x也就等于6了;
第三次判断不成立了!
结果:x=6,y=4

3下面程序运行结果是
int n=0;
while(n++<=2);printf("%d",n);

这一个更简单了,你要自己学会分析。。。。
循环条件是先判断n是不是小于等于2,然后再加加的,它的循环体是一个;号,也就是空语句。
这么一来,只有n到三时才不满足条件,不过要注意,n=3时,判断后不满足条件,还得要让n++,这样就n=4了,结果知道了吧??

好了给分!你说的噢,要追加分的!哈哈!累了。。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-05-10
1.下面程序运行结果是
a=1;b=2;c=2;
while(a<b<c){t=a;a=;b=t;c--;}
printf("%d,%d",%d,a,b,c);
while语句不会执行,因为a<b的值为1,1<c=0,
所以输出还是原值.1,2,2

2下面程序运行结果是
x=y=0;
while(x<15) y++, x+=++y;
printf("%d,%d",y,x);
x每次循环的结果都是x=x+y,每执行一次y就自增两次,也就是y=y+2;
当x<15时结束循环.
输出结果为8,20;

3下面程序运行结果是
int n=0;
while(n++<=2);printf("%d",n);
while循环体为空,但在表达试里n自增,从0开始,n++是先判断再自增,直到n=4时退出循环,所以输出结果4;
第2个回答  2008-05-10
1答:先判断a<b,结果为真,则是1 再判断1<c 为真,则执行循环
第一次循环后a,b值对调,就是a=2,b=1; c--后,c就等于1了
再重复上面的判断方法:这次是a<b为假,则为0, 而0<c还是为真,因为c=1的,再执行循环体,执行完后:a=1,b=2,c=0;
第三次判断a<b为真,则为1,而c=0了,所以1<c条件为假了,不执行后面的语句,不会再把a和b的值交换,退出循环。
这个时候输出的结果为a=1 b=2 c=0
第3个回答  2008-05-10
C语言太简单了!比 English 简单多了!