logo

CuriousTab

CuriousTab

Discussion


Home C Programming Functions Comments

  • Question
  • 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

  • Correct Answer
  • Infinite loop 

    Explanation
    Step 1: int no=5; The variable no is declared as integer type and initialized to 5.

    Step 2: reverse(no); becomes reverse(5); It calls the function reverse() with '5' as parameter.

    The function reverse accept an integer number 5 and it returns '0'(zero) if(5 == 0) if the given number is '0'(zero) or else printf("%d,", no); it prints that number 5 and calls the function reverse(5);.

    The function runs infinetely because the there is a post-decrement operator is used. It will not decrease the value of 'n' before calling the reverse() function. So, it calls reverse(5) infinitely.

    Note: If we use pre-decrement operator like reverse(--n), then the output will be 5, 4, 3, 2, 1. Because before calling the function, it decrements the value of 'n'.


    Functions problems


    Search Results


    • 1. 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
    • 2. 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
    • 3. 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
    • 4. 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
    • 5. 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
    • Discuss
    • 6. What will be the output of the program?
      #include<stdio.h>
      int fun(int);
      int main()
      {
          float k=3;
          fun(k=fun(fun(k)));
          printf("%f\n", k);
          return 0;
      }
      int fun(int i)
      {
          i++;
          return i;
      }
      

    • Options
    • A. 5.000000
    • B. 3.000000
    • C. Garbage value
    • D. 4.000000
    • Discuss
    • 7. What will be the output of the program?
      #include<stdio.h>
      void fun(int);
      typedef int (*pf) (int, int);
      int proc(pf, int, int);
      
      int main()
      {
          int a=3;
          fun(a);
          return 0;
      }
      void fun(int n)
      {
          if(n > 0)
          {
              fun(--n);
              printf("%d,", n);
              fun(--n);
          }
      }
      

    • Options
    • A. 0, 2, 1, 0,
    • B. 1, 1, 2, 0,
    • C. 0, 1, 0, 2,
    • D. 0, 1, 2, 0,
    • Discuss
    • 8. What will be the output of the program?
      #include<stdio.h>
      int check (int, int);
      
      int main()
      {
          int c;
          c = check(10, 20);
          printf("c=%d\n", c);
          return 0;
      }
      int check(int i, int j)
      {
          int *p, *q;
          p=&i;
          q=&j;
          i>=45? return(*p): return(*q);
      }
      

    • Options
    • A. Print 10
    • B. Print 20
    • C. Print 1
    • D. Compile error
    • Discuss
    • 9. 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
    • 10. What will be the output of the program?
      #include<stdio.h>
      #include<stdlib.h>
      
      int main()
      {
          int i=0;
          i++;
          if(i<=5)
          {
              printf("CuriousTab");
              exit(1);
              main();
          }
          return 0;
      }
      

    • Options
    • A. Prints "CuriousTab" 5 times
    • B. Function main() doesn't calls itself
    • C. Infinite loop
    • D. Prints "CuriousTab"
    • Discuss


    Comments

    There are no comments.

Enter a new Comment