以下程序运行后的输出结果是【 】。 main() { int a=3,b=4,c=5,t=99; if(b<a && a<c)t=-a;a=c;c=t; if(a<c && b<c)t=b;b=a;a=t;

admin2009-01-15  31

问题 以下程序运行后的输出结果是【  】。
   main()
   {  int  a=3,b=4,c=5,t=99;
      if(b<a && a<c)t=-a;a=c;c=t;
      if(a<c && b<c)t=b;b=a;a=t;
      printf("%d %d %d\n",a,b,c);
   }

选项

答案4 5 99

解析 if语句只对紧跟其后的一条语句或语句块产生作用。因此,题目中两条 if语句只有t=a;和t=b是if的子句。第1条if语句中b<a为假,所以跳过语句t=-a;,执行a=c;c=t,a=5、 b=4、c=99。第2条if语句的判断条件a<c&&b<c为真,所以后面3条语句都被执行,这3条语句构成一次a和b的内容交换。所以最后输出的结果是:4  5  99。
转载请注明原文地址:https://jikaoti.com/ti/i6K0FFFM
0

最新回复(0)