有以下程序 #include <stdio.h> int f(int x) { int y; if (x == 0 || x== 1) return (3); y = x*x - f(x-2); return y;

admin2015-11-24  10

问题 有以下程序
#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、0
B、9
C、6
D、8

答案C

解析 主函数中调用f函数,同时将数值3传递给变量x,执行条件与if(x==0||x== 1);此时条件不成立,跳过return (3);,直接执行语句y=x*x-f(x-2); 这里f(x-2)为函数的递归调用,再次调用f函数,此时x=1,条件语句条件成立,返回3给f(1),y=3*3-3=6,最后将6返回主函数,并进行输出。因此C选项正确。
转载请注明原文地址:https://kaotiyun.com/show/fkID777K
0

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