Pointers(Engineering > Computer Science And Engineering > C++ Language ) Questions and Answers

Question 1.

 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


pointer to function taking a char* argument and returns an int



Question 2.

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 3. 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 4. The operator used for dereferencing or indirection is ____
  1.    *
  2.    &
  3.    ->
  4.    ->>
Explanation:-
Answer: Option A. -> *


*



Question 5. 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.



Question 6. 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**)


int ***fun(float*, char**)



Question 7.

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 8.

What is the output of this program?

#include < iostream >

using namespace std;

int main()

{

int a = 5, b = 10, c = 15;

int *arr[ ] = {&a, &b, &c};

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 9.

What is the output of this program?

#include < iostream >

using namespace std;

int main()

{

char *ptr;

char Str[] = "abcdefg";

ptr = Str;

ptr += 5;

cout

  1.    fg
  2.    cdef
  3.    defg
  4.    abcd
Explanation:-
Answer: Option A. -> fg


Pointer ptr points to string 'fg'. So it prints fg.



Question 10.

What is the output of this program?

#include < iostream >

using namespace std;

int main()

{

char arr[20];

int i;

for(i = 0; i < 10; i++)

*(arr + i) = 65 + i;

*(arr + i) = '\0';

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.