logo

CuriousTab

CuriousTab

Discussion


Home C Programming C Preprocessor See What Others Are Saying!
  • Question
  • What will be the output of the program?
    #include<stdio.h>
    #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;
    }
    


  • Options
  • A. 5
  • B. 9
  • C. 10
  • D. 3+7

  • Correct Answer
  • 10 

    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".


    More questions

    • 1. What will be the output of the program?
      #include<stdio.h>
      int check(int);
      int main()
      {
          int i=45, c;
          c = check(i);
          printf("%d\n", c);
          return 0;
      }
      int check(int ch)
      {
          if(ch >= 45)
              return 100;
          else
              return 10;
      }
      

    • Options
    • A. 100
    • B. 10
    • C. 1
    • D. 0
    • Discuss
    • 2. Point out the error, if any in the for loop.
      #include<stdio.h>
      int main()
      {
          int i=1;
          for(;;)
          {
              printf("%d\n", i++);
              if(i>10)
                 break;
          }
          return 0;
      }
      

    • Options
    • A. There should be a condition in the for loop
    • B. The two semicolons should be dropped
    • C. The for loop should be replaced with while loop.
    • D. No error
    • Discuss
    • 3. What will be the output of the program?
      #include<stdio.h>
      int main()
      {
          float a=0.7;
          if(a < 0.7)
              printf("C\n");
          else
              printf("C++\n");
          return 0;
      }
      

    • Options
    • A. C
    • B. C++
    • C. Compiler error
    • D. Non of above
    • Discuss
    • 4. Assuming, integer is 2 byte, What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          printf("%x\n", -2<<2);
          return 0;
      }
      

    • Options
    • A. ffff
    • B. 0  
    • C. fff8
    • D. Error
    • Discuss
    • 5. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          int i;
          i = printf("How r u\n");
          i = printf("%d\n", i);
          printf("%d\n", i);
          return 0;
      }
      

    • Options
    • A. How r u
      7
      2
    • B. How r u
      8
      2
    • C. How r u
      1
      1
    • D. Error: cannot assign printf to variable
    • Discuss
    • 6. Will the program compile successfully?
      #include<stdio.h>
      
      int main()
      {
          #ifdef NOTE
              int a;
              a=10;
          #else
              int a;
              a=20;
          #endif
          printf("%d\n", a);
          return 0;
      }
      

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 7. There exists a way to prevent the same file from getting #included twice in the same program.

    • Options
    • A. True
    • B. False
    • Discuss
    • 8. Will the following program print the message infinite number of times?
      #include<stdio.h>
      #define INFINITELOOP while(1)
      
      int main()
      {
          INFINITELOOP
          printf("CuriousTab");
          return 0;
      }
      

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 9. Declare the following statement?
      "A pointer to a function which receives nothing and returns nothing".

    • Options
    • A.
      void *(ptr)*int;
    • B.
      void *(*ptr)()
    • C.
      void *(*ptr)(*)
    • D.
      void (*ptr)()
    • Discuss
    • 10. What will be the output of the program?
      #include<stdio.h>
      #define MIN(x, y) (x<y)? x : y;
      int main()
      {
          int x=3, y=4, z;
          z = MIN(x+y/2, y-1);
          if(z > 0)
              printf("%d\n", z);
          return 0;
      }
      

    • Options
    • A. 3
    • B. 4
    • C. 0
    • D. No output
    • Discuss


    Comments

    There are no comments.

Enter a new Comment