Re: C- Tricky Question & answers With explanation C- Tricky Question & answers
1) void main()
{
static int i=i++, j=j++, k=k++;
printf(“i = %d j = %d k = %d”, i, j, k);
} Answer:
i = 1 j = 1 k = 1 Explanation:
Since static variables are initialized to zero by default.
2) void main()
{
while(1){
if(printf("%d",printf("%d")))
break;
else
continue;
}
} Answer:
Garbage values Explanation:
The inner printf executes first to print some garbage value. The printf returns no of characters printed and this value also cannot be predicted. Still the outer printf prints something and so returns a non-zero value. So it encounters the break statement and comes out of the while statement.
3) main()
{
unsigned int i=10;
while(i-->=0)
printf("%u ",i);
} Answer:
10 9 8 7 6 5 4 3 2 1 0 65535 65534….. Explanation:
Since i is an unsigned integer it can never become negative. So the expression i-- >=0 will always be true, leading to an infinite loop.
__________________
J.Vijayanand |