Q. 47 Consider the following program:
int
f(
int
*p,
int
n)
{
if
(n <= 1)
return
0;
else
return
max(f(p+1,n-1),p[0]-p[1]);
}
int
main()
{
int
a[] = {3,5,2,6,4};
printf
(
"%d"
, f(a,5));
}
Note: max(x,y) returns the maximum of x and y. The value printed by this program is
(A) 2
(B) 3
(C) 4
(D) 5
Answer: (B)
Explanation: