C Programming - Expressions - Discussion
Discussion Forum : Expressions - Find Output of Program (Q.No. 7)
                   
                                       
                                7.
What will be the output of the program?
 
                                    #include<stdio.h>
int main()
{
    int i=-3, j=2, k=0, m;
    m = ++i && ++j || ++k;
    printf("%d, %d, %d, %d\n", i, j, k, m);
    return 0;
}
Answer: Option
                                                    Explanation:
                                                Step 1: int i=-3, j=2, k=0, m; here variable i, j, k, m are declared as an integer type and variable i, j, k are initialized to -3, 2, 0 respectively.
Step 2: m = ++i && ++j || ++k;
becomes m = (-2 && 3) || ++k;
becomes m = TRUE || ++k;. 
(++k) is not executed because (-2 && 3) alone return TRUE.
 Hence this statement becomes TRUE. So it returns '1'(one). Hence m=1.
Step 3: printf("%d, %d, %d, %d\n", i, j, k, m); In the previous step the value of i,j are increemented by '1'(one).
Hence the output is "-2, 3, 0, 1".
Discussion:
21 comments Page 3 of 3.
                
                        Vigneswari said: 
                         
                        1 decade ago
                
                i=-3;
j=2;
k=0;
++i && ++j = -2 && 3 = 1 (any one true=true)
1 || ++k = 1 (k will not be incremented because already 1 becomes true)
so ans m=1 and k=0;
                j=2;
k=0;
++i && ++j = -2 && 3 = 1 (any one true=true)
1 || ++k = 1 (k will not be incremented because already 1 becomes true)
so ans m=1 and k=0;
Post your comments here:
 
            
        Quick links
                            Quantitative Aptitude
                                    
                                    Verbal (English)
                                    
                                    Reasoning
                                    
                                Programming
                                    
                                    Interview
                                    
                                     Placement Papers