C++ Programming MCQ – References – 2

This set of C++ Programming Multiple Choice Questions & Answers (MCQs) focuses on “References – 2”.

1. Which value can we not assign to reference?
a) integer
b) floating
c) unsigned
d) null
View Answer

Answer: d
Explanation: If it can be assigned with a null value means, it is a copy of the pointer.

2. Identify the incorrect statement.
a) Reference is the alternate name of the object
b) A reference value once defined can be reassigned
c) A reference value once defined cannot be reassigned
d) Reference is the alternate name of the variable
View Answer

Answer: b
Explanation: Reference is a thing which points to the valid memory address, so it can’t be redesigned.

3. Which reference modifier is used to define the reference variable?
a) &
b) $
c) #
d) @
View Answer

Answer: a
Explanation: & aka ‘ampersand’ used to define a reference variable.
advertisement
advertisement

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

  1.     #include <iostream>
  2.     using namespace std;
  3.     void swap(int &a, int &b);
  4.     int main()
  5.     {
  6.         int a = 5, b = 10;
  7.         swap(a, b);
  8.         cout << "In main " << a << b;
  9.         return 0;
  10.     }
  11.     void swap(int &a, int &b)
  12.     {
  13.         int temp;
  14.         temp = a;
  15.         a = b;
  16.         b = temp;
  17.         cout << "In swap " << a << b;
  18.     }

a) In swap 105 In main 105
b) In swap 105 In main 510
c) In swap 510 In main 105
d) In swap 510 In main 510
View Answer

Answer: a
Explanation: As the function is called by reference i.e. all the changes are done directly into the memories of a and b. Therefore changes made to a and b in swap function is reflected back to main function. Hence the values of a and b in swap as well as in main function is changed.
Output:

$ g++ ref.cpp
$ a.out
In swap 105 In main 105

5. What does a reference provide?
a) Alternate name for the class
b) Alternate name for the variable
c) Alternate name for the pointer
d) Alternate name for the object
View Answer

Answer: b
Explanation: Because we are pointing memory address using the temp variable.
advertisement

6. What will be the output of the following C++ code?

advertisement
  1.     #include <iostream>
  2.     using namespace std;
  3.     int main()
  4.     {
  5.         int a = 9;
  6.         int & aref = a;
  7.         a++;
  8.         cout << "The value of a is " << aref;
  9.         return 0;
  10.     }

a) 9
b) 10
c) error
d) 11
View Answer

Answer: b
Explanation: The value is declared and it isincrementedrement, so it’s value is 10.

$ g++ ref1.cpp
$ a.out
10

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

  1.     #include <iostream>
  2.     using namespace std;
  3.     void print (char * a)
  4.     {
  5.         cout << a << endl;
  6.     }
  7.     int main ()
  8.     {
  9.         const char * a = "Hello world";
  10.         print(const_cast<char *> (a) );
  11.         return 0;
  12.     }

a) Hello world
b) Hello
c) world
d) compile time error
View Answer

Answer: a
Explanation: In this program we used the concept of constant casting to cast the variable and printing it.
Output:

$ g++ ref2.cpp
$ a.out
Hello world

8. Identify the correct sentence regarding inequality between reference and pointer.
a) we can not create the array of reference
b) we can create the Array of reference
c) we can use reference to reference
d) we can use variable
View Answer

Answer: a
Explanation: It is not allowed in C++ to make an array of references. To test check following array:
int &arr[] = {&a, &b, &c};
This will give an error.

Sanfoundry Global Education & Learning Series – C++ Programming Language.

To practice all areas of C++ language, here is complete set of 1000+ Multiple Choice Questions and Answers.

advertisement
advertisement
Subscribe to our Newsletters (Subject-wise). Participate in the Sanfoundry Certification contest to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!

Youtube | Telegram | LinkedIn | Instagram | Facebook | Twitter | Pinterest
Manish Bhojasia - Founder & CTO at Sanfoundry
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Subscribe to his free Masterclasses at Youtube & discussions at Telegram SanfoundryClasses.