## Please Turn On Java Script To Access This Site.

C Institute | Questions

This section focuses on C interview questions, tricky questions, and puzzles, and viva questions based on “bitwise operator”. One shall practice these questions and puzzles to improve their C programming skills needed for various interviews (campus interviews, walk-in interviews, viva exams and company interviews), placements, entrance exams and other competitive exams. These programming questions can be attempted by anyone focusing on learning C Programming language. They can be a beginner, fresher, engineering graduate, engineering student, bca student, mca student, mcs students or an experienced IT professional. It will improve their understanding of C Language. Here is a listing of C questions and puzzles on “bitwise operator” along with answers and/or explanations.

`Q1: Which of the following can have different meaning in different contexts?`
a)  *
b)  &
c)  Neither * nor &
d)  Both * and &
Explanation : ‘&’ can be used to get address of a variable and can also be used to do bitwise and operation.
Similarly ‘*’ can be used to get value at an address and can also be used to multiplication.

```Q2: What does the following statement do?
a  = a | 1 << n;```
a)  Toggles (n+1)th bit of x
b)  Unsets (n+1)th bit of x
c)  Sets (n+1)th bit of x
d)   Sets x as 2n
Explanation : Let n be 4, the value of expression 1 << n would be 16 (In binary 00010000). If we do bitwise or of binary 00010000 with any number a would set its (n+1)th bit from left side.

```Q3: What will be the output?
#include<stdio.h>
int main()
{
int x = 5,y = 6;
x = x^y;
y = x^y;
printf("%d %d",x,y);
return 0;
}```
a)  5 3
b)  3 5
c)  5 6
d)  6 5
Explanation : ^ is bitwise xor operator.
x = 5 (101)
y = 6 (110)
x = x^y (101 ^ 110) = 3(011)
y = y^x (110 ^ 011) = 5(101)

```Q4: #include<stdio.h>
int main()
{
int x = 2;
(x & 1) ? printf("true") : printf("false");
return 0;
}```
a)  true
b)  false
c)  Syntax Error
d)  Runtime Error