若有如下程序: main() { int s=8,a=3,b=5,c=6; if(a>b) s=a; a=b; b=s; if(a>c) {s=a; a=c;b=s); if(b>c) s=b; b=c;c=s; pr

admin2009-04-15  25

问题 若有如下程序:
   main()
   {  int s=8,a=3,b=5,c=6;
   if(a>b) s=a; a=b; b=s;
   if(a>c) {s=a; a=c;b=s);
   if(b>c) s=b; b=c;c=s;
   printf("%d,%d,%d\n",a,b,c);
   }
   则程序运行后的输出结果是【  】。

选项

答案5,6,8

解析 首先要清楚当满足第1个if的判断条件时只执行一条语句“s=a;”,当满足第2个if的判断条件时执行一条复合语句“{s=a; a=c; b=s};”,当满足第3个if的判断条件时只执行一条语句“s=b;”。执行程序:判断a>b,由于a=3,b=5则3>5为假,不执行“s=a;”,执行“a=b;”和“b=s;”,则a=5,b=8。判断a>c,由于a=5,c=6则5>6为假,不执行“{s=a; a=c; b=s};”。判断b>c,由于b=5,c=6则5>6为假,不执行“s=b;”,执行“b=c;”和“c=s;”,则b=6,c=8。最后输出5,6,8。
转载请注明原文地址:https://kaotiyun.com/show/a4Xp777K
0

最新回复(0)