以下程序的输出结果是( )。 void fun(int n,int *s){int f; if(n==1)*s=n+1; else{fun(n一1,&f);*s=f;}} main(){int x=0; fun(4,&x); printf(’’%d\n’

admin2020-05-19  11

问题 以下程序的输出结果是(  )。
void fun(int n,int *s){int f;
if(n==1)*s=n+1;
else{fun(n一1,&f);*s=f;}}
main(){int x=0;
fun(4,&x);
printf(’’%d\n’’,x);
}

选项 A、4
B、3
C、1
D、2

答案D

解析 题目中函数fun为递归调用函数,如果n的值为1,那么后面形参指向的空间存放n+1,否则继续计算fun(n一1)的值。调用分析过程:fun(4,&x)→fun(3,&x)→fun(2,&x)→fun(1,&x)在回归的过程中,对于x内的数据并没有改动。
转载请注明原文地址:https://kaotiyun.com/show/u8Cp777K
0

相关试题推荐
最新回复(0)