有下列程序 #include<stdio.h> void f(int x[],int n) {if(n>1) {prinff("%d",x[n-1]); f(X,n-1); prinff("%d",x[n-1]); } else printf("%d",x

admin2019-01-11  30

问题 有下列程序
#include<stdio.h>
void f(int x[],int n)
{if(n>1)
{prinff("%d",x[n-1]);
f(X,n-1);
prinff("%d",x[n-1]);
}
else
printf("%d",x[n-1]);
}
main( )
{int a[4]={1,2,3,4}:
f(a,4);
}
程序执行后的输出结果是(    )。

选项 A、1234321
B、43211234
C、4321234
D、12344321

答案C

解析 f( )函数有两个参数:数组首地址x和数组元素个数n,当n大于1时,执行首先输出最后一个元素x[n-1],然后递归调用自身;直到n等于1时再次输出x[n-1],然后回到上一层调用,输出x[n-1];main( )函数定义一个数组a,包含四个元素:1,2,3,4,然后调用f函数f(a,4),此时形参x等于a,形参n的值是4,所以输出a[3]即4,接着调用f(a,3),输出3,调用f(a,2)输出2,调用f(a,1)输出1;接着再逐步回到上一层的调用:f(a,2)输出2,f(a,3)输出3,f(a,4)输出4,最终程序输出结果为:4,3,2,1,2,3,4,本题答案为C。
转载请注明原文地址:https://jikaoti.com/ti/sYa0FFFM
0

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