logo

CuriousTab

CuriousTab

Discussion


Home C Programming Functions See What Others Are Saying!
  • Question
  • What will be the output of the program?
    #include<stdio.h>
    
    int fun(int i)
    {
        i++;
        return i;
    }
    
    int main()
    {
        int fun(int);
        int i=3;
        fun(i=fun(fun(i)));
        printf("%d\n", i);
        return 0;
    }
    


  • Options
  • A. 5
  • B. 4
  • C. Error
  • D. Garbage value

  • Correct Answer


  • Explanation
    Step 1: int fun(int); This is prototype of function fun(). It tells the compiler that the function fun() accept one integer parameter and returns an integer value.

    Step 2: int i=3; The variable i is declared as an integer type and initialized to value 3.

    Step 3: fun(i=fun(fun(i)));. The function fun(i) increements the value of i by 1(one) and return it.

    Lets go step by step,

    => fun(i) becomes fun(3) is called and it returns 4.

    => i = fun(fun(i)) becomes i = fun(4) is called and it returns 5 and stored in variable i.(i=5)

    => fun(i=fun(fun(i))); becomes fun(5); is called and it return 6 and nowhere the return value is stored.

    Step 4: printf("%d\n", i); It prints the value of variable i.(5)

    Hence the output is '5'.


    More questions

    • 1. It is necessary that a header files should have a .h extension?

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 2. Bitwise | can be used to set multiple bits in number.

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 3. Bitwise & can be used to check if a bit in number is set or not.

    • Options
    • A. True
    • B. False
    • Discuss
    • 4. A pointer union CANNOT be created

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 5. What will be the output of the program?
      #include<stdio.h>
      #include<stdlib.h>
      
      int main()
      {
          union test
          {
              int i;
              float f;
              char c;
          };
          union test *t;
          t = (union test *)malloc(sizeof(union test));
          t->f = 10.10f;
          printf("%f", t->f);
          return 0;
      }
      

    • Options
    • A. 10
    • B. Garbage value
    • C. 10.100000
    • D. Error
    • Discuss
    • 6. What will be the output of the program?
      #include<stdio.h>
      int main()
      {
          int x=4, y, z;
          y = --x;
          z = x--;
          printf("%d, %d, %d\n", x, y, z);
          return 0;
      }
      

    • Options
    • A. 4, 3, 3
    • B. 4, 3, 2
    • C. 3, 3, 2
    • D. 2, 3, 3
    • Discuss
    • 7. Functions cannot return a floating point number

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 8. What will be the output of the program?
      #include<stdio.h>
      int main()
      {
          int a=100, b=200, c;
          c = (a == 100 || b > 200);
          printf("c=%d\n", c);
          return 0;
      }
      

    • Options
    • A. c=100
    • B. c=200
    • C. c=1
    • D. c=300
    • Discuss
    • 9. What will be the output of the program?
      #include<stdio.h>
      int main()
      {
          int x=55;
          printf("%d, %d, %d\n", x<=55, x=40, x>=10);
          return 0;
      }
      

    • Options
    • A. 1, 40, 1
    • B. 1, 55, 1
    • C. 1, 55, 0
    • D. 1, 1, 1
    • Discuss
    • 10. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          void fun(char*);
          char a[100];
          a[0] = 'A'; a[1] = 'B';
          a[2] = 'C'; a[3] = 'D';
          fun(&a[0]);
          return 0;
      }
      void fun(char *a)
      {
          a++;
          printf("%c", *a);
          a++;
          printf("%c", *a);
      }
      

    • Options
    • A. AB
    • B. BC
    • C. CD
    • D. No output
    • Discuss


    Comments

    There are no comments.

Enter a new Comment