Home / C Programming / C Preprocessor :: Discussion

Discussion :: C Preprocessor

  1. What will be the output of the program?

     #include
     #define MAX(a, b, c) (a>b ? a>c ? a : c: b>c ? b : c) 
    
     int main() 
     {    
         int x;   
         x = MAX(3+2, 2+7, 3+7);      
         printf("%d\n", x); 
         return 0; 
    } 
    

  2. A.

    5

    B.

    9

    C.

    10

    D.

    3+7

    View Answer

    Workspace

    Answer : Option C

    Explanation :

    The macro MAX(a, b, c) (a>b ? a>c ? a : c: b>c ? b : c) returns the biggest of given three numbers.

    Step 1: int x; The variable x is declared as an integer type.

    Step 2: x = MAX(3+2, 2+7, 3+7); becomes,

    => x = (3+2 >2+7 ? 3+2 > 3+7 ? 3+2 : 3+7: 2+7 > 3+7 ? 2+7 : 3+7)

    => x = (5 >9 ? (5 > 10 ? 5 : 10): (9 > 10 ? 9 : 10) )

    => x = (5 >9 ? (10): (10) )

    => x = 10

    Step 3: printf("%d\n", x); It prints the value of 'x'.

    Hence the output of the program is "10".


Be The First To Comment