问题 单项选择题

下述程序的输出结果是( )。
#include <stdio.h>
int f(n)
int n;
if(n==0 | | n==1)
return 3;
return n-f(n-2);

void main()
printf("\n%d",f(10));

A.3

B.8

C.9

D.10

答案

参考答案:A

解析: 本题定义了一个递归函数f()。当传入的参数n等于1或0时返回3,否则返回n-f(n-2)。所以f(10)=10-f(8)=10- (8—f(6))=10-8+(6-f(4))=10-8+6-(4-f(2))=10-8+6-4+(2-f(0))=10-8+6-4+2-3=3。故本题应该选择A。

问答题
多项选择题