C Programming - Expressions - Discussion
Discussion Forum : Expressions - Find Output of Program (Q.No. 11)
11.
What will be the output of the program?
#include<stdio.h>
int main()
{
int x=55;
printf("%d, %d, %d\n", x<=55, x=40, x>=10);
return 0;
}
Answer: Option
Explanation:
Step 1: int x=55; here variable x is declared as an integer type and initialized to '55'.
Step 2: printf("%d, %d, %d\n", x<=55, x=40, x>=10);
In printf the execution of expressions is from Right to Left.
here x>=10 returns TRUE hence it prints '1'.
x=40 here x is assigned to 40 Hence it prints '40'.
x<=55 returns TRUE. hence it prints '1'.
Step 3: Hence the output is "1, 40, 1".
Discussion:
16 comments Page 2 of 2.
Lov singh said:
10 years ago
Ok I got it.
And I think think this ex. Will help others who are in doubt:
#include<stdio.h>
int main()
{
int x=55;
printf("%d, %d, %d\n", x>=55, x=40, x>160);
return 0;
}
And its output is:
0, 40, 0.
And I think think this ex. Will help others who are in doubt:
#include<stdio.h>
int main()
{
int x=55;
printf("%d, %d, %d\n", x>=55, x=40, x>160);
return 0;
}
And its output is:
0, 40, 0.
Lov singh said:
10 years ago
#include<stdio.h>
int main()
{
int x=55;
printf("%d, %d, %d\n", x<=55, x=40, x>160);
return 0;
}
It's output is :-
1, 40, 0.
So how can you say that in printf the execution of expressions is from Right to Left.
int main()
{
int x=55;
printf("%d, %d, %d\n", x<=55, x=40, x>160);
return 0;
}
It's output is :-
1, 40, 0.
So how can you say that in printf the execution of expressions is from Right to Left.
Daisy J said:
10 years ago
@ Ankitsitm.
Hi dear,
Output will be:
(i) 3.
(ii) 1.
Hi dear,
Output will be:
(i) 3.
(ii) 1.
Ankitsitm.mishra00@gmail.com said:
1 decade ago
main ()
{
int I;
I = (1,2,3);
printf( " % d ", I );
I=1,2,3;
printf(" % d ", I );
}
Output of this question?
{
int I;
I = (1,2,3);
printf( " % d ", I );
I=1,2,3;
printf(" % d ", I );
}
Output of this question?
Arvind said:
1 decade ago
But, there how if the condition is true means that will display 1 as output, can any one clear my confusion.
Sri Krishna said:
1 decade ago
Yes, in printf the execution of expressions is from Right to Left. so first x>=10 is evaluated, which happens to be true so output of 3rd expression will be 1. now in the middle one, x is assigned the value of 40, and the final leftmost expression asks whether x<=55, which is true as the new value of x is 40.
This should be the way of evaluation of expressions in the answer.
Either way the answer turns out be 1,40,1.
This should be the way of evaluation of expressions in the answer.
Either way the answer turns out be 1,40,1.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers