C Programming - Control Instructions - Discussion
Discussion Forum : Control Instructions - Find Output of Program (Q.No. 12)
12.
What will be the output of the program?
#include<stdio.h>
int main()
{
int a = 300, b, c;
if(a >= 400)
b = 300;
c = 200;
printf("%d, %d, %d\n", a, b, c);
return 0;
}
Answer: Option
Explanation:
Step 1: int a = 300, b, c; here variable a is initialized to '300', variable b and c are declared, but not initialized.
Step 2: if(a >= 400) means if(300 >= 400). Hence this condition will be failed.
Step 3: c = 200; here variable c is initialized to '200'.
Step 4: printf("%d, %d, %d\n", a, b, c); It prints "300, garbage value, 200". because variable b is not initialized.
Discussion:
16 comments Page 1 of 2.
Ramya said:
1 decade ago
Here in the question compiler checks whether 300> = 400 it is false therefore b = 300 is not executed following simple if syntax and it comes out of if and next statement i.e. c = 200 is executed and since storage class of a, b, c is automatic default values of those variables are garbage values since b is not initialized b = garbage and a = 300, c = 200.
Harini said:
1 decade ago
if(a>=400)
b=300;
This condition is false because 300<400
Now C=200;
This statement is out of the if block so it would be executed whether "if" is true or false. Hence c=200.
Now as b is not initialized to any value it has garbage value.
So the values of a,b,c are 300, garbage, 200.
b=300;
This condition is false because 300<400
Now C=200;
This statement is out of the if block so it would be executed whether "if" is true or false. Hence c=200.
Now as b is not initialized to any value it has garbage value.
So the values of a,b,c are 300, garbage, 200.
Abhishek said:
9 years ago
@Deepika.
The default scope of the "if" statement is only the next statement so it won't enter into b statement and go to c statement. If you want to execute more than one statement you need to write it in the pair of braces.
The default scope of the "if" statement is only the next statement so it won't enter into b statement and go to c statement. If you want to execute more than one statement you need to write it in the pair of braces.
Deepika said:
9 years ago
In this, if(a>=400) then it checks the value and the condition become fails . Then it enters into b statement but why it is going to c statement and the b value becomes garbage why?
(1)
Denny said:
1 decade ago
The statement B must be in the braces if not we can think that both B and C are under the 'if statement'. As the condition on the if statement is false both B and C can't be executed.
Harshitha said:
7 years ago
Here, after if statement, it means the next statements is also false, but why the below statement is regarded as false (b statement).
Then c=200 will be executed.
Then c=200 will be executed.
(1)
Mani said:
1 decade ago
if(a >= 400)
b = 300; hear 300>=400
This is false. So the compiler don't read the full statement .
Then goes 2 next statement ie c=200.
b = 300; hear 300>=400
This is false. So the compiler don't read the full statement .
Then goes 2 next statement ie c=200.
Soori said:
1 decade ago
Hello.
I don't understand one thing if the loop fails it should not initialize both b and c why it initializing c but not b cam any one explain?
I don't understand one thing if the loop fails it should not initialize both b and c why it initializing c but not b cam any one explain?
Abhishek said:
1 decade ago
What does b=200 means, and why its not getting executed, why everybody is comparing 200>=300, when its written a>=300.
Moni said:
1 decade ago
@Soori.
If we don't mention braces "{ }"after if then only one line gets executed.
If we don't mention braces "{ }"after if then only one line gets executed.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers