C++ Programming Questions and Answers – Argument Passing

This section on tough C++ programming questions focuses on “Argument Passing”. One shall practice these questions to improve their C++ programming skills needed for various interviews (campus interviews, walkin interviews, company interviews), placements, entrance exams and other competitive exams. These questions can be attempted by anyone focusing on learning C++ programming language. They can be a beginner, fresher, engineering graduate or an experienced IT professional. Our C++ programming questions come with detailed explanation of the answers which helps in better understanding of C++ concepts.

Here is a listing of tough C++ programming questions on “Argument Passing” along with answers, explanations and/or solutions:

1. How many ways of passing a parameter are there in c++?
a) 1
b) 2
c) 3
d) 4
View Answer

Answer: c
Explanation: There are three ways of passing a parameter. They are pass by value,pass by reference and pass by pointer.

2. Which is used to keep the call by reference value as intact?
a) static
b) const
c) absolute
d) virtual
View Answer

Answer: b
Explanation: Because const will not change the value of the variables during the execution.

3. By default how the value are passed in c++?
a) call by value
b) call by reference
c) call by pointer
d) call by object
View Answer

Answer: a
Explanation: None.
advertisement
advertisement

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

  1.     #include <iostream>
  2.     using namespace std;
  3.     void copy (int& a, int& b, int& c)
  4.     {
  5.         a *= 2;
  6.         b *= 2;
  7.         c *= 2;
  8.     }
  9.     int main ()
  10.     {
  11.         int x = 1, y = 3, z = 7;
  12.         copy (x, y, z);
  13.         cout << "x =" << x << ", y =" << y << ", z =" << z;
  14.         return 0;
  15.     }

a) 2 5 10
b) 2 4 5
c) 2 6 14
d) 2 4 9
View Answer

Answer: c
Explanation: Because we multiplied the values by 2 in the copy function.
Output:

Sanfoundry Certification Contest of the Month is Live. 100+ Subjects. Participate Now!
$ g++ arg6.cpp
$ a.out
x = 2,y = 6,z = 14

5. What will be the new value of x in the following C++ code?

advertisement
  1.     #include <iostream>
  2.     using namespace std;
  3.     void fun(int &x)
  4.     {
  5.         x = 20;
  6.     }
  7.     int main()
  8.     {
  9.          int x = 10;
  10.          fun(x);
  11.          cout << "New value of x is " << x;
  12.          return 0;
  13.     }

a) 10
b) 20
c) 15
d) 36
View Answer

Answer: b
Explanation: As the parameter is passed by reference, the value in the original memory of x is changed hence the output is printed as 20.
Output:

advertisement
$ g++ arg5.cpp
$ a.out
20

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

  1.     #include <iostream>
  2.     using namespace std;
  3.     long factorial (long a)
  4.     {
  5.         if (a > 1)
  6.             return (a * factorial (a + 1));
  7.         else
  8.             return (1);
  9.     }
  10.     int main ()
  11.     {
  12.         long num = 3;
  13.         cout << num << "! = " << factorial ( num );
  14.         return 0;
  15.     }

a) 6
b) 24
c) segmentation fault
d) compile time error
View Answer

Answer: c
Explanation: As we have given in the function as a+1, it will exceed the size and so it arises the segmentation fault.
Output:

$ g++ arg3.cpp
$ a.out
segmentation fault

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

  1.     #include <iostream>
  2.     using namespace std;
  3.     void square (int *x)
  4.     {
  5. 	*x = (*x + 1) * (*x);
  6.     }
  7.     int main ( )
  8.     {
  9. 	int num = 10;
  10.         square(&num);
  11.         cout << num; 
  12.         return 0;
  13.     }

a) 100
b) compile time error
c) 144
d) 110
View Answer

Answer: d
Explanation: We have increased the x value in operand as x+1, so it will return as 110.
Output:

$ g++ arg2.cpp
$ a.out
110

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

  1.     #include <iostream>
  2.     using namespace std;
  3.     int add(int a, int b);
  4.     int main()
  5.     {
  6.         int i = 5, j = 6;
  7.         cout << add(i, j) << endl;
  8.         return 0;
  9.     }
  10.     int add(int a, int b )
  11.     {
  12.         int sum = a + b;
  13.         a = 7;
  14.         return a + b;
  15.     }

a) 11
b) 12
c) 13
d) compile time error
View Answer

Answer: c
Explanation: The value of a has been changed to 7, So it returns as 13.
Output:

$ g++ arg1.cpp
$ a.out
13

9. What will happen when we use void in argument passing?
a) It will not return value to its caller
b) It will return value to its caller
c) Maybe or may not be return any value to its caller
d) It will return value with help of object
View Answer

Answer: a
Explanation: As void is not having any return value, it will not return the value to the caller.

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

  1.     #include <iostream>
  2.     using namespace std;
  3.     void Sum(int a, int b, int & c)
  4.     {
  5.         a = b + c;
  6.         b = a + c;
  7.         c = a + b;
  8.     }
  9.     int main()
  10.     {
  11.         int x = 2, y =3;
  12.         Sum(x, y, y);
  13.         cout << x << " " << y;
  14.         return 0; 
  15.     }

a) 2 3
b) 6 9
c) 2 15
d) compile time error
View Answer

Answer: c
Explanation: We have passed three values and it will manipulate according to the given condition and yield the result as 2 15
Output:

$ g++ arg.cpp
$ a.out
2 15

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.

If you find a mistake in question / option / answer, kindly take a screenshot and email to [email protected]

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.