C Programming - Control Instructions - Discussion
Discussion Forum : Control Instructions - Find Output of Program (Q.No. 3)
3.
What will be the output of the program?
#include<stdio.h>
int main()
{
int a = 500, b = 100, c;
if(!a >= 400)
b = 300;
c = 200;
printf("b = %d c = %d\n", b, c);
return 0;
}
Answer: Option
Explanation:
Initially variables a = 500, b = 100 and c is not assigned.
Step 1: if(!a >= 400)
Step 2: if(!500 >= 400)
Step 3: if(0 >= 400)
Step 4: if(FALSE) Hence the if condition is failed.
Step 5: So, variable c is assigned to a value '200'.
Step 6: printf("b = %d c = %d\n", b, c); It prints value of b and c.
Hence the output is "b = 100 c = 200"
Discussion:
33 comments Page 2 of 4.
Mahalakshmi said:
10 years ago
How !500=0? Please explain.
Sk shadab said:
9 years ago
Here !a means not a, means a is false. And in c false means 0. So !a==0.
Surabhi agarwal said:
9 years ago
Why are we assigning c = 200 when if the condition fails?
Mayank bhardwaj said:
1 decade ago
Yes because when we don't uses braces then if statement take only first statement.
Rohit said:
7 years ago
Here, a is greater than b. But ! Operator is reverse so if condition is false. So after if the value of b is not take in consideration. After b=300; there is SEMICOLON so it terminates if loop. So we get only a and c values. Hope it helps.
Nanikanchari said:
5 years ago
Here condition is ;
int a = 500, b = 100, c;
if(!a >= 400)
so let me take only a>=400 okay. and a value is 500 we know;
So it will be like 500>=400, so it is true. hence value '1' it will consider in the if() condition.
but we have '!' operator in front of it, so the value will be '0'.
int a = 500, b = 100, c;
if(!a >= 400)
so let me take only a>=400 okay. and a value is 500 we know;
So it will be like 500>=400, so it is true. hence value '1' it will consider in the if() condition.
but we have '!' operator in front of it, so the value will be '0'.
Sonal Sharma said:
3 years ago
if(!r)
p=!r?100:200;
else
p=r?300:400;
What will be the value of p when r is true? and when r is false?
Can anyone explain it to me?
p=!r?100:200;
else
p=r?300:400;
What will be the value of p when r is true? and when r is false?
Can anyone explain it to me?
Vijaya zambre said:
2 decades ago
b = 300;
Why this step is mentioned there?
Why this step is mentioned there?
Meet123 said:
1 decade ago
Actually if statement execute the statement which immediately follows it conditional statement.
So in this case b=300. Which will be either executed or not executed whether condition is true or false. So condition is false and immediate condition is not executed.
So in this case b=300. Which will be either executed or not executed whether condition is true or false. So condition is false and immediate condition is not executed.
Soumya said:
1 decade ago
I am having a doubt with how C is getting the value of 200 even if the condition is false and we don't know the position of C whether it is outside the loop or not.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers