C Programming - Expressions - Discussion
Discussion Forum : Expressions - Find Output of Program (Q.No. 6)
                   
                                       
                                6.
What will be the output of the program?
 
                                    #include<stdio.h>
int main()
{
    int i=4, j=-1, k=0, w, x, y, z;
    w = i || j || k;
    x = i && j && k;
    y = i || j &&k;
    z = i && j || k;
    printf("%d, %d, %d, %d\n", w, x, y, z);
    return 0;
}
Answer: Option
                                                    Explanation:
                                                Step 1: int i=4, j=-1, k=0, w, x, y, z; here variable i, j, k, w, x, y, z are declared as an integer type and the variable i, j, k are initialized to 4, -1, 0 respectively.
Step 2: w = i || j || k; becomes w = 4 || -1 || 0;. Hence it returns TRUE. So, w=1
Step 3: x = i && j && k; becomes x = 4 && -1 && 0; Hence it returns FALSE. So, x=0
Step 4: y = i || j &&k; becomes y = 4 || -1 && 0; Hence it returns TRUE. So, y=1
Step 5: z = i && j || k; becomes z = 4 && -1 || 0; Hence it returns TRUE. So, z=1.
Step 6: printf("%d, %d, %d, %d\n", w, x, y, z); Hence the output is "1, 0, 1, 1".
Discussion:
51 comments Page 1 of 6.
                
                        Sahithi said: 
                         
                        2 decades ago
                
                Please give clear explanation.
                
                        Abrar said: 
                         
                        1 decade ago
                
                In step 4 how the value of y got 1?
In step 5 how the value of z got 1?
                In step 5 how the value of z got 1?
                        Nihsa said: 
                         
                        1 decade ago
                
                Please explain detail expansion.
                
                        Narendra said: 
                         
                        1 decade ago
                
                Please give complete answer.
                
                        Rohit said: 
                         
                        1 decade ago
                
                Is there any priority in solving?
                
                        Rohit Maru said: 
                         
                        1 decade ago
                
                Priority of logical and (&&) is more than logical or (||).
                
                        Bharadwaj said: 
                         
                        1 decade ago
                
                In step 4, how the y value become true. i.e 4 || -1 && 0. How it results true.
4 || -1 is true and true && 0 means false. But it is returning true. Why?
Plz clarify my doubt
                4 || -1 is true and true && 0 means false. But it is returning true. Why?
Plz clarify my doubt
                        Wikiok said: 
                         
                        1 decade ago
                
                As Rohit Maru said: && has higher priority than ||. So left-to-right associativity can not be used.
Step 4:
1st substep: "-1 && 0" --> False
2nd substep: "4 || False" --> True
So the answer is True, so it is "1".
                Step 4:
1st substep: "-1 && 0" --> False
2nd substep: "4 || False" --> True
So the answer is True, so it is "1".
                        Pallavi said: 
                         
                        1 decade ago
                
                Can anyone explain step3 and step5 please ?
                
                        Richa said: 
                         
                        1 decade ago
                
                Please explain the precedence and associativity of these operator.
                Post your comments here:
 
            
        Quick links
                            Quantitative Aptitude
                                    
                                    Verbal (English)
                                    
                                    Reasoning
                                    
                                Programming
                                    
                                    Interview
                                    
                                     Placement Papers