C Programming - Control Instructions - Discussion
Discussion Forum : Control Instructions - Find Output of Program (Q.No. 16)
16.
What will be the output of the program?
#include<stdio.h>
int main()
{
int x = 10, y = 20;
if(!(!x) && x)
printf("x = %d\n", x);
else
printf("y = %d\n", y);
return 0;
}
Answer: Option
Explanation:
The logical not operator takes expression and evaluates to true if the expression is false and evaluates to false if the expression is true. In other words it reverses the value of the expression.
Step 1: if(!(!x) && x)
Step 2: if(!(!10) && 10)
Step 3: if(!(0) && 10)
Step 3: if(1 && 10)
Step 4: if(TRUE) here the if condition is satisfied. Hence it prints x = 10.
Discussion:
13 comments Page 2 of 2.
Aditya bhave said:
10 years ago
(!10) is 0?
It should be !(1010) that is 0101. And again !(0101) = 1010 = 10 in decimal.
So in final statement 10&&10.
i.e (1010 && 1010) = 1010 = 10 in decimal that's the answer.
It should be !(1010) that is 0101. And again !(0101) = 1010 = 10 in decimal.
So in final statement 10&&10.
i.e (1010 && 1010) = 1010 = 10 in decimal that's the answer.
(3)
Abhay said:
8 years ago
! (not) is a logical operator and it only gives output in 0 or 1. Don't confuse it with ~ (one's complement) operator which inverts the bits.
Try this on any compiler.
x=10;
y=!x;
a=!(!x);
z=~x;.
You will get y=0, a=1 and z=-11(if 2's complement signed representation is used).
Try this on any compiler.
x=10;
y=!x;
a=!(!x);
z=~x;.
You will get y=0, a=1 and z=-11(if 2's complement signed representation is used).
(1)
Pushpraj said:
8 years ago
Preference order of NOT operator is more than AND operator.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers