250+ TOP MCQs on Pointers and Addresses and Answers

’s MCQs on C helps anyone preparing for placement in Persistent Systems and other companies. Anyone looking for Persistent placement papers should practice these questions continuously for 2-3 months, thereby ensuring a top position in placements.

Here is a listing of C quiz on “Pointer Addresses” along with answers, explanations and/or solutions:

1. What will be the output of the following C code?

  1.     #include 
  2.     int main()
  3.     {
  4.         char *p = NULL;
  5.         char *q = 0;
  6.         if (p)
  7.             printf(" p ");
  8.         else
  9.             printf("nullp");
  10.         if (q)
  11.             printf("qn");
  12.         else
  13.             printf(" nullqn");
  14.     }

a) nullp nullq
b) Depends on the compiler
c) x nullq where x can be p or nullp depending on the value of NULL
d) p q
Answer: a
Clarification: None.

2. What will be the output of the following C code?

  1.     #include 
  2.     int main()
  3.     {
  4.         int i = 10;
  5.         void *p = &i;
  6.         printf("%dn", (int)*p);
  7.         return 0;
  8.     }

a) Compile time error
b) Segmentation fault/runtime crash
c) 10
d) Undefined behaviour
Answer: a
Clarification: None.

3. What will be the output of the following C code?

  1.     #include 
  2.     int main()
  3.     {
  4.         int i = 10;
  5.         void *p = &i;
  6.         printf("%fn", *(float*)p);
  7.         return 0;
  8.     }

a) Compile time error
b) Undefined behaviour
c) 10
d) 0.000000
Answer: d
Clarification: None.

4. What will be the output of the following C code?

  1.     #include 
  2.     int *f();
  3.     int main()
  4.     {
  5.         int *p = f();
  6.         printf("%dn", *p);
  7.     }
  8.     int *f()
  9.     {
  10.         int *j = (int*)malloc(sizeof(int));
  11.         *j = 10;
  12.         return j;
  13.     }

a) 10
b) Compile time error
c) Segmentation fault/runtime crash since pointer to local variable is returned
d) Undefined behaviour
Answer: a
Clarification: None.

5. What will be the output of the following C code?

  1.     #include 
  2.     int *f();
  3.     int main()
  4.     {
  5.         int *p = f();
  6.         printf("%dn", *p);
  7.     }
  8.     int *f()
  9.     {
  10.         int j = 10;
  11.         return &j;
  12.     }

a) 10
b) Compile time error
c) Segmentation fault/runtime crash
d) Undefined behaviour
Answer: a
Clarification: We are returning address of a local variable which should not be done. In this specific instance, we are able to see the value of 10, which may not be the case if we call other functions before calling printf() in main().

6. Comment on the following pointer declaration.

int *ptr, p;

a) ptr is a pointer to integer, p is not
b) ptr and p, both are pointers to integer
c) ptr is a pointer to integer, p may or may not be
d) ptr and p both are not pointers to integer
Answer: a
Clarification: None.

7. What will be the output of the following C code?

  1.     #include 
  2.     int main()
  3.     {
  4.         int *ptr, a = 10;
  5.         ptr = &a;
  6.         *ptr += 1;
  7.         printf("%d,%d/n", *ptr, a);
  8.     }

a) 10,10
b) 10,11
c) 11,10
d) 11,11
Answer: d
Clarification: None.

8. Comment on the following C statement.

const int *ptr;

a) You cannot change the value pointed by ptr
b) You cannot change the pointer ptr itself
c) You May or may not change the value pointed by ptr
d) You can change the pointer as well as the value pointed by it
Answer: a
Clarification: None.

  250+ TOP MCQs on External Variables and Answers

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top