logo

CuriousTab

CuriousTab

Discussion


Home C Programming C Preprocessor See What Others Are Saying!
  • Question
  • 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

  • Correct Answer
  • Yes 

    Explanation
    Yes, this program will compile and run successfully and prints 20.

    The macro #ifdef NOTE evaluates the given expression to 1. If satisfied it executes the #ifdef block statements. Here #ifdef condition fails because the Macro NOTE is nowhere declared.

    Hence the #else block gets executed, the variable a is declared and assigned a value of 20.

    printf("%d\n", a); It prints the value of variable a 20.


    More questions

    • 1. Which files will get closed through the fclose() in the following program?
      #include<stdio.h>
      
      int main()
      {
          FILE *fs, *ft, *fp;
          fp = fopen("A.C", "r");
          fs = fopen("B.C", "r");
          ft = fopen("C.C", "r");
          fclose(fp, fs, ft);
          return 0;
      }
      

    • Options
    • A. "A.C" "B.C" "C.C"
    • B. "B.C" "C.C"
    • C. "A.C"
    • D. Error in fclose()
    • Discuss
    • 2. Which of the following are unary operators in C?

      1. !
      2. sizeof
      3. ~
      4. &&

    • Options
    • A. 1, 2
    • B. 1, 3
    • C. 2, 4
    • D. 1, 2, 3
    • Discuss
    • 3. Point out the error in the following program.
      #include<stdio.h>
      #include<stdarg.h>
      void varfun(int n, ...);
      
      int main()
      {
          varfun(3, 7, -11.2, 0.66);
          return 0;
      }
      void varfun(int n, ...)
      {
          float *ptr;
          int num;
          va_start(ptr, n);
          num = va_arg(ptr, int);
          printf("%d", num);
      }
      

    • Options
    • A. Error: too many parameters
    • B. Error: invalid access to list member
    • C. Error: ptr must be type of va_list
    • D. No error
    • Discuss
    • 4. Macros with arguments are allowed

    • Options
    • A. True
    • B. False
    • Discuss
    • 5. 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
    • Discuss
    • 6. What will be the output of the program?
      #include<stdio.h>
      
      int main()
      {
          const int x=5;
          const int *ptrx;
          ptrx = &x;
          *ptrx = 10;
          printf("%d\n", x);
          return 0;
      }
      

    • Options
    • A. 5
    • B. 10
    • C. Error
    • D. Garbage value
    • Discuss
    • 7. What will be the output of the program?
      #include<stdio.h>
      int fun(int **ptr);
      
      int main()
      {
          int i=10;
          const int *ptr = &i;
          fun(&ptr);
          return 0;
      }
      int fun(int **ptr)
      {
          int j = 223;
          int *temp = &j;
          printf("Before changing ptr = %5x\n", *ptr);
          const *ptr = temp;
          printf("After changing ptr = %5x\n", *ptr);
          return 0;
      }
      

    • Options
    • A. Address of i
      Address of j
    • B. 10
      223
    • C. Error: cannot convert parameter 1 from 'const int **' to 'int **'
    • D. Garbage value
    • Discuss
    • 8. 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
    • 9. 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
    • 10. 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


    Comments

    There are no comments.

Enter a new Comment