What is the value printed by the following C program?
#include<stdio.h>
int f(int *a, int n)
{
if (n <= 0) return 0;
else if (*a % 2 == 0) return *a+f(a+1, n-1);
else return *a - f(a+1, n-1);
}
int main()
{
int a[] = {12, 7, 13, 4, 11, 6};
printf("%d", f(a, 6));
return 0;
}View worked solution
Answer: C
We can trace the recursive calls of the function f(a, n) starting from the base case where :
- (since )
- (since is even)
- (since is odd)
- (since is even)
- (since is odd)
- (since is odd)
- (since is even)
Therefore, the value printed by the program is 15.
Free practice · Your answers on this page are not saved.
