全部问题 > 当前问题

这道题为什么不是zyx?不是先从z开始的吗

漫天小雨 2016-3-24 22:48:43

共 4 个回答

冷静 2016-3-24 22:53:51

为真的时候不输出

矜持不失淡雅的少年、 2016-3-24 22:54:18

当z-1再-1后,为x=x。故if里边的半段条件不满足,输出x。然后跳出函数调用,输出y。再跳出,输出z。


最佳答案

对面 2016-3-24 23:09:46

这个其实就是递归函数,当if为真的时刻就调用fun,直到c=x,输出c,然后一层一层的往回计算。。。。

初一 2016-3-25 08:55:34

 递归函数   从里往外计算  楼上说的很清楚了

问题来自: 字符类型
有以下程序:
#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'&gt;'x'为真,调用fun('y');'y'&gt;'x'为真,调用fun('x');'x'&gt;'x'为假,输出x;回到fun('y'),输出y;回到fun('z'),输出z。所以输出结果为xyz,因此选A。