Sail E0 Webinar

MCQs

Total Questions : 35 | Page 3 of 4 pages
Question 21.


What will be the output of the program ?


#include<stdio.h>
int main()
{
int i=32, j=0x20, k, l, m;
k=i|j;
l=i&j;
m=k^l;
printf("%d, %d, %d, %d, %d\n", i, j, k, l, m);
return 0;
}
  1.    0, 0, 0, 0, 0
  2.    0, 32, 32, 32, 32
  3.    32, 32, 32, 32, 0
  4.    32, 32, 32, 32, 32
 Discuss Question
Answer: Option C. -> 32, 32, 32, 32, 0


Question 22.


What will be the output of the program?


#include<stdio.h>
int main()
{
char c=48;
int i, mask=01;
for(i=1; i
  1.    12400
  2.    12480
  3.    12500
  4.    12556
 Discuss Question
Answer: Option B. -> 12480


Question 23.


What will be the output of the program?


#include<stdio.h>
int main()
{
printf("%d >> %d %d >> %d:\n", 4 >> 1, 8 >> 1);
return 0;
}
  1.    4 1 8 1
  2.    4 >> 1 8 >> 1
  3.    2 >> 4 Garbage value >> Garbage value
  4.    2 4
 Discuss Question
Answer: Option C. -> 2 >> 4 Garbage value >> Garbage value


Question 24.


What will be the output of the program?


#define P printf("%d\n", -1^~0);
#define M(P) int main()\
{\
P\
return 0;\
}
M(P)
  1.    1
  2.    0
  3.    -1
  4.    2
 Discuss Question
Answer: Option B. -> 0


Question 25.

What will be the output of the program?


#include<stdio.h>
int main()
{
unsigned char i = 0x80;
printf("%d\n", i
  1.    0
  2.    256
  3.    100
  4.    80
 Discuss Question
Answer: Option B. -> 256


Question 26.


If an unsigned int is 2 bytes wide then, What will be the output of the program ?


#include<stdio.h>
int main()
{
unsigned int a=0xffff;
~a;
printf("%x\n", a);
return 0;
}
  1.    ffff
  2.    0000
  3.    00ff
  4.    ddfd
 Discuss Question
Answer: Option A. -> ffff


Question 27.


Assuming a integer 2-bytes, What will be the output of the program?


#include<stdio.h>
int main()
{
printf("%x\n", -1
  1.    ffff
  2.    fff8
  3.    0
  4.    -1
 Discuss Question
Answer: Option A. -> ffff

Assume the size of int is 2-bytes(16 bits). The integer value 1 is represented as given below:
Binary of 1: 00000000 00000001 (this is for positive value of 1)
1's complement of binary 1: 11111111 11111110
2's complement of binary 1: 11111111 11111111
Thy system will STORE   '11111111 11111111' in memory to represent '-1'.
If we do left shift (3 bits) on 11111111 11111111 it will become as given below:
11111111 11111111 ---(left shift 3 times)---> 11111111 11111000.
So, 11111111 11111000 ---(binary to hex)---> FF F8. (Required Answer)
Note:
How is the negative number obtained from 2's complement value?
As stated above, -1 is represented as '11111111 11111111' in memory.
So, the system will take 2's complement of '11111111 11111111' to the get the original negative value back.
Example:
Bit Representation of -1: 11111111 11111111
Since the left most bit is 1, it is a negative number. Then the value is
1's complement: 00000000 00000000
2's complement: 00000000 00000001 (Add 1 to the above result)
Therefore, '00000000 00000001' = 1 and the sign is negative.
Hence the value is -1.


Question 28.

Which bitwise operator is suitable for checking whether a particular bit is on or off?


  1.    && operator
  2.    & operator
  3.    || operator
  4.    ! operator
 Discuss Question
Answer: Option B. -> & operator


Question 29.


If an unsigned int is 2 bytes wide then, What will be the output of the program ?


#include<stdio.h>
int main()
{
unsigned int m = 32;
printf("%x\n", ~m);
return 0;
}
  1.    ffff
  2.    0000
  3.    ffdf
  4.    ddfd
 Discuss Question
Answer: Option C. -> ffdf


Question 30.


Assunming, integer is 2 byte, What will be the output of the program?


#include<stdio.h>
int main()
{
printf("%x\n", -1>>1);
return 0;
}
  1.    ffff
  2.    0fff
  3.    0000
  4.    fff0
 Discuss Question
Answer: Option A. -> ffff

Negative numbers are treated with 2's complement method.
1's complement: Inverting the bits ( all 1s to 0s and all 0s to 1s)
2's complement: Adding 1 to the result of 1's complement.

Binary of 1(2byte)     :  0000 0000 0000 0001

Representing -1:

1s complement of 1(2byte)    : 1111 1111 1111 1110

Adding 1 to 1's comp. result : 1111 1111 1111 1111

Right shift 1bit(-1>>1): 1111 1111 1111 1111 (carry out 1)

Hexadecimal            : f   f    f    f

(Filled with 1s in the left side in the above step)

Note:

1. Fill with 1s in the left side for right shift for negative numbers.
2. Fill with 0s in the right side for left shift for negative numbers.
3. Fill with 0s in the left side for right shift for positive numbers.
4. Fill with 0s in the right side for left shift for positive numbers.


Latest Videos

Latest Test Papers