Q:

C++ Operators | Find output programs | Set 2

0

This section contains the C++ find output programs with their explanations on various operators (set 2).

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;
}

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;
}

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;
}

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

Answer Program 1:

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.

Answer Program 2:

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.

Answer Program 3:

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.

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now