C Programming - Control Instructions - Discussion
Discussion Forum : Control Instructions - Find Output of Program (Q.No. 8)
8.
What will be the output of the program?
#include<stdio.h>
int main()
{
unsigned int i = 65536; /* Assume 2 byte integer*/
while(i != 0)
printf("%d",++i);
printf("\n");
return 0;
}
Answer: Option
Explanation:
Here unsigned int size is 2 bytes. It varies from 0,1,2,3, ... to 65535.
Step 1:unsigned int i = 65536; here variable i becomes '0'(zero). because unsigned int varies from 0 to 65535.
Step 2: while(i != 0) this statement becomes while(0 != 0). Hence the while(FALSE) condition is not satisfied. So, the inside the statements of while loop will not get executed.
Hence there is no output.
Note: Don't forget that the size of int should be 2 bytes. If you run the above program in GCC it may run infinite loop, because in Linux platform the size of the integer is 4 bytes.
Discussion:
16 comments Page 2 of 2.
Kavi said:
10 years ago
Output is zero, on 2nd iteration it gets false.
Vanaja said:
9 years ago
Whether it is 2 byte or 4 in while loop if anything is 0 then it fails right.
So can anyone please tell me the variance of bit system and also I'm thinking the answer would be 0.
Because in the program it checks (i!=0) so (65536!=0) and then it incremented to 0. So now the condition failed and why can't the answer is 0?
please reply me!
So can anyone please tell me the variance of bit system and also I'm thinking the answer would be 0.
Because in the program it checks (i!=0) so (65536!=0) and then it incremented to 0. So now the condition failed and why can't the answer is 0?
please reply me!
Raj shamra said:
9 years ago
Yeah. Actually, I run this piece of code in terminal and the output what I get is an infinite loop.
Heena said:
8 years ago
I agree with @Vanaja.
Please explain.
Please explain.
Bhavya said:
7 years ago
I think since the range of unsigned int is 0-65535.
65536 may be taken as 0.
i.e is why there is no output?
If 'm wrong, please correct me.
65536 may be taken as 0.
i.e is why there is no output?
If 'm wrong, please correct me.
Ankit said:
5 years ago
I think that the answer is correct due to the 2-byte size of the int, that is why the code shows no output.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers