问题 单项选择题

以下程序的输出结果是( )。
#include<stdio.h>
int fun(int n, int *s)
int f1, f2;
if(n==0||n==1)
*s=1;
else
fun(n-1, &f1);
fun(n-2, &f2);
*s=f1+f2;


void main()
int x;
fun(6, &x);
printf("\n% d", x);

A) 7
B) 13
C) 9
D) 10

答案

参考答案:B

解析: 考查函数的递归调用。n=0或n=1是递归的终止条件,然后利用已知值逐步递推求出未知值。通过传送地址值,在被调用函数中直接改变调用函数中的变量的值。

填空题
单项选择题 案例分析题