C Preprocessor - Programming

Q1:

What will be the output of the program?
#include<stdio.h>
#define PRINT(i) printf('%d,',i)

int main()
{
    int x=2, y=3, z=4;
    PRINT(x);
    PRINT(y);
    PRINT(z);
    return 0;
}

A 2, 3, 4,

B 2, 2, 2,

C 3, 3, 3,

D 4, 4, 4,

ANS:A - 2, 3, 4,

The macro PRINT(i) print('%d,', i); prints the given variable value in an integer format. Step 1: int x=2, y=3, z=4; The variable x, y, z are declared as an integer type and initialized to 2, 3, 4 respectively. Step 2: PRINT(x); becomes printf('%d,',x). Hence it prints '2'. Step 3: PRINT(y); becomes printf('%d,',y). Hence it prints '3'. Step 4: PRINT(z); becomes printf('%d,',z). Hence it prints '4'. Hence the output of the program is 2, 3, 4.