logo

CuriousTab

CuriousTab

Discussion


Home C Programming C Preprocessor Comments

  • Question
  • Will it result in to an error if a header file is included twice?


  • Options
  • A. Yes
  • B. No
  • C. It is compiler dependent.

  • Correct Answer
  • It is compiler dependent. 

    Explanation
    Unless the header file has taken care to ensure that if already included it doesn't get included again.

    Turbo C, GCC compilers would take care of these problems, generate no error.

  • C Preprocessor problems


    Search Results


    • 1. Will the program compile successfully?
      #include<stdio.h>
      
      int main()
      {
          printf("India" "CURIOUSTAB\n");
          return 0;
      }
      

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 2. It is necessary that a header files should have a .h extension?

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 3. Will the program compile successfully?
      #include<stdio.h>
      #define X (4+Y)
      #define Y (X+3)
      
      int main()
      {
          printf("%d\n", 4*X+2);
          return 0;
      }
      

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 4. Would the following typedef work?
      typedef #include l;

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 5. Will the program compile successfully?
      #include<stdio.h>
      
      int main()
      {
          #ifdef NOTE
              int a;
              a=10;
          #else
              int a;
              a=20;
          #endif
          printf("%d\n", a);
          return 0;
      }
      

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 6. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          static int arr[] = {0, 1, 2, 3, 4};
          int *p[] = {arr, arr+1, arr+2, arr+3, arr+4};
          int **ptr=p;
          ptr++;
          printf("%d, %d, %d\n", ptr-p, *ptr-arr, **ptr);
          *ptr++;
          printf("%d, %d, %d\n", ptr-p, *ptr-arr, **ptr);
          *++ptr;
          printf("%d, %d, %d\n", ptr-p, *ptr-arr, **ptr);
          ++*ptr;
          printf("%d, %d, %d\n", ptr-p, *ptr-arr, **ptr);
          return 0;
      }
      

    • Options
    • A. 0, 0, 0
      1, 1, 1
      2, 2, 2
      3, 3, 3
    • B. 1, 1, 2
      2, 2, 3
      3, 3, 4
      4, 4, 1
    • C. 1, 1, 1
      2, 2, 2
      3, 3, 3
      3, 4, 4
    • D. 0, 1, 2
      1, 2, 3
      2, 3, 4
      3, 4, 5
    • Discuss
    • 7. What will be the output of the program if the array begins at address 65486?
      #include<stdio.h>
      
      int main()
      {
          int arr[] = {12, 14, 15, 23, 45};
          printf("%u, %u\n", arr, &arr);
          return 0;
      }
      

    • Options
    • A. 65486, 65488
    • B. 65486, 65486
    • C. 65486, 65490
    • D. 65486, 65487
    • Discuss
    • 8. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          static int a[2][2] = {1, 2, 3, 4};
          int i, j;
          static int *p[] = {(int*)a, (int*)a+1, (int*)a+2};
          for(i=0; i<2; i++)
          {
              for(j=0; j<2; j++)
              {
                  printf("%d, %d, %d, %d\n", *(*(p+i)+j), *(*(j+p)+i), 
                                          *(*(i+p)+j), *(*(p+j)+i));
              }
          }
          return 0;
      }
      

    • Options
    • A. 1, 1, 1, 1
      2, 3, 2, 3
      3, 2, 3, 2
      4, 4, 4, 4
    • B. 1, 2, 1, 2
      2, 3, 2, 3
      3, 4, 3, 4
      4, 2, 4, 2
    • C. 1, 1, 1, 1
      2, 2, 2, 2
      2, 2, 2, 2
      3, 3, 3, 3
    • D. 1, 2, 3, 4
      2, 3, 4, 1
      3, 4, 1, 2
      4, 1, 2, 3
    • Discuss
    • 9. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          float arr[] = {12.4, 2.3, 4.5, 6.7};
          printf("%d\n", sizeof(arr)/sizeof(arr[0]));
          return 0;
      }
      

    • Options
    • A. 5
    • B. 4
    • C. 6
    • D. 7
    • Discuss
    • 10. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          void fun(int, int[]);
          int arr[] = {1, 2, 3, 4};
          int i;
          fun(4, arr);
          for(i=0; i<4; i++)
              printf("%d,", arr[i]);
          return 0;
      }
      void fun(int n, int arr[])
      {
          int *p=0;
          int i=0;
          while(i++ < n)
              p = &arr[i];
          *p=0;
      }
      

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


    Comments

    There are no comments.

Enter a new Comment