logo

CuriousTab

CuriousTab

Discussion


Home C Programming Constants Comments

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

  • Correct Answer
  • Error: unknown max in declaration/Constant expression required 

    Explanation
    Step 1: A macro named MAX is defined with value 128

    Step 2: const int max=128; The constant variable max is declared as an integer data type and it is initialized with value 128.

    Step 3: char array[max]; This statement reports an error "constant expression required". Because, we cannot use variable to define the size of array.

    To avoid this error, we have to declare the size of an array as static. Eg. char array[10]; or use macro char array[MAX];

    Note: The above program will print A A as output in Unix platform.


    Constants problems


    Search Results


    • 1. Point out the error in the program.
      #include<stdio.h>
      const char *fun();
      
      int main()
      {
          char *ptr = fun();
          return 0;
      }
      const char *fun()
      {
          return "Hello";
      }
      

    • Options
    • A. Error: Lvalue required
    • B. Error: cannot convert 'const char *' to 'char *'.
    • C. No error and No output
    • D. None of above
    • Discuss
    • 2. 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
    • 3. Bitwise | can be used to set a bit in number.

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

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 5. Bitwise can be used to reverse a sign of a number.

    • Options
    • A. Yes
    • B. No
    • Discuss
    • 6. Point out the error in the program.
      #include<stdio.h>
      const char *fun();
      
      int main()
      {
          *fun() = 'A';
          return 0;
      }
      const char *fun()
      {
          return "Hello";
      }
      

    • Options
    • A. Error: RValue required
    • B. Error: Lvalue required
    • C. Error: fun() returns a pointer const character which cannot be modified
    • D. No error
    • 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. 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.
      #include<stdio.h>
      
      int main()
      {
          const int k=7;
          int *const q=&k;
          printf("%d", *q);
          return 0;
      }
      

    • Options
    • A. Error: RValue required
    • B. Error: Lvalue required
    • C. Error: cannot convert from 'const int *' to 'int *const'
    • D. No error
    • Discuss
    • 10. 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


    Comments

    There are no comments.

Enter a new Comment