Home / C Programming / C Preprocessor :: Discussion

Discussion :: C Preprocessor

  1. What will be the output of the program?

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

  2. A.

    9, 4

    B.

    27, 4

    C.

    27, 6

    D.

    Error

    View Answer

    Workspace

    Answer : Option C

    Explanation :

    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.


Be The First To Comment