有以下程序 #include <stdio.h> void fac2(int ); void fac1(int n) { printf("*"); if(n>0) fac2(n-1);

admin2021-02-25  21

问题 有以下程序
      #include <stdio.h>
      void fac2(int );
      void fac1(int n)
      {   printf("*");
          if(n>0) fac2(n-1);
       }
      void fac2(int n)
      {   printf("#");
          if(n>0) fac2(--n);
      }
      main()
       {  fac1(3); }
程序的运行结果是

选项 A、*###
B、*##*
C、**##
D、*#*#

答案A

解析 函数fac1中嵌套函数fac2,而fac2为递归函数。程序执行过程为:调用函数fac1(3),输出*,3>0成立,调用函数fac2(2),输出#,2>0成立,调用fac2(1),输出#,1>0成立,调用fac2(0),输出#,0>0不成立,返回fac2(1),再返回fac2(2),再返回fac1(3),函数调用结束。程序的运行结果是:*###,A选项正确。
转载请注明原文地址:https://kaotiyun.com/show/IBtp777K
0

最新回复(0)