main()
{
int i = -3,j=2,k=0,m;
m= ++i || ++j && ++k;
printf("%d%d%d",i,j,k,m);
}
Answers were Sorted based on User's Feedback
Answer / harend
results :
i=-2
j=2
k=0
m=1
First, the '&&' part is to be considered over '||'.
AS follow: m = ++i||++j&&++k (is given)
what ever be the result of (++j&&++k),the value of m =1
,since the new value i= -2 (i.e a non zero value so taken as
true or 1)
so,
1||(++j&&++k) will always be true, that is 1 . compiler
ignores ++j ,++k and only consider ++i.
thank you !
| Is This Answer Correct ? | 25 Yes | 6 No |
Answer / ep
After the execution of the m evaluation the variables can be:
i = -2
j = 2
k = 0
m = 1
All of of this is because compilers do NOT completely
evalute expressions if they can short cut the evaluation.
Anyway, this is very bad programming.
| Is This Answer Correct ? | 18 Yes | 10 No |
Answer / mayur dharmik
printf("%d%d%d",i,j,k,m);
it has only 3 %d.
So, it will print only 3 value.
| Is This Answer Correct ? | 9 Yes | 2 No |
Answer / mayur dharmik
output
-220
i.e,
i=-2, j=2, k=0.
it will print only 1st three value.
| Is This Answer Correct ? | 5 Yes | 2 No |
Answer / nidhi yadav
here logical && has higher priority than ||. so the block
(++j&&++k)will execute first and ans of this will be (3&&1=0)
since value increment first due to preincrement operator. now
the block(++i||0)will execute as (-2||0=1) since || opertor always gives true value except(0||0=0).
thus ans will be i=-2,j=3,k=1,m=1
| Is This Answer Correct ? | 2 Yes | 7 No |
What is type qualifiers?
Explain how can a program be made to print the line number where an error occurs?
Explain what are multibyte characters?
discuss the steps needed to get a program from source code to executable in a system?
What is the difference between typedef struct and struct?
Why void main is used in c?
Calculate 1*2*3*____*n using recursive function??
WAP that prints the number from 1 to 100. but for multiplies of three print "XXX" instead of the number and for the multiplies of five print "YYY" . for number which are multiplies of both three and five print "ZZZ"
What are dangling pointers?
what is c?
I have an array of 100 elements, each of which is a random integer. I want to know which of the elements: a) are multiples of 2 b) are multiples of 2 AND 5 c) have a remainder of 3 when divided by 7
What is volatile