Difficulty: Easy
Correct Answer: x = 10
Explanation:
Introduction / Context:
This item checks how logical negation interacts with nonzero integers in C. Any nonzero value is considered true. Applying !
flips truthiness, not the numeric magnitude (except reducing truthy to 0 and false to 1).
Given Data / Assumptions:
x = 10
(nonzero → true), y = 20
.!(!x) && x
.&&
apply.
Concept / Approach:!x
converts any nonzero to 0 and zero to 1. Thus !x
becomes 0, and !(!x)
becomes 1. The second operand of &&
is x
(which is nonzero). Therefore, 1 && 10
is true, so the if
branch executes, printing the current numeric value of x
(10).
Step-by-Step Solution:
!x
→ 0 because x is nonzero.!(!x)
→ 1.1 && x
→ true because x
is nonzero.Print: x = 10
.
Verification / Alternative check:
Replace x
by 0 and re-run to see the else
branch. Replace x
by −5 and note that it is still treated as true.
Why Other Options Are Wrong:
Common Pitfalls:
Confusing logical truthiness with numeric value; assuming !10
creates −10 (it does not).
Final Answer:
x = 10.
float a = 0.7;
, what will this program print and why?
#includefor
loop in C. What does this program print?
#includeswitch
statement in C? Note the statement before any case
label.
#include
Discussion & Comments