Last Updated : 10 Apr, 2024

Predict the output of the below program:

#include <iostream>
using namespace std;

#define EVEN 0
#define ODD 1
int main()
{
    int i = 3;
    switch (i & 1)
    {
        case EVEN: cout << \"Even\";
                break;
        case ODD: cout << \"Odd\";
                break;
        default: cout << \"Default\";
    }
    return 0;
} 

(A) Even
(B) Odd
(C) Default
(D) Compile time error


Answer: (B)

Explanation: The expression i & 1 returns 1 if the rightmost bit is set and returns 0 if the rightmost bit is not set. As all odd integers have their rightmost bit set, the control goes to the block labeled Odd.


Share your thoughts in the comments