单选题 有以下程序
#include<stdio.h>
int f(int x)
{
int y;
if(x==0||x==1)return(3);
y=x*x-f(x-2);
return y;
}
main()
{
int z;
z=f(3);
printf("%d/n",z);
}
程序的运行结果是______。
【正确答案】 A
【答案解析】[解析] 本题主要考查的是递归函数。题目中的f()函数直接调用了自身,是一个递归函数。主函数中调用f()函数时传入的参数是3,所以会跳过if语句,执行y=x*x-f(x-2);,也就是y=3*3-f(1);,再次调用f()函数,传入参数1,此时满足if语句的条件,返回3。所以前面的y=3*3-f(1);就等价于y=3*3-3;,结果是6,所以返回给主函数的结果是6。故本题应该选择A。