问题 填空题

下列程序的输出结果是______。
#include<stdio.h>
int fun(int x)
int p;
if(x==0‖x==1)
return 3;
else
p=x-fun(x-2);
return p;

void main()
printf("\n%d", fun(11));

答案

参考答案:D

解析: 本题考查函数的递归调用。在主函数中第1次调用fun(1),如果x等于0或者x等于1则返回3,否则返回11-fun(9);第2次调用函数fun(9),返回9-fun(7);第3次是fun(7),返回7-fun(5);第4次是调用fun(5),返回5-fun(3);第5次调用fun(3),返回3-fun(1);第6次调用fun(1),返回3。总的返回值是:11-(9=(7-(5=(3-3))))=4。

选择题
单项选择题 A2型题