...
Logical-Reasoning
December 7, 2023
STQC-NIELIT SC-B 2021
December 7, 2023
Logical-Reasoning
December 7, 2023
STQC-NIELIT SC-B 2021
December 7, 2023

GATE 2021 CS-Set-2

Question 16
Consider the following ANSI C program.
#include <stdio.h>
int foo(intx, int y, int q)
{
         if ((x <= 0) && (y <= 0))
              return q;
         if (x <= 0)
              return foo(x, y-q, q);
         if (y <= 0)
              return foo(x-q, y, q);
         return foo(x, y-q, q) + foo(x-q, y, q);
}
int main()
{
         int r = foo(15, 15, 10);
         printf(“%d”, r);
         return 0;
}
The output of the program upon execution is ______
A
60
Question 16 Explanation: 

int foo(intx, int y, int q)

{

         if ((x <= 0) && (y <= 0))  //if 1

              return q;

         if (x <= 0)                      //if 2

              return foo(x, y-q, q);

         if (y <= 0)                     //if 3

              return foo(x-q, y, q);

         return foo(x, y-q, q) + foo(x-q, y, q);

}

int main()

{

         int r = foo(15, 15, 10);

         printf(“%d”, r);

         return 0;

}

Correct Answer: A
Question 16 Explanation: 

int foo(intx, int y, int q)

{

         if ((x <= 0) && (y <= 0))  //if 1

              return q;

         if (x <= 0)                      //if 2

              return foo(x, y-q, q);

         if (y <= 0)                     //if 3

              return foo(x-q, y, q);

         return foo(x, y-q, q) + foo(x-q, y, q);

}

int main()

{

         int r = foo(15, 15, 10);

         printf(“%d”, r);

         return 0;

}

Leave a Reply

Your email address will not be published. Required fields are marked *