问题 单项选择题

下列程序的输出结果是( )。
#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.

填空题
单项选择题