Bird
Raised Fist0
Cprogramming~5 mins

Logical operators - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Logical operators
O(1)
Understanding Time Complexity

Logical operators combine conditions to decide true or false results.

We want to see how using these operators affects how long the program takes to run.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


#include <stdio.h>

int check(int a, int b, int c) {
    if ((a && b) || c) {
        return 1;
    }
    return 0;
}
    

This code checks if certain conditions with logical AND and OR are true.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Single evaluation of logical conditions.
  • How many times: Once per function call, no loops or repeated checks inside.
How Execution Grows With Input

Since the code only checks a few values once, the time does not grow with input size.

Input Size (n)Approx. Operations
103 checks
1003 checks
10003 checks

Pattern observation: The number of operations stays the same no matter how big the input is.

Final Time Complexity

Time Complexity: O(1)

This means the time to run does not change as input size changes; it stays constant.

Common Mistake

[X] Wrong: "Logical operators make the program slower as input grows because they combine many conditions."

[OK] Correct: Logical operators here only check a fixed number of values once, so the time does not increase with input size.

Interview Connect

Understanding how simple condition checks work helps you explain code efficiency clearly and confidently.

Self-Check

"What if the conditions were inside a loop running n times? How would the time complexity change?"

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