Let me explain you!!
In main if we apply bitwise & between n and n-1 we will get the value of n as 136 i.e. 10001000.
And new value of n is being passed to display.
In display:
m=1<<i ------ this statement is left shift of 1 by i bits,
so for i = 31 ,
m= 10000000000000000000000000000000
for i = 20
m=1000000000000000000000000000000
...
...
and the statement is getting repeated 32 times
and each time x&m is to calculated.
and by ternary operator either we get 1 or 0...
That's how the answer is A..
Hope this helps!!