The GATE Grind

GATE 2022 CS – Question 21

Programming and Data Structures · Programming in C · 1 mark · Multiple choice

What is printed by the following ANSI C program?

#include<stdio.h>
int main(int argc, char *argv[])
{
    int x = 1, z[2] = {10, 11};
    int *p = NULL;
    p = &x;
    *p = 10;
    p = &z[1];
    *(&z[0] + 1) += 3;
    printf("%d, %d, %d\n", x, z[0], z[1]);
    return 0;
}
  1. 1, 10, 11
  2. 1, 10, 14
  3. 10, 14, 11
  4. 10, 10, 14

Practise this question in The GATE Grind →

Show answer and explanation

Correct answer: (D) 10, 10, 14

Explanation

`*p=10` sets x to 10. `*(&z[0]+1)` is z[1], and adding 3 makes it 14. The output is `10, 10, 14`.