logo

CuriousTab

CuriousTab

Discussion


Home C Programming Functions Comments

  • 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'.


    Functions problems


    Search Results


    • 1. What will be the output of the program?
      #include<stdio.h>
      int fun(int(*)());
      
      int main()
      {
          fun(main);
          printf("Hi\n");
          return 0;
      }
      int fun(int (*p)())
      {
          printf("Hello ");
          return 0;
      }
      

    • Options
    • A. Infinite loop
    • B. Hi
    • C. Hello Hi
    • D. Error
    • Discuss
    • 2. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          int i=1;
          if(!i)
              printf("CuriousTab,");
          else
          {
              i=0;
              printf("C-Program");
              main();
          }
          return 0;
      }
      

    • Options
    • A. prints "CuriousTab, C-Program" infinitely
    • B. prints "C-Program" infinetly
    • C. prints "C-Program, CuriousTab" infinitely
    • D. Error: main() should not inside else statement
    • Discuss
    • 3. What will be the output of the program?
      #include<stdio.h>
      int i;
      int fun();
      
      int main()
      {
          while(i)
          {
              fun();
              main();
          }
          printf("Hello\n");
          return 0;
      }
      int fun()
      {
          printf("Hi");
      }
      

    • Options
    • A. Hello
    • B. Hi Hello
    • C. No output
    • D. Infinite loop
    • Discuss
    • 4. What will be the output of the program?
      #include<stdio.h>
      int fun(int, int);
      typedef int (*pf) (int, int);
      int proc(pf, int, int);
      
      int main()
      {
          printf("%d\n", proc(fun, 6, 6));
          return 0;
      }
      int fun(int a, int b)
      {
         return (a==b);
      }
      int proc(pf p, int a, int b)
      {
         return ((*p)(a, b));
      }
      

    • Options
    • A. 6
    • B. 1
    • C. 0
    • D. -1
    • Discuss
    • 5. 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
    • 6. What will be the output of the program?
      #include<stdio.h>
      int func1(int);
      
      int main()
      {
          int k=35;
          k = func1(k=func1(k=func1(k)));
          printf("k=%d\n", k);
          return 0;
      }
      int func1(int k)
      {
          k++;
          return k;
      }
      

    • Options
    • A. k=35
    • B. k=36
    • C. k=37
    • D. k=38
    • Discuss
    • 7. What will be the output of the program in 16 bit platform (Turbo C under DOS)?
      #include<stdio.h>
      
      int main()
      {
          int fun();
          int i;
          i = fun();
          printf("%d\n", i);
          return 0;
      }
      int fun()
      {
          _AX = 1990;
      }
      

    • Options
    • A. Garbage value
    • B. 0 (Zero)
    • C. 1990
    • D. No output
    • Discuss
    • 8. What will be the output of the program?
      #include<stdio.h>
      void fun(int*, int*);
      int main()
      {
          int i=5, j=2;
          fun(&i, &j);
          printf("%d, %d", i, j);
          return 0;
      }
      void fun(int *i, int *j)
      {
          *i = *i**i;
          *j = *j**j;
      }
      

    • Options
    • A. 5, 2
    • B. 10, 4
    • C. 2, 5
    • D. 25, 4
    • Discuss
    • 9. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          int fun(int);
          int i = fun(10);
          printf("%d\n", --i);
          return 0;
      }
      int fun(int i)
      {
         return (i++);
      }
      

    • Options
    • A. 9
    • B. 10
    • C. 11
    • D. 8
    • Discuss
    • 10. What will be the output of the program?
      #include<stdio.h>
      int reverse(int);
      
      int main()
      {
          int no=5;
          reverse(no);
          return 0;
      }
      int reverse(int no)
      {
          if(no == 0)
              return 0;
          else
              printf("%d,", no);
          reverse (no--);
      }
      

    • Options
    • A. Print 5, 4, 3, 2, 1
    • B. Print 1, 2, 3, 4, 5
    • C. Print 5, 4, 3, 2, 1, 0
    • D. Infinite loop
    • Discuss


    Comments

    There are no comments.

Enter a new Comment