Bird
Raised Fist0
Cprogramming~5 mins

Logical operators - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the logical AND operator (&&) do in C?
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
Which operator reverses the truth value of a condition?
A&&
B!
C||
D&
What does the expression (5 > 10) && (3 < 4) evaluate to?
A3
Btrue
Cfalse
D10
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
Which of these is a logical operator in C?
A&&
B&
C|
D^
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

      1. Step 1: Understand logical AND operator

        The logical AND operator (&&) returns true only if both conditions it connects are true.
      2. Step 2: Compare with other operators

        The || operator means OR, ! means NOT, and & is bitwise AND, not logical AND.
      3. Final Answer:

        && -> Option C
      4. 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

      1. Step 1: Identify negation syntax in C

        The NOT operator in C is a single exclamation mark placed before the condition: !condition.
      2. 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.
      3. Final Answer:

        !condition -> Option B
      4. 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

      1. Step 1: Evaluate first condition (a > 3)

        a is 5, which is greater than 3, so this condition is true.
      2. Step 2: Evaluate second condition (b < 15)

        b is 10, which is less than 15, so this condition is true.
      3. Step 3: Apply logical AND (&&)

        Both conditions are true, so the combined condition is true, entering the if block.
      4. Final Answer:

        True -> Option D
      5. 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

      1. Step 1: Check the if condition syntax

        The condition uses 'x = 5 || x == 0'. The '=' is assignment, not comparison.
      2. Step 2: Understand effect of assignment in condition

        Assignment returns the assigned value (5), which is true, so condition always true, likely a bug.
      3. Final Answer:

        Using assignment '=' instead of comparison '==' in if condition -> Option A
      4. 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

      1. Step 1: Evaluate inner OR condition (a || b)

        a is 0 (false), b is 1 (true), so a || b is true.
      2. Step 2: Apply NOT operator !(a || b)

        NOT true is false, so this part is false.
      3. Step 3: Evaluate c > 1

        c is 2, which is greater than 1, so true.
      4. Step 4: Combine with AND: false && true

        False AND anything is false, so condition is false, else block runs.
      5. Final Answer:

        Inside else -> Option A
      6. 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 unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard