Subscripting(C++ Programming ) Questions and Answers

Question 1.

What do we need to use when we have multiple subscripts?


  1.    operator()
  2.    operator[]
  3.    operator
  4.    None of the mentioned
Explanation:-
Answer: Option A. -> operator()

The reason is that operator[] always takes exactly one parameter, but operator() can take any 

number of parameters.



Question 2.

What do we need to do to pointer for overloading the subscript operator?


  1.    reference pointer
  2.    dereference pointer
  3.    store it in heap
  4.    None of the mentioned
Explanation:-
Answer: Option B. -> dereference pointer

If you have a pointer to an object of some class type that overloads the subscript operator, you 

have to dereference that pointer in order to free the memory.



Question 3.


What is the output of this program?


1.
#include
2.
using namespace std;
3.
class sample
4.
{
5.
private:
6.
int* i;
7.
int j;
8.
public:
9.
sample (int j);
10.
~sample ();
11.
int& operator [] (int n);
12.
};
13.
int& sample::operator [] (int n)
14.
{
15.
return i[n];
16.
}
17.
sample::sample (int j)
18.
{
19.
i = new int [j];
20.
j = j;
21.
}
22.
sample::~sample ()
23.
{
24.
delete [] i;
25.
}
26.
int main ()
27.
{
28.
sample m (5);
29.
m [0] = 25;
30.
m [1] = 20;
31.
m [2] = 15;
32.
m [3] = 10;
33.
m [4] = 5;
34.
for (int n = 0; n 35.
cout
  1.    252015105
  2.    510152025
  3.    51015
  4.    None of the mentioned
Explanation:-
Answer: Option A. -> 252015105

In this program, we are printing the array in the reverse order by using subscript operator.
Output:
$ g++ sub4.cpp
$ a.out
252015105



Question 4.


What is the output of this program?


1.
#include
2.
using namespace std;
3.
const int limit = 4;
4.
class safearray
5.
{
6.
private:
7.
int arr[limit];
8.
public:
9.
int& operator [](int n)
10.
{
11.
if (n == limit - 1)
12.
{
13.
int temp;
14.
for (int i = 0; i 15.
{
16.
if (arr[n + 1] > arr[n])
17.
{
18.
temp = arr[n];
19.
arr[n] = arr[n + 1];
20.
arr[n + 1] = temp;
21.
}
22.
}
23.
}
24.
return arr[n];
25.
}
26.
};
27.
int main()
28.
{
29.
safearray sa1;
30.
for(int j = 0; j 31.
sa1[j] = j*10;
32.
for(int j = 0; j 33.
{
34.
int temp = sa1[j];
35.
cout
  1.    0102030
  2.    1020300
  3.    3020100
  4.    error
Explanation:-
Answer: Option A. -> 0102030

In this program, we are returning the array element by the multiple of 10.
Output:
$ g++ sub2.cpp
$ a.out
0102030



Question 5.


What is the output of this program?


1.
#include
2.
using namespace std;
3.
class A
4.
{
5.
public:
6.
int x;
7.
A(int n = 0) : x(n) {};
8.
int& operator[](int n)
9.
{
10.
cout
  1.    110
  2.    111
  3.    011
  4.    001
Explanation:-
Answer: Option D. -> 001

In this program, we overloading the operator[] by using subscript operator.
Output:
$ g++ sub3.cpp
$ a.out
001



Question 6.


What is the output of this program?


1.
#include
2.
using namespace std;
3.
class numbers
4.
{
5.
private:
6.
int m_nValues[10];
7.
public:
8.
int& operator[] (const int nValue);
9.
};
10.
int& numbers::operator[](const int nValue)
11.
{
12.
return m_nValues[nValue];
13.
}
14.
int main()
15.
{
16.
numbers N;
17.
N[5] = 4;
18.
cout
  1.    5
  2.    4
  3.    3
  4.    6
Explanation:-
Answer: Option B. -> 4

In this program, We are getting the values and returning it by overloading the subscript operator.
Output:
$ g++ sub1.cpp
$ a.out
4

Question 7.

Pick out the correct statement.


  1.    subscript operator has a higher precedence than the assignment operator.
  2.    subscript operator has a lower precedence than the assignment operator.
  3.    subscript operator is used with string elements.
  4.    None of the mentioned
Explanation:-
Answer: Option A. -> subscript operator has a higher precedence than the assignment operator.

None.



Question 8.

 subscript operator is used to access which elements?


  1.    string
  2.    char
  3.    array
  4.    all of the mentioned
Explanation:-
Answer: Option C. -> array

None.



Question 9.

How many arguments will the subscript operator will take for overloading?


  1.    1
  2.    2
  3.    0
  4.    as many as possible
Explanation:-
Answer: Option A. -> 1

The subscript operator overload takes only one argument,
but it can be of any type.