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

admin2021-02-25  35

问题 有下列程序
#include<stdio.h>
void f(int x[],int n)
{if(n>1)
{printf("%d",x[n-1]);
f(x,n-1);
printf("%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大于l时,执行首先输出最后一个元素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://kaotiyun.com/show/7ntp777K
0

最新回复(0)