GATE CS 2015 Set 2 — Question 52
Go beyond PYQs with Success TrackerAI-powered personalised practice and doubt support. Unlimited practice on eligible plans; AI usage limits apply.NAT+2 / -0MediumStorage ClassesC ProgrammingProgramming & Data StructuresStack OperationsStacks & QueuesPointers & Pointer ArithmeticArrays & Strings in C
Programming & Data Structures → C Programming → Arrays & Strings in C
Last updated
Question
Consider the C program below.The value printed by the above program is _______.
#include <stdio.h>
int *A, stkTop;
int stkFunc(int opcode, int val)
{
static int size=0, stkTop=0;
switch (opcode) {
case -1: size = val; break;
case 0: if (stkTop < size) A[stkTop++] = val; break;
default: if (stkTop) return A[--stkTop];
}
return -1;
}
int main()
{
int B[20]; A = B; stkTop = -1;
stkFunc(-1, 10);
stkFunc(0, 5);
stkFunc(0, 10);
printf("%d\n", stkFunc(1, 0) + stkFunc(1, 0));
}
Correct answer
15 to 15
Solution
The program implements a stack using a static array
A (which points to B in main) and a static variable stkTop inside stkFunc. Key Analysis:1.Variable Shadowing: The global variable
stkTop is initialized to -1 in main, but inside stkFunc, there is a static int stkTop=0. This local static variable shadows the global one. Thus, the stack operations use the static stkTop starting at 0.2.Execution Trace:
stkFunc(-1, 10):opcodeis -1. Setssize = 10.stkTopremains 0.stkFunc(0, 5):opcodeis 0.stkTop(0) <size(10). Pushes 5:A[0] = 5,stkTopbecomes 1.stkFunc(0, 10):opcodeis 0.stkTop(1) <size(10). Pushes 10:A[1] = 10,stkTopbecomes 2.stkFunc(1, 0) + stkFunc(1, 0): This sums two pop operations.- First Pop:
opcodeis 1 (default case).stkTop(2) is non-zero. DecrementsstkTopto 1, returnsA[1]which is 10. - Second Pop:
opcodeis 1.stkTop(1) is non-zero. DecrementsstkTopto 0, returnsA[0]which is 5. - Sum: .
Continue learning with Success Tracker
A step still unclear? Work through it with support
Use Success Tracker to ask about the reasoning, then try another GATE CS question to check your understanding.
AI-powered practice· Unlimited practice on eligible plans
- PYQs with solutions
- Attempt available previous-year questions, then compare your reasoning with the worked solution. Coverage varies by stream.
- Practice that adapts
- Choose a topic, work on weaker areas and bookmark questions to revisit. Your attempts feed your progress tracking.
- AI doubt support
- Ask follow-up questions about a step or concept while practising, instead of stopping at the final answer.
Unlimited practice is available on eligible plans. Free practice and AI usage have limits; check the current plan allowances before choosing.
This page stays readable without an account. AI responses can be wrong; check them against the solution and source material.
More questions on C Programming
2026 Set 2 Q12The set T represents various traversals over binary tree. The set S represents the order of…2026 Set 2 Q19Consider the following three ANSI-C programs, P1, P2, and P3. P1 [code] P2 [code] **P3**…2026 Set 1 Q23Let be an odd number greater than 100. Consider a binary minheap with elements stored in an…2026 Set 1 Q24Consider a hash table that is initially empty. The hash table is maintained…2026 Set 1 Q27Consider the following C statements: Which of the following options is/are correct? [figure]