选择题
有以下程序:
#include <stdio.h>
void f(int x[],int n)
{ if(n>1)
{ f(&x[1], n-1);
printf('%d,',x[0]);
}
else
printf('%d,',x [0]);
}
main()
{int z[6]={1,2,3,4,5,6};
f(z,6); printf('\n');
}
程序的运行结果是______。
A、
6,5,4,3,2,1,
B、
1,1
C、
1,1,1,1,1,1,
D、
1,2,3,4,5,6,
【正确答案】
A
【答案解析】
在调用一个函数的过程中又出现直接或间接的调用该函数本身,称为函数的递归调用。本题目中递归函数调用执行过程为:f(z,6)->f(&z[1],5)->f(&z[2],4)->f(&z[3],3)->f(&z[4],2)->f(&z[5],1),输出x[0],也即z[5]=6,返回执行f(&z[4],2)之后的输出x[0]语句,即5,同理再返回上一个f函数,依次输出4,3,2,1,故A选项正确。
提交答案
关闭