有以下程序 #include void fun ( int n ,int *s ) { int f; if( n==1 ) *s = n+1 ; else { fun( n-1, &f) ; *s = f ; } } main() { int

admin2019-07-14  16

问题 有以下程序
#include
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、2
B、1
C、3
D、4

答案A

解析 该递归函数的出口是"if(n==1) *s = n+1 ",所以最后s的值一定为1+1=2,答案选A。
转载请注明原文地址:https://kaotiyun.com/show/5wRp777K
0

最新回复(0)