大家好,我在学习c语言的过程中又遇到了下列问题:
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)1,2,0 B) 2,1,0 C) 1,2,1 D) 2,1,1
问题1:a<b<c的值是多少,
问题2:答案应该选择哪个?为什么?
----------------解决方案--------------------------------------------------------
false
1,2,2 (因为‘(a<b<c)’为假,故不执行
{t=a;a=b;b=t;c--;}
)
----------------解决方案--------------------------------------------------------
a<b<c的值是1,有a<b对结果为1,1<c结果对为1,要执行语句{t=a;a=b;b=t;c--;}
t=a;a=b;b=t是a和b的只互换即a=2,b=1,有c--,得c=2这时有a<b<c的值还是1又要执行{t=a;a=b;b=t;c--;}
得a=2,b=1,c=1答案为d了
----------------解决方案--------------------------------------------------------
a<b<c
这语句不规范
在不同的编译环境下有着不同的结果
----------------解决方案--------------------------------------------------------
a<b<c的值是1,有a<b对结果为1,1<c结果对为1,要执行语句{t=a;a=b;b=t;c--;}
t=a;a=b;b=t是a和b的互换即a=2,b=1,有c--,得c=1这时有a<b<c的值还是1又要执行{t=a;a=b;b=t;c--;}
得a=1,b=2,c=0答案为A了
----------------解决方案--------------------------------------------------------
a<b<c C语言中能够这样运用运算符吗?
----------------解决方案--------------------------------------------------------
我觉得是D,因为把答案代进去就知道了!!!
只有2,1,1才符合!!!!
----------------解决方案--------------------------------------------------------
我认为A对.大家发表高见
----------------解决方案--------------------------------------------------------
答案是A
我上机运行过
----------------解决方案--------------------------------------------------------
因该选 A吧
因为是用 WHILE循环 并非IF
好象很容易出错吧
[此贴子已经被作者于2004-06-08 00:56:43编辑过]
----------------解决方案--------------------------------------------------------