The logical AND operator (&&) returns true (1) if both operands are true; otherwise, it returns false (0). It is used to check if two conditions are both true.
Click to reveal answer
beginner
Explain the logical OR operator (||) in C.
The logical OR operator (||) returns true (1) if at least one of the operands is true. It returns false (0) only if both operands are false.
Click to reveal answer
beginner
What is the purpose of the logical NOT operator (!) in C?
The logical NOT operator (!) reverses the truth value of its operand. If the operand is true, it returns false; if false, it returns true.
Click to reveal answer
beginner
What is the result of the expression: (5 > 3) && (2 < 4)?
The expression evaluates to true (1) because both conditions are true: 5 is greater than 3, and 2 is less than 4.
Click to reveal answer
intermediate
How does short-circuit evaluation work with logical operators in C?
In C, logical operators use short-circuit evaluation: for &&, if the first operand is false, the second is not evaluated; for ||, if the first operand is true, the second is not evaluated. This saves time and avoids unnecessary checks.
Click to reveal answer
What is the result of the expression: (0 || 1) in C?
A1
B0
CUndefined
D2
✗ Incorrect
The logical OR (||) returns true (1) if at least one operand is true. Here, 1 is true, so the result is 1.
Which operator reverses the truth value of a condition?
A&&
B!
C||
D&
✗ Incorrect
The logical NOT operator (!) reverses the truth value: true becomes false, false becomes true.
What does the expression (5 > 10) && (3 < 4) evaluate to?
A3
Btrue
Cfalse
D10
✗ Incorrect
Since 5 > 10 is false, the whole AND expression is false regardless of the second condition.
In C, if the first operand of || is true, what happens to the second operand?
AIt is evaluated
BIt causes an error
CIt is assigned true
DIt is not evaluated
✗ Incorrect
Due to short-circuit evaluation, if the first operand of || is true, the second operand is not evaluated.
Which of these is a logical operator in C?
A&&
B&
C|
D^
✗ Incorrect
&& is the logical AND operator. & is bitwise AND, | is bitwise OR, ^ is bitwise XOR.
Describe how the logical AND (&&) and OR (||) operators work in C, including their behavior with true and false values.
Think about when the whole expression becomes true or false.
You got /4 concepts.
Explain what short-circuit evaluation means for logical operators in C and why it is useful.
Consider what happens when the first condition already decides the result.
You got /4 concepts.
Practice
(1/5)
1. Which logical operator in C means AND and returns true only if both conditions are true?
easy
A. !
B. ||
C. &&
D. &
Solution
Step 1: Understand logical AND operator
The logical AND operator (&&) returns true only if both conditions it connects are true.
Step 2: Compare with other operators
The || operator means OR, ! means NOT, and & is bitwise AND, not logical AND.
Final Answer:
&& -> Option C
Quick Check:
AND = && [OK]
Hint: AND operator is double ampersand && [OK]
Common Mistakes:
Confusing & (bitwise) with && (logical)
Mixing OR and AND operators
Using ! for AND
2. Which of the following is the correct syntax to negate a condition in C?
easy
A. condition !
B. !condition
C. not condition
D. condition != true
Solution
Step 1: Identify negation syntax in C
The NOT operator in C is a single exclamation mark placed before the condition: !condition.
Step 2: Check other options
condition ! places ! after condition which is invalid, C uses 'not' which is not C syntax, D is a comparison, not negation.
Final Answer:
!condition -> Option B
Quick Check:
NOT = ! before condition [OK]
Hint: Negate condition with ! before it [OK]
Common Mistakes:
Putting ! after condition
Using 'not' keyword
Confusing != with negation
3. What is the output of this C code?
int a = 5, b = 10; if (a > 3 && b < 15) { printf("True\n"); } else { printf("False\n"); }
medium
A. No output
B. False
C. Compilation error
D. True
Solution
Step 1: Evaluate first condition (a > 3)
a is 5, which is greater than 3, so this condition is true.
Step 2: Evaluate second condition (b < 15)
b is 10, which is less than 15, so this condition is true.
Step 3: Apply logical AND (&&)
Both conditions are true, so the combined condition is true, entering the if block.
Final Answer:
True -> Option D
Quick Check:
True && True = True [OK]
Hint: Both conditions true means && condition is true [OK]
Common Mistakes:
Assuming OR instead of AND
Misreading variable values
Ignoring logical operator precedence
4. Find the error in this C code snippet:
int x = 0; if (x = 5 || x == 0) { printf("Yes\n"); }
medium
A. Using assignment '=' instead of comparison '==' in if condition
B. Missing semicolon after printf statement
C. Incorrect use of logical AND instead of OR
D. Variable x is not declared
Solution
Step 1: Check the if condition syntax
The condition uses 'x = 5 || x == 0'. The '=' is assignment, not comparison.
Step 2: Understand effect of assignment in condition
Assignment returns the assigned value (5), which is true, so condition always true, likely a bug.
Final Answer:
Using assignment '=' instead of comparison '==' in if condition -> Option A
Quick Check:
Use '==' for comparison, not '=' [OK]
Hint: Use '==' to compare, '=' assigns value [OK]
Common Mistakes:
Confusing '=' and '=='
Ignoring logical operator precedence
Assuming code won't compile
5. Given the code below, what will be printed?
int a = 0, b = 1, c = 2; if (!(a || b) && c > 1) { printf("Inside if\n"); } else { printf("Inside else\n"); }
hard
A. Inside else
B. Inside if
C. Compilation error
D. No output
Solution
Step 1: Evaluate inner OR condition (a || b)
a is 0 (false), b is 1 (true), so a || b is true.
Step 2: Apply NOT operator !(a || b)
NOT true is false, so this part is false.
Step 3: Evaluate c > 1
c is 2, which is greater than 1, so true.
Step 4: Combine with AND: false && true
False AND anything is false, so condition is false, else block runs.
Final Answer:
Inside else -> Option A
Quick Check:
!(true) && true = false [OK]
Hint: NOT true is false; AND with false is false [OK]
Common Mistakes:
Ignoring NOT operator effect
Misreading OR condition
Assuming if block runs when condition false
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.