Skip to content
GATEiit

GATE CSE 2023 Q36: Activation tree of main for recursive calls to f2

Question

Consider the following program, and the four activation trees (A)–(D) shown after it:

int main()
{
   f1();
   f2(2);
   f3();
   return(0);
}

int f1()
{
  return(1);
}

int f2(int X)
{
  f3();
  if (X==1)
    return f1();
  else
    return (X*f2(X-1));
}

int f3()
{
  return(5);
}
Four activation trees. (A) main has children f1, f2, f3; that f2 has children f3 and f2; the inner f2 has children f3 and f1. (B) main has children f1, f2, f3; f2 has children f3 and f1. (C) a chain main, f1, f2, with f2 having children f3 and f1. (D) main has children f1, f2, f3; f2 has children f3, f2 and f1
Tap the figure to enlarge

Which one of the following options represents the activation tree corresponding to the main function?

Try it: multiple choice: exactly one correct option

Select one option
Wrong answer costs 2/3 mark in GATE.
Show answer and explanation

Answer: A (official GATE 2023 final answer key)

Concept used: An activation tree has one node per call; the children of a node are the calls it makes, in order.

First step: Trace f2(2): it calls f3, then f2(1); f2(1) calls f3 and then f1.

Full step-by-step solution

Detailed working, common mistakes and linked mock tests will be available with a free GATEiit account. Log-in is coming soon.

Share this question

WhatsAppDownload image

Source: official GATE 2023 CS question paper and final answer key, organised by IIT Kanpur. Question paper · Answer key