Home »
C++ programming »
C++ find output programs
C++ Operators | Find output programs | Set 2
This section contains the C++ find output programs with their explanations on various operators (set 2).
Submitted by Nidhi, on June 01, 2020
Program 1:
#include <iostream>
using namespace std;
int main()
{
int A = 5, B = 40, C = 0;
C = (A << 2) + (B >> 3);
cout << C;
return 0;
}
Output:
25
Explanation:
In the above code, we use the left shift and right shift operators. Now we will understand the easy way how it works in the evaluation of an expression in C++?
We can understand the left shift operator using below statement:
= 10 << 3
= 10 * pow(2,3)
= 10 * 8
= 80
We can understand the right shift operator using below statement:
= 10 >> 3
= 10 / pow(2,3)
= 10 / 8
= 1
Now we come to the evaluation of expression mentioned in above code.
C = (A<<2) + (B>>3)
= (5<<2) + (40>>3)
= 5 * pow(2,2) + 40 /pow(2,3)
= 5 * 4 + 40 / 8
= 20 + 5
= 25
Then the final value of C is 25.
Program 2:
#include <iostream>
using namespace std;
int main()
{
int C;
C = (80 >> 5) ? (120 << 3) ? (10 > (5 + 5)) ? 1 : 5 : 10 : 20;
cout << C;
return 0;
}
Output:
5
Explanation:
In the above program, we used a nested ternary operator and shift operators, now we evaluate the expression.
C = (80>>5)?(120<<3)?(10>(5+5))?1:5:10:20
= (80/pow(2,5)) ? (120*pow(2,3))?(10>10)?1:5:10:20
= (80/32)?(120*8)?(10>10)?1:5:10:20
= (2) ? (960)?(10>10)?1:5:10:20
- 2 it means the condition is true then
- 960 that is again true
- Then 10>10 that is false then 5 will be returned.
Then the final value of C is 5.
Program 3:
#include <iostream>
using namespace std;
int main()
{
int A = 10, B = 20, C = 0;
C = A++ + ++B * 10 + B++;
cout << A << "," << B << "," << C;
return 0;
}
Output:
11, 22, 241
Explanation:
In the above program, we took 3 local variables A, B, and C that contain the values 10, 20, and 0 respectively. Here we used an expression that contains pre, post-increment, and arithmetic operators, as we know that pre-increment increases the value of the variable before evaluation of the expression, and post-increment increases the value of the variable after evaluation.
Values of A and B before the evaluation of expression due to pre-increment are:
A = 10, B = 21
Now we evaluate the expression:
C = 10 + 21 * 10 + 21
= 10 +210 +21
= 241
Then the value of C is 241. And values of A and B after evaluation of express due to post-increment operator are:
A = 11, B = 22
Then the final values are: A =11, B= 22, C=241
Note: Compiler dependency may be there.