Here is a listing of C++ language interview questions on “Operators” along with answers, explanations and/or solutions:
1. Which operator is having the right to left associativity in the following?
a) Array subscripting
b) Function call
c) Addition and subtraction
d) Type cast
View Answer
Explanation: There are many right to left associativity operators in C++, which means they are evaluation is done from right to left. Type Cast is one of them. Here is a link of associativity of operators: https://github.com/MicrosoftDocs/cpp-docs/blob/master/docs/cpp/cpp-built-in-operators-precedence-and-associativity.md
2. Which operator is having the highest precedence?
a) postfix
b) unary
c) shift
d) equality
View Answer
Explanation: The operator which is having highest precedence is postfix and lowest is equality.
3. What is this operator called ?:?
a) conditional
b) relational
c) casting operator
d) none of the mentioned
View Answer
Explanation: In this operator, if the condition is true means, it will return the first operator, otherwise second operator.
4. What is the output of this program?
#include <iostream>
using namespace std;
int main()
{
int a;
a = 5 + 3 * 5;
cout << a;
return 0;
}
a) 35
b) 20
c) 25
d) 30
View Answer
Explanation: Because the * operator is having highest precedence, So it is executed first and then the + operator will be executed.
Output:
$ g++ op1.cpp $ a.out 20
5. What is the use of dynamic_cast operator?
a) it converts virtual base class to derived class
b) it converts the virtual base object to derived objects
c) it will convert the operator based on precedence
d) none of the mentioned
View Answer
Explanation: Because the dynamic_cast operator is used to convert from base class to derived class.
6. What is the output of this program?
#include <iostream>
using namespace std;
int main()
{
int a = 5, b = 6, c, d;
c = a, b;
d = (a, b);
cout << c << ' ' << d;
return 0;
}
a) 5 6
b) 6 5
c) 6 7
d) none of the mentioned
View Answer
Explanation: It is a separator here. In C, the value a is stored in c and in d the value b is stored in d because of the bracket.
Output:
$ g++ op3.cpp $ a.out 5 6
7. What is the output of this program?
#include <iostream>
using namespace std;
int main()
{
int i, j;
j = 10;
i = (j++, j + 100, 999 + j);
cout << i;
return 0;
}
a) 1000
b) 11
c) 1010
d) 1001
View Answer
Explanation: j starts with the value 10. j is then incremented to 11. Next, j is added to 100. Finally, j (still containing 11) is added to 999 which yields the result 1010.
Output:
$ g++ op2.cpp $ a.out 1010
8. What is the output of this program?
#include <iostream>
using namespace std;
int main ()
{
int x, y;
x = 5;
y = ++x * ++x;
cout << x << y;
x = 5;
y = x++ * ++x;
cout << x << y;
return 0;
}
a) 749735
b) 736749
c) 367497
d) none of the mentioned
View Answer
Explanation: Because of the precedence the pre-increment and post increment operator, we got the output as 749736.
Output:
$ g++ op.cpp $ a.out 749735
9. What is the output of this program?
#include <iostream>
using namespace std;
int main()
{
int a = 5, b = 6, c;
c = (a > b) ? a : b;
cout << c;
return 0;
}
a) 6
b) 5
c) 4
d) 7
View Answer
Explanation: Here the condition is false on conditional operator, so the b value is assigned to c.
Output:
$ g++ op1.cpp $ a.out 6
10. What is the output of this program?
#include <iostream>
using namespace std;
main()
{
double a = 21.09399;
float b = 10.20;
int c ,d;
c = (int) a;
d = (int) b;
cout << c <<' '<< d;
return 0;
}
a) 20 10
b) 10 21
c) 21 10
d) none of the mentioned
View Answer
Explanation: In this program, we are casting the operator to integer, So it is printing as 21 and 10.
Output:
$ g++ op5.cpp $ a.out 21 10
Sanfoundry Global Education & Learning Series – C++ Programming Language.