Skip to content
GATEiit

GATE CSE 2024 Session 1 Q19: Recursive getchar/putchar on input 1234

Question

Consider the following C program:

#include <stdio.h>
void fX();
int main(){
    fX();
    return 0;}

void fX(){
  char a;
  if((a=getchar()) != '\n')
      fX();
  if(a != '\n')
      putchar(a);}

Assume that the input to the program from the command line is 1234 followed by a newline character. Which one of the following statements is CORRECT?

Try it: multiple choice: exactly one correct option

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

Answer: C (official GATE 2024 final answer key)

Concept used: Printing after the recursive call outputs characters in reverse order.

First step: Each call reads one character and recurses before printing; the call that reads the newline returns first.

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 2024 Session 1 CS question paper and final answer key, organised by IISc Bangalore. Question paper · Answer key