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

for(i=1;i>0;i++); printf("i=%d",i); what will be the answer????

7 Answers  


write a c program to find reminder and quotient if one number is divided by other.to code this program don't use more than 2 variables

2 Answers   TCS,


Why clrscr is used in c?

0 Answers  


main() { int i,j,A; for(A=-1;A<=1;A++) prinf("%d\t",!!A); }

6 Answers  


How will you allocate memory to a double pointer ?

2 Answers  






What is optimization in c?

0 Answers  


how to execute with out main in cprogram

15 Answers   Infosys,


What is a lvalue

0 Answers   Global Logic,


What is indirection in c?

0 Answers  


application attempts to perform an operation?

0 Answers  


the maximum length of a character constant can be a) 1 character b) 8 characters c) 256 chaacters d) 125 characters

0 Answers  


hai iam working in sap sd module for one year and working in lumax ind ltd in desp department but my problem is i have done m.b.a in hr/marketing and working sap sd there is any combination it. can you give right solution of my problem. and what can i do?

0 Answers   HCL,


Categories