单选题
有以下程序
#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-f1.;”,再次调用f()函数,传入参数1,此时满足if语句的条件,返回3。所以前面的“y=3*3-f1.;”就等价于“y=3*3-3;”,结果是6,所以返回给主函数的结果是6。故本题应该选择A。