这道题为什么不是zyx?不是先从z开始的吗
有以下程序:
#include <stdio.h>
void fun(char c)
{ if(c>'x') fun(c-1);
printf("%c",c);
}
main()
{ fun('z'); }
程序运行后,输出结果是 ______ 。
A. xyz
B. wxyz
C. zyxw
D. zyx
答案:A
解析:if语句只管fun(c-1)这一条语句,不管是否满足if条件,都要执行printf语句的。主函数调用fun('z');'z'>'x'为真,调用fun('y');'y'>'x'为真,调用fun('x');'x'>'x'为假,输出x;回到fun('y'),输出y;回到fun('z'),输出z。所以输出结果为xyz,因此选A。