下列程序的输出结果是( )。 #include<stdio.h> int fun(int x) { int a; if(x==0‖x==1) return 3; else a=x-fun(x-2) ;

admin2010-09-05  31

问题 下列程序的输出结果是(    )。
   #include<stdio.h>
   int fun(int x)
   {  int a;
   if(x==0‖x==1)
   return 3;
   else
   a=x-fun(x-2) ;
   return a;
   }
   void main()
   {  printf("%d",fun(7) );
   }

选项 A、2
B、8
C、9
D、5

答案A

解析 本题考查函数的递归调用。在函数递归调用时,fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→ fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3=0→ fun(5):a=5-0=5→fun(7):a=7-5=2,最后的计算结果为2。
转载请注明原文地址:https://kaotiyun.com/show/aaWp777K
0

最新回复(0)