Open In App

Output of C programs | Set 49 (Operators)

Last Updated : 18 Oct, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Prerequisite : Operators in C

1. What will be the output of the following program?




#include <stdio.h>
int main(void)
{
    int i = 40 >> 5 << 3 >> 2 << 1;
    printf("%d", i);
    return 0;
}


Options:

1. 4           2. 0
3. 40          4. 1
Answer : (1)

Explanation: The answer is option(1). Here first 40 >> 5 means 40 / 32 which is 1, then 1 2 brings 2, then 2 << 1 becomes 4.
For details refer bit shift operators

2. What will be the output of the following program?




#include <stdio.h>
int main(void)
{
    int i = 10 > 9 > 7 < 8;
    printf("%d", i);
    return 0;
}


Options:

1. 1           2. 20
3. 10          4. 0
Answer : (1)

Explanation: The answer is option(1). Here 10 > 9 returns 1, then 1>7 returns 0 then 0<8 returns 1. 

3. What will be the output of the following program?




#include <stdio.h>
int main(void)
{
    int x = 4, y = 4, z = 4;
    if (x == y == z) {
        printf("Hello");
    } else {
        printf("GEEKS");
    }
    return 0;
}


Options:

1. Hello           2. 0
3. 1               4. GEEKS
Answer : (4)

Explanation : The answer is option(4). Here x == y comparison gives 1 and the returned 1 is compared with z which is false and returns 0. Therefore it prints GEEKS.

4. What will be the output of the following program?




#include <stdio.h>
int main(void)
{
    int x = 10, y = 15;
    x ^= y ^= x ^= y;
    printf("%d%d", x, y);
    return 0;
}


Options:

1. 44                  2. 1510
3. 55                  4. 45
Answer : (2)

Explanation: The answer is option(2). In the above example, x and y are interchanged in a single line statement using the compound assignment operator, where its order of evaluation is from right to left. So, the value y is XORed with x and the result is assigned to x(i.e. x=15). In the second compound assignment operator 5 is XORed with y and the result is assigned to y(i.e. y=5). Finally, y is again XORed with x and the result is assigned to x and x becomes 10. So, both are swapped.

5. What will be the output of the following program?




#include <stdio.h>
int main(void)
{
    int a;
    int i = 4;
    a = 24 || --i;
    printf("%d %d", a, i);
    return 0;
}


Options:

1. 1 4           2. 4 4
3. 4 1           4. 1 1
Answer : (1)

Explanation: The answer is option(1). Here the 24||–i return 1 because logical || operators returns 1 if any one condition is true and the –i is not evaluated when 1st one returns true.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads