以下程序运行结果是【 】。 #include<stdio.h> long func(int x) { long p; if(x==0‖x==1)return(2); p=x*func(x-1); r

admin2009-02-15  22

问题 以下程序运行结果是【  】。
   #include<stdio.h>
   long func(int x)
   {  long p;
      if(x==0‖x==1)return(2);
      p=x*func(x-1);
      return(p);}
   main()
   {  printf("%d\n",func(4));}

选项

答案48

解析 本题主要考查的是函数的递归调用,递归的终止条件是x==0或x==1,然后用已知值逐步递推向上求未知值,直到得到最终的结果。
   func(4)=4*func(3);
   func(3)=3*func(2);
   func(2)=2*func(1);
   func(1)=2;
   所以func(2)=2*2=4;
   func(3)=3*4=12;
   fune(4)=4*12=48。
转载请注明原文地址:https://kaotiyun.com/show/YtXp777K
0

最新回复(0)