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



main() { int i = -3,j=2,k=0,m; m= ++i || ++j && ++k; printf("%d%d%d",i,j,k,m);..

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 ?    24 Yes 6 No

main() { int i = -3,j=2,k=0,m; m= ++i || ++j && ++k; printf("%d%d%d",i,j,k,m);..

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

main() { int i = -3,j=2,k=0,m; m= ++i || ++j && ++k; printf("%d%d%d",i,j,k,m);..

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

main() { int i = -3,j=2,k=0,m; m= ++i || ++j && ++k; printf("%d%d%d",i,j,k,m);..

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

main() { int i = -3,j=2,k=0,m; m= ++i || ++j && ++k; printf("%d%d%d",i,j,k,m);..

Answer / tarkibitact

-2301

Is This Answer Correct ?    1 Yes 0 No

main() { int i = -3,j=2,k=0,m; m= ++i || ++j && ++k; printf("%d%d%d",i,j,k,m);..

Answer / jeke kumar gochhayat

i=-2
j=3
k=1
m=1

Is This Answer Correct ?    11 Yes 12 No

main() { int i = -3,j=2,k=0,m; m= ++i || ++j && ++k; printf("%d%d%d",i,j,k,m);..

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

Post New Answer

More C Interview Questions

which type of question asked from c / c++ in interview.

2 Answers  


What is the collection of communication lines and routers called?

0 Answers  


What does a pointer variable always consist of?

0 Answers  


which one low Priority in c? a)=,b)++,c)==,d)+

10 Answers  


What is the size of array float a(10)?

0 Answers  






What are two dimensional arrays alternatively called as?

0 Answers  


What are high level languages like C and FORTRAN also known as?

0 Answers  


What does void main () mean?

0 Answers  


What does it mean when a pointer is used in an if statement?

0 Answers  


What is the value of a[3] if integer a[] = {5,4,3,2,1}?

0 Answers  


main() { intx=2,y=6,z=6; x=y=z; printf(%d",x) }

5 Answers   Amazon, HCL, Thought Works,


what is an array

5 Answers  


Categories