C语言运行题

来源:百度知道 编辑:UC知道 时间:2024/06/18 08:24:16
3. 下面程序段的运行结果是 (3) 。
a=1; b=2; c=2;
while (a<b<c) { t=a; a=b; b=t; c――;}
printf (“%d, %d, %d\n”, a, b, c);
A. 1, 2, 0 B. 2, 1, 0 C. 1, 2, 1 D. 2, 1, 1
while里的(a<b<c) 怎样执行的?不明白··

首先判断a<b,然后将判断的结果(0或1)代入判断是否小于c
因此循环执行了两次,a=1,b=2,c=0

while(a<b<c)的执行方法
先判断a<b是否为真 真则为1 假则为0
然后再用得出来的1或者0 同c作比较得出结果.

靠!!a<b<c在C语言里是错的,只能是a<b&&b<c,不信你弄到C语言环境下编译一下

while(a<b<c)中的a<b<c可以看成(a<b)<c,因为(a<b)为真,那么为(a<b)=1,所以1<c,同样为真,所以(a<b<c)为真。

(a<b<c)可以看成((a<b)<c),因为(a<b)为真,那么为(a<b)=1,所以1<c,同样为真,所以(a<b<c)为真。

逻辑运算符都是自左向右运算的。a<b<c就是先运算a<b后将结果与c比较。此题中a<b成立则结果为1【若不成立结果为0】。然后再与c比较。成立则进入循环,否则向下运行