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. Point out the error in the program.
      #include<stdio.h>
      
      int main()
      {
          const int x;
          x=128;
          printf("%d\n", x);
          return 0;
      }
      

    • Options
    • A. Error: unknown data type const int
    • B. Error: const variable have been initialised when declared.
    • C. Error: stack overflow in x
    • D. No error
    • Discuss
    • 2. Point out the error in the program (in Turbo-C).
      #include<stdio.h>
      #define MAX 128
      
      int main()
      {
          const int max=128;
          char array[max];
          char string[MAX];
          array[0] = string[0] = 'A';
          printf("%c %c\n", array[0], string[0]);
          return 0;
      }
      

    • Options
    • A. Error: unknown max in declaration/Constant expression required
    • B. Error: invalid array string
    • C. None of above
    • D. No error. It prints A A
    • Discuss
    • 3. What will be the output of the program in TurboC?
      #include<stdio.h>
      int fun(int **ptr);
      
      int main()
      {
          int i=10, j=20;
          const int *ptr = &i;
          printf(" i = %5X", ptr);
          printf(" ptr = %d", *ptr);
          ptr = &j;
          printf(" j = %5X", ptr);
          printf(" ptr = %d", *ptr);
          return 0;
      }
      

    • Options
    • A. i= FFE2 ptr=12 j=FFE4 ptr=24
    • B. i= FFE4 ptr=10 j=FFE2 ptr=20
    • C. i= FFE0 ptr=20 j=FFE1 ptr=30
    • D. Garbage value
    • Discuss
    • 4. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          const int i=0;
          printf("%d\n", i++);
          return 0;
      }
      

    • Options
    • A. 10
    • B. 11
    • C. No output
    • D. Error: ++needs a value
    • Discuss
    • 5. Point out the error in the program.
      #include<stdio.h>
      #include<stdlib.h>
      
      union employee
      {
          char name[15];
          int age;
          float salary;
      };
      const union employee e1;
      
      int main()
      {
          strcpy(e1.name, "K");
          printf("%s", e1.name);    
          e1.age=85;
          printf("%d", e1.age);
          printf("%f", e1.salary);
          return 0;
      }
      

    • Options
    • A. Error: RValue required
    • B. Error: cannot modify const object
    • C. Error: LValue required in strcpy
    • D. No error
    • Discuss
    • 6. Point out the error in the program.
      #include<stdio.h>
      #define MAX 128
      
      int main()
      {
          char mybuf[] = "India";
          char yourbuf[] = "CURIOUSTAB";
          char *const ptr = mybuf;
          *ptr = 'a';
          ptr = yourbuf;
          return 0;
      }
      

    • Options
    • A. Error: unknown pointer conversion
    • B. Error: cannot convert ptr const value
    • C. No error
    • D. None of above
    • Discuss
    • 7. Point out the error in the program.
      #include<stdio.h>
      #define MAX 128
      
      int main()
      {
          char mybuf[] = "India";
          char yourbuf[] = "CURIOUSTAB";
          char const *ptr = mybuf;
          *ptr = 'a';
          ptr = yourbuf;
          return 0;
      }
      

    • Options
    • A. Error: cannot convert ptr const value
    • B. Error: unknown pointer conversion
    • C. No error
    • D. None of above
    • Discuss
    • 8. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          const char *s = "";
          char str[] = "Hello";
          s = str;
          while(*s)
              printf("%c", *s++);
      
          return 0;
      }
      

    • Options
    • A. Error
    • B. H
    • C. Hello
    • D. Hel
    • Discuss
    • 9. What will be the output of the program?
      #include<stdio.h>
      int get();
      
      int main()
      {
          const int x = get();
          printf("%d", x);
          return 0;
      }
      int get()
      {
          return 20;
      }
      

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

    • Options
    • A. Error
    • B. -11, 34
    • C. 11, 34
    • D. None of these
    • Discuss


    Comments

    There are no comments.

Enter a new Comment