C Programming Questions and Answers – Pointers and Addresses

Here is a listing of C quiz on “Pointer Addresses” along with answers, explanations and/or solutions:
1. What is the output of this C code?
  1.     #include <stdio.h>
  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("q\n");
  12.         else
  13.             printf(" nullq\n");
  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
View Answer
Answer:a
2. What is the output of this C code?
  1.     #include <stdio.h>
  2.     int main()
  3.     {
  4.         int i = 10;
  5.         void *p = &i;
  6.         printf("%d\n", (int)*p);
  7.         return 0;
  8.     }
a) Compile time error
b) Segmentation fault/runtime crash
c) 10
d) Undefined behaviour
View Answer
Answer:a
3. What is the output of this C code?
  1.     #include <stdio.h>
  2.     int main()
  3.     {
  4.         int i = 10;
  5.         void *p = &i;
  6.         printf("%f\n", *(float*)p);
  7.         return 0;
  8.     }
a) Compile time error
b) Undefined behaviour
c) 10
d) 0.000000
View Answer
Answer:d
4. What is the output of this C code?
  1.     #include <stdio.h>
  2.     int *f();
  3.     int main()
  4.     {
  5.         int *p = f();
  6.         printf("%d\n", *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
View Answer
Answer:a
5. What is the output of this C code?
  1.     #include <stdio.h>
  2.     int *f();
  3.     int main()
  4.     {
  5.         int *p = f();
  6.         printf("%d\n", *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
View Answer
Answer:a
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
View Answer
Answer:a
7. What is the output of this C code?
  1.     #include <stdio.h>
  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
View Answer
Answer:d
8. Comment on the following?
    const int *ptr;
a) You cannot change the value pointed by ptr
b) You cannot change the pointer ptr itself
c) Both (a) and (b)
d) You can change the pointer as well as the value pointed by it
View Answer


Answer:a
www.cinterviews.com appreciates your contribution please mail us the questions you have to cinterviews.blogspot.com@gmail.com so that it will be useful to our job search community

No comments: