Bird
Raised Fist0
C Sharp (C#)programming~20 mins

Logical patterns (and, or, not) in C Sharp (C#) - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Logical Patterns Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of combined logical operators
What is the output of this C# code snippet?
C Sharp (C#)
bool a = true;
bool b = false;
bool c = true;

if (a && b || c)
{
    Console.WriteLine("Yes");
}
else
{
    Console.WriteLine("No");
}
ANo
BRuntime exception
CCompilation error
DYes
Attempts:
2 left
💡 Hint
Remember that && has higher precedence than || in C#.
❓ Predict Output
intermediate
2:00remaining
Result of negation with logical operators
What will be printed by this C# code?
C Sharp (C#)
bool x = false;
bool y = true;

if (!(x || y) && y)
{
    Console.WriteLine("True branch");
}
else
{
    Console.WriteLine("False branch");
}
ACompilation error
BNo output
CFalse branch
DTrue branch
Attempts:
2 left
💡 Hint
Evaluate the expression inside the negation first.
🔧 Debug
advanced
3:00remaining
Identify the logical error in condition
This code is intended to print "Access granted" only if the user is an admin and is active. What is wrong with the condition?
C Sharp (C#)
bool isAdmin = true;
bool isActive = false;

if (isAdmin || isActive)
{
    Console.WriteLine("Access granted");
}
else
{
    Console.WriteLine("Access denied");
}
AThe condition uses || instead of &&, so it grants access if either is true.
BThe condition should use !isAdmin && !isActive.
CThe else block is missing a return statement.
DThe variables are not initialized properly.
Attempts:
2 left
💡 Hint
Think about when access should be granted.
📝 Syntax
advanced
2:00remaining
Identify the syntax error in logical expression
Which option contains a syntax error in the logical expression?
Aif (a && (b || !c)) { }
Bif (a && b || !c { }
Cif (a && b || !c) { }
Dif (!(a || b) && c) { }
Attempts:
2 left
💡 Hint
Check for missing parentheses.
🚀 Application
expert
3:00remaining
Determine the number of true conditions
Given the following code, how many times will "Condition met" be printed?
C Sharp (C#)
bool[] flags = { true, false, true, false, true };
int count = 0;

foreach (bool flag in flags)
{
    if (flag && !(!flag || false))
    {
        Console.WriteLine("Condition met");
        count++;
    }
}

Console.WriteLine(count);
A3
B2
C5
D0
Attempts:
2 left
💡 Hint
Simplify the condition inside the if statement.

Practice

(1/5)
1.

Which logical operator in C# means both conditions must be true?

and, or, or not?
easy
A. and
B. or
C. not
D. xor

Solution

  1. Step 1: Understand the meaning of logical operators

    The and operator requires both conditions to be true for the whole expression to be true.
  2. Step 2: Compare with other operators

    or means one or both conditions are true, not negates a condition, and xor means exactly one condition is true.
  3. Final Answer:

    and -> Option A
  4. Quick Check:

    and means both true [OK]
Hint: Remember: and = both true, or = any true, not = reverse [OK]
Common Mistakes:
  • Confusing 'and' with 'or'
  • Thinking 'not' means both true
  • Mixing 'xor' with 'and'
2.

Which of these is the correct C# syntax for the logical NOT operator?

?
easy
A. not x
B. x!
C. !x
D. ~x

Solution

  1. Step 1: Recall C# logical NOT syntax

    In C#, the logical NOT operator is ! placed before the variable or expression.
  2. Step 2: Check other options

    not x is not valid C# syntax, ~x is bitwise NOT, and x! is invalid.
  3. Final Answer:

    !x -> Option C
  4. Quick Check:

    Logical NOT uses ! before expression [OK]
Hint: Logical NOT is always ! before the variable [OK]
Common Mistakes:
  • Using 'not' keyword instead of !
  • Confusing bitwise ~ with logical !
  • Placing ! after the variable
3.

What is the output of this C# code?

bool a = true;
bool b = false;
if (a && !b) {
    Console.WriteLine("Yes");
} else {
    Console.WriteLine("No");
}
medium
A. No
B. Yes
C. True
D. False

Solution

  1. Step 1: Evaluate variables and conditions

    Variable a is true, b is false, so !b is true.
  2. Step 2: Evaluate the if condition

    a && !b becomes true && true, which is true, so the if block runs.
  3. Final Answer:

    Yes -> Option B
  4. Quick Check:

    true and not false = true [OK]
Hint: Remember ! reverses boolean, so !false = true [OK]
Common Mistakes:
  • Ignoring the ! operator
  • Thinking false && true is true
  • Confusing output strings with boolean values
4.

Find the error in this C# code snippet:

bool x = true;
if (x && !x) {
    Console.WriteLine("True");
} else {
    Console.WriteLine("False");
}
medium
A. Using single & instead of &&
B. Missing semicolon after if statement
C. Incorrect use of Console.WriteLine
D. Contradictory condition: x and not x can never be true

Solution

  1. Step 1: Analyze the condition logic

    The condition x && !x means x is true AND x is false at the same time, which is impossible.
  2. Step 2: Check syntax correctness

    The syntax is correct: && is used properly, semicolons and Console.WriteLine are fine.
  3. Final Answer:

    Contradictory condition: x and not x can never be true -> Option D
  4. Quick Check:

    True and not true = false always [OK]
Hint: Check if condition can ever be true logically [OK]
Common Mistakes:
  • Thinking condition can be true
  • Confusing & with &&
  • Looking for syntax errors when logic is the issue
5.

You want to write a C# switch expression that returns "Valid" only if age is between 18 and 30 inclusive, and hasID is true. Which pattern correctly uses logical operators?

return (age, hasID) switch {
    ??? => "Valid",
    _ => "Invalid"
};
hard
A. var (a, id) when a >= 18 && a <= 30 && id
B. (>= 18 and <= 30 and true, hasID)
C. var a when a >= 18 && a <= 30 && hasID == true
D. (>= 18 and <= 30, true)

Solution

  1. Step 1: Understand switch pattern matching with tuples

    The switch matches a tuple (age, hasID). To check conditions on both, use a when clause with logical operators.
  2. Step 2: Analyze each option

    var (a, id) when a >= 18 && a <= 30 && id correctly uses tuple deconstruction var (a, id) and checks a >= 18 && a <= 30 && id (where id is boolean). Others are invalid syntax or misuse logical operators.
  3. Final Answer:

    var (a, id) when a >= 18 && a <= 30 && id -> Option A
  4. Quick Check:

    Tuple pattern with when and && is correct [OK]
Hint: Use tuple deconstruction with when and && for multiple conditions [OK]
Common Mistakes:
  • Trying to use and inside tuple without when
  • Misplacing logical operators outside when clause
  • Not deconstructing tuple properly
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