Sail E0 Webinar
Question


What will be the output of the program?


#include<stdio.h>#define CUBE(x) (x*x*x)
#define CUBE(x) (x*x*x)
int main()
{
int a, b=3;
a = CUBE(b++);
printf("%d, %d\n", a, b);
return 0;
}
Options:
A .  9, 4
B .  27, 4
C .  27, 6
D .  Error
Answer: Option C

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`setminus`n", a, b); It prints the value of variable a and b.

Hence the output of the program is 27, 6.




Was this answer helpful ?
Next Question

Submit Solution

Your email address will not be published. Required fields are marked *

Latest Videos

Latest Test Papers