logo

CuriousTab

CuriousTab

Discussion


Home C Programming Constants See What Others Are Saying!
  • Question
  • What will be the output of the program (in Turbo C)?
    #include<stdio.h>
    
    int fun(int *f)
    {
        *f = 10;
        return 0;
    }
    int main()
    {
        const int arr[5] = {1, 2, 3, 4, 5};
        printf("Before modification arr[3] = %d", arr[3]);
        fun(&arr[3]);
        printf("\nAfter modification arr[3] = %d", arr[3]);
        return 0;
    }
    


  • Options
  • A. Before modification arr[3] = 4
    After modification arr[3] = 10
  • B. Error: cannot convert parameter 1 from const int * to int *
  • C. Error: Invalid parameter
  • D. Before modification arr[3] = 4
    After modification arr[3] = 4

  • Correct Answer
  • Before modification arr[3] = 4
    After modification arr[3] = 10 

    Explanation
    Step 1: const int arr[5] = {1, 2, 3, 4, 5}; The constant variable arr is declared as an integer array and initialized to

    arr[0] = 1, arr[1] = 2, arr[2] = 3, arr[3] = 4, arr[4] = 5

    Step 2: printf("Before modification arr[3] = %d", arr[3]); It prints the value of arr[3] (ie. 4).

    Step 3: fun(&arr[3]); The memory location of the arr[3] is passed to fun() and arr[3] value is modified to 10.

    A const variable can be indirectly modified by a pointer.

    Step 4: printf("After modification arr[3] = %d", arr[3]); It prints the value of arr[3] (ie. 10).

    Hence the output of the program is

    Before modification arr[3] = 4

    After modification arr[3] = 10


    More questions

    • 1. Is it necessary that in a function which accepts variable argument list there should be at least be one fixed argument?

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 2. Bitwise can be used to generate a random number.

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 3. A function that receives variable number of arguments should use va_arg() to extract the last argument from the variable argument list.

    • Options
    • A. True
    • B. False
    • Discuss
    • 4. Bitwise & can be used to check if more than one bit in a number is on.

    • Options
    • A. True
    • B. False
    • Discuss
    • 5. The preprocessor can trap simple errors like missing declarations, nested comments or mismatch of braces.

    • Options
    • A. True
    • B. False
    • Discuss
    • 6. It is necessary that a header files should have a .h extension?

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

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

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

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 10. 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


    Comments

    There are no comments.

Enter a new Comment