Skip to content
GATEiit

GATE CSE 2021 Set 1 Q47: Output of a loop with a short-circuited post-increment

Question

Consider the following ANSI C program.

Which one of the following options is correct?

#include <stdio.h>
int main()
{
    int i, j, count;
    count = 0;
    i = 0;
    for (j = -3; j <= 3; j++)
    {
        if ((j >= 0) && (i++))
            count = count + j;
    }
    count = count + i;
    printf("%d", count);
    return 0;
}

Try it: multiple choice: exactly one correct option

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

Answer: B (official GATE 2021 final answer key)

Concept used: && short-circuits: i++ runs only when j >= 0, and the test uses the value of i before the increment.

First step: Trace j = 0, 1, 2, 3: at j = 0 the test sees i = 0 (false) but i still becomes 1.

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 2021 Set 1 CS question paper and final answer key, organised by IIT Bombay. Question paper · Answer key