Saturday, 25 February 2017

Consider the C function given below.


int f(int j)
{
  static int i = 50;
  int k;
  if (i == j)
  {
    printf("something");
    k = f(i);
    return 0;
  }
  else return 0;
}

Which one of the following is TRUE?
(A) The function returns 0 for all values of j.
(B) The function prints the string something for all values of j.
(C) The function returns 0 when j = 50.
(D) The function will exhaust the runtime stack or run into an infinite loop when j = 50

Answer: (D)
Explanation: When j is 50, the function would call itself again and again as neither i nor j is changed inside the recursion.

No comments:

Post a Comment