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

What are the Advantages of using macro

0 Answers  


what are two categories of clint-server application development ?

1 Answers  


how to determine the complexity of an algorithm as log(n)

1 Answers   Google,


Describe the modifier in c?

0 Answers  


How to use c/c++ code in JAVA

10 Answers   CDAC, IBM, Satyam, Scope International,






what is the use of fflush() function?

2 Answers  


#include <stdio.h> int main() { if ("X" <"x") printf("X smaller than x "); } my question is whats the mistake in this program? find it and please tell me..

3 Answers  


FILE *fp1,*fp2; fp1=fopen("one","w") fp2=fopen("one","w") fputc('A',fp1) fputc('B',fp2) fclose(fp1) fclose(fp2)} a.error b. c. d.

0 Answers   Wilco,


What is sparse file?

1 Answers  


Program to find largest of three numbers without using comparsion operator?

3 Answers  


Are c and c++ the same?

0 Answers  


What is null pointer in c?

0 Answers  


Categories