Bird
Raised Fist0
Cprogramming~20 mins

Ternary operator in C - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Ternary Operator Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of nested ternary operator
What is the output of this C code snippet?
C
int x = 5, y = 10;
int result = x > y ? x : y > 7 ? y : x;
printf("%d", result);
A5
B10
C7
DCompilation error
Attempts:
2 left
💡 Hint
Remember how nested ternary operators are evaluated from left to right.
❓ Predict Output
intermediate
2:00remaining
Ternary operator with side effects
What will be printed by this code?
C
int a = 3, b = 4;
int c = (a > b) ? (a += 2) : (b += 3);
printf("%d %d %d", a, b, c);
A3 4 4
B5 4 5
CCompilation error
D3 7 7
Attempts:
2 left
💡 Hint
Check which condition is true and how the variables change.
❓ Predict Output
advanced
2:00remaining
Ternary operator with pointer dereference
What is the output of this code?
C
int x = 10, y = 20;
int *p = (x > y) ? &x : &y;
printf("%d", *p);
A10
B0
C20
DSegmentation fault
Attempts:
2 left
💡 Hint
Check which pointer is assigned based on the condition.
❓ Predict Output
advanced
2:00remaining
Ternary operator with different types
What will this code print?
C
int a = 5;
float b = 3.5;
float c = (a > 3) ? a : b;
printf("%.1f", c);
A5.0
BCompilation error
C5
D3.5
Attempts:
2 left
💡 Hint
The ternary operator promotes types to a common type.
🧠 Conceptual
expert
2:00remaining
Ternary operator associativity
Consider the expression: int x = 1 ? 0 ? 2 : 3 : 4; What is the value of x after this executes?
A3
B2
C4
DCompilation error
Attempts:
2 left
💡 Hint
Ternary operators associate right to left in C.

Practice

(1/5)
1. What does the ternary operator condition ? value_if_true : value_if_false do in C?
easy
A. It chooses one of two values based on the condition's truth.
B. It creates a loop that runs twice.
C. It declares a new variable.
D. It comments out code.

Solution

  1. Step 1: Understand the ternary operator structure

    The ternary operator uses a condition followed by a question mark, then two values separated by a colon.
  2. Step 2: Determine its purpose

    It returns the first value if the condition is true, otherwise the second value.
  3. Final Answer:

    It chooses one of two values based on the condition's truth. -> Option A
  4. Quick Check:

    condition ? true_value : false_value = chooses value [OK]
Hint: Remember: condition ? true : false picks one value [OK]
Common Mistakes:
  • Thinking it creates loops
  • Confusing it with variable declaration
  • Assuming it comments code
2. Which of the following is the correct syntax for the ternary operator in C?
easy
A. condition : value_if_true ? value_if_false;
B. condition ? value_if_true : value_if_false;
C. condition ? value_if_true, value_if_false;
D. condition ? (value_if_true : value_if_false);

Solution

  1. Step 1: Recall ternary operator syntax

    The correct syntax is: condition ? value_if_true : value_if_false;
  2. Step 2: Check each option

    condition ? value_if_true : value_if_false; matches the correct syntax exactly; others have misplaced symbols or punctuation.
  3. Final Answer:

    condition ? value_if_true : value_if_false; -> Option B
  4. Quick Check:

    Syntax is condition ? true : false; [OK]
Hint: Remember: question mark before colon in ternary [OK]
Common Mistakes:
  • Swapping question mark and colon
  • Using comma instead of colon
  • Adding extra parentheses incorrectly
3. What is the output of this C code?
int x = 5;
int y = (x > 3) ? 10 : 20;
printf("%d", y);
medium
A. 10
B. 20
C. 5
D. Syntax error

Solution

  1. Step 1: Evaluate the condition (x > 3)

    Since x is 5, 5 > 3 is true.
  2. Step 2: Apply ternary operator

    Because condition is true, y is assigned 10.
  3. Final Answer:

    10 -> Option A
  4. Quick Check:

    (5 > 3) ? 10 : 20 = 10 [OK]
Hint: Check if condition is true, then pick first value [OK]
Common Mistakes:
  • Choosing the false value by mistake
  • Confusing variable values
  • Thinking it causes syntax error
4. Identify the error in this C code using the ternary operator:
int a = 10;
int b = 20;
int max = a > b ? a, b;
medium
A. Missing colon ':' between values
B. Incorrect variable declaration
C. No error, code is correct
D. Using comma instead of colon in ternary

Solution

  1. Step 1: Check ternary operator syntax

    The ternary operator requires a colon ':' between the two possible values.
  2. Step 2: Identify the mistake

    The code uses a comma ',' instead of a colon ':', which is incorrect syntax.
  3. Final Answer:

    Using comma instead of colon in ternary -> Option D
  4. Quick Check:

    Ternary needs ':' not ',' [OK]
Hint: Ternary uses ':' not ',' between values [OK]
Common Mistakes:
  • Using comma instead of colon
  • Forgetting colon entirely
  • Assuming code is correct
5. Given this code snippet, what will be the value of result?
int a = 0;
int b = 5;
int result = (a != 0) ? (b / a) : (b * 2);
printf("%d", result);
hard
A. 0
B. Division by zero error
C. 10
D. 5

Solution

  1. Step 1: Evaluate the condition (a != 0)

    a is 0, so (0 != 0) is false.
  2. Step 2: Apply ternary operator

    Since condition is false, result is assigned (b * 2) = 5 * 2 = 10.
  3. Final Answer:

    10 -> Option C
  4. Quick Check:

    Condition false, so result = b*2 = 10 [OK]
Hint: Check condition first to avoid division by zero [OK]
Common Mistakes:
  • Assuming division happens causing error
  • Ignoring false condition path
  • Confusing variable values
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