C Preprocessor

Q1:
What will be the output of the program?
#include<stdio.h>
#define CUBE(x) (x*x*x)

int main()
{
    int a, b=3;
    a = CUBE(b++);
    printf("%d, %d\n", a, b);
    return 0;
}

A 9, 4

B 27, 4

C 27, 6

D Error

ANS:C - 27, 6

The macro function CUBE(x) (x*x*x) calculates the cubic value of given number(Eg: 103.) Step 1: int a, b=3; The variable a and b are declared as an integer type and varaible b id initialized to 3. Step 2: a = CUBE(b++); becomes => a = b++ * b++ * b++; => a = 3 * 3 * 3; Here we are using post-increement operator, so the 3 is not incremented in this statement. => a = 27; Here, 27 is store in the variable a. By the way, the value of variable b is incremented by 3. (ie: b=6) Step 3: printf("%d, %d\n", a, b); It prints the value of variable a and b. Hence the output of the program is 27, 6.



img not found
img

For help Students Orientation
Mcqs Questions

One stop destination for examination, preparation, recruitment, and more. Specially designed online test to solve all your preparation worries. Go wherever you want to and practice whenever you want, using the online test platform.