首页 > 试题广场 >

下面程序段的运行结果是()? #include mai

[单选题]

下面程序段的运行结果是()?

 #include <stdio.h>
main()
{   int a=1;int b=2;int c=2;int t;
while(a<b<c)  
{   t= a;a= b; b=t; c--;
}
printf("%d,%d,%d",a,b,c);
}
  • 1,2,0
  • 2,1,0
  • 1,2,1
  • 2,1,1
推荐

选A
while循环中先执行a<b(1<2)得1,再跟c(=2)进行比较,所以会进入while的循环。利用如下代码打印出中间结果

#include 
int main(){   
    int a=1;int b=2;int c=2;int t;
    while(a<b<c){
        printf("a < b = %d\n", a < b);
        t=a;a=b;b=t;c--;
        printf("t = %d\ta = %d\tb = %d\tc = %d\n", t, a, b, c);
    }
    printf("%d,%d,%d",a,b,c);
}

中间结果

a < b = 1
t = 1   a = 2   b = 1   c = 1
a < b = 0
t = 2   a = 1   b = 2   c = 0
1,2,0

最终运行结果为1,2,0

编辑于 2019-07-01 14:47:20 回复(0)
选A。该题考察的是三个操作数的判断条件。
根据从左到右依次判断原则a=1; b=2; c=2
第一次循环判断:a<b结果为true,隐含值为1;1<c,结果为true,所以进入循环执行操作:
        a=2,b=1,c=1
第二次循环判断a<b结果为false,隐含值为0;0<c,结果为true,所以进入循环执行操作:
        a=1,b=2,c=0
第三次循环判断a<b结果为true,隐含值为1;1<c,结果为false,所以循环条件不成立,结束循环

最终结果为a=1,b=2,c=0

发表于 2019-06-30 07:53:46 回复(0)