Pointers(C++ Programming ) Questions and Answers

Question 1.


What is the output of this program?


1.
#include
2.
using namespace std;
3.
int main()
4.
{
5.
char *ptr;
6.
char Str[] = "abcdefg";
7.
ptr = Str;
8.
ptr += 5;
9.
cout
  1.    fg
  2.    cdef
  3.    defg
  4.    abcd
Explanation:-
Answer: Option A. -> fg

Pointer ptr points to string ‘fg’. So it prints fg.
Output:
$ g++ point.cpp
$ a.out
fg



Question 2.


What is the output of this program?


1.
#include
2.
using namespace std;
3.
int main()
4.
{
5.
char arr[20];
6.
int i;
7.
for(i = 0; i < 10; i++)
8.
*(arr + i) = 65 + i;
9.
*(arr + i) = '\0';
10.
cout
  1.    ABCDEFGHIJ
  2.    AAAAAAAAAA
  3.    JJJJJJJJ
  4.    none of the mentioned
Explanation:-
Answer: Option A. -> ABCDEFGHIJ

Each time we are assigning 65 + i. In first iteration i = 0 and 65 is assigned. So it will print from A to J.
$ g++ point1.cpp
$ a.out
ABCDEFGHIJ



Question 3.

The correct statement for a function that takes pointer to a float, a pointer to a pointer to a char 

and returns a pointer to a pointer to a integer is


  1.    int **fun(float**, char**)
  2.    int *fun(float*, char*)
  3.    int ***fun(float*, char**)
  4.    int ***fun(*float, **char)
Explanation:-
Answer: Option C. -> int ***fun(float*, char**)

None.



Question 4.


What is the output of this program?


1.
#include
2.
using namespace std;
3.
int main()
4.
{
5.
int a = 5, b = 10, c = 15;
6.
int *arr[ ] = {&a, &b, &c};
7.
cout
  1.    5
  2.    10
  3.    15
  4.    it will return some random number
Explanation:-
Answer: Option D. -> it will return some random number

Array element cannot be address of auto variable. It can be address of static or extern variables.



Question 5.

What will happen in this code?
 int a = 100, b = 200;
 int *p = &a, *q = &b;
 p = q;


  1.    b is assigned to a
  2.    p now points to b
  3.    a is assigned to b
  4.    q now points to a
Explanation:-
Answer: Option B. -> p now points to b

Assigning to refrence changes the object to which the refrence is bound.



Question 6.

Which of the following is illegal?


  1.    int *ip;
  2.    string s, *sp = 0;
  3.    int i; double* dp = &i;
  4.    int *pi = 0;
Explanation:-
Answer: Option C. -> int i; double* dp = &i;

dp is initialized int value of i.



Question 7.

Choose the right option
 string* x, y;


  1.    x is a pointer to a string, y is a string
  2.    y is a pointer to a string, x is a string
  3.    both x and y are pointer to string types
  4.    none of the mentioned
Explanation:-
Answer: Option A. -> x is a pointer to a string, y is a string

* is to be grouped with the variables not the data types.



Question 8.

What does the following statement mean?
 int (*fp)(char*)


  1.    pointer to a pointer
  2.    pointer to an array of chars
  3.    pointer to function taking a char* argument and returns an int
  4.    function taking a char* argument and returning a pointer to int
Explanation:-
Answer: Option C. -> pointer to function taking a char* argument and returns an int

None.



Question 9.

The operator used for dereferencing or indirection is ____


  1.    *
  2.    &
  3.    ->
  4.    ->>
Explanation:-
Answer: Option A. -> *

None.



Question 10.

Which one of the following is not a possible state for a pointer.


  1.    hold the address of the specific object
  2.    point one past the end of an object
  3.    zero
  4.    point to a tye
Explanation:-
Answer: Option D. -> point to a tye

A pointer can be in only 3 states a,b and c.