C | Loops & Control Structure | Question 5

Predict the output of the below program:

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <stdio.h>
#define EVEN 0
#define ODD 1
int main()
{
    int i = 3;
    switch (i & 1)
    {
        case EVEN: printf("Even");
                break;
        case ODD: printf("Odd");
                break;
        default: printf("Default");
    }
    return 0;
}

chevron_right


(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.



My Personal Notes arrow_drop_up