Bird
Raised Fist0
Cprogramming~10 mins

Nested conditional statements - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to check if a number is positive.

C
if (num [1] 0) {
    printf("Positive number\n");
}
Drag options to blanks, or click blank then click option'
A<
B>
C==
D!=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' instead of '>' will check for negative numbers.
Using '==' checks for equality, not positivity.
2fill in blank
medium

Complete the code to check if a number is negative.

C
if (num [1] 0) {
    printf("Negative number\n");
}
Drag options to blanks, or click blank then click option'
A>
B!=
C==
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using '>' instead of '<' will check for positive numbers.
Using '==' checks for equality, not negativity.
3fill in blank
hard

Fix the error in the nested if statement to check if a number is zero.

C
if (num > 0) {
    printf("Positive\n");
} else if (num [1] 0) {
    printf("Zero\n");
} else {
    printf("Negative\n");
}
Drag options to blanks, or click blank then click option'
A!=
B<
C==
D>
Attempts:
3 left
💡 Hint
Common Mistakes
Using '>' or '<' instead of '==' will not correctly check for zero.
Using '!=' checks for not equal, which is incorrect here.
4fill in blank
hard

Fill both blanks to complete the nested if-else that prints if a number is positive even or odd.

C
if (num [1] 0) {
    if (num [2] 2 == 0) {
        printf("Positive even\n");
    } else {
        printf("Positive odd\n");
    }
}
Drag options to blanks, or click blank then click option'
A>
B<
C%
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' instead of '>' for positivity check.
Using '==' instead of '%' for even check.
5fill in blank
hard

Fill all three blanks to complete the nested if-else that categorizes a number as positive even, positive odd, or non-positive.

C
if (num [1] 0) {
    if (num [2] 2 [3] 0) {
        printf("Positive even\n");
    } else {
        printf("Positive odd\n");
    }
} else {
    printf("Non-positive number\n");
}
Drag options to blanks, or click blank then click option'
A>
B%
C==
D<=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<=' instead of '>' for positivity check.
Using '!=' instead of '==' for even check.

Practice

(1/5)
1.

What does a nested conditional statement in C allow you to do?

Choose the best description.

easy
A. Define a function inside another function
B. Check a condition inside another condition
C. Repeat a block of code multiple times
D. Create a variable that changes type

Solution

  1. Step 1: Understand the meaning of nested conditionals

    Nested conditionals mean putting one if or else if statement inside another if or else if block.
  2. Step 2: Compare with other options

    Repeating code is done by loops, not conditionals. Functions inside functions or variable type changes are unrelated.
  3. Final Answer:

    Check a condition inside another condition -> Option B
  4. Quick Check:

    Nested conditionals = condition inside condition [OK]
Hint: Nested means inside another condition [OK]
Common Mistakes:
  • Confusing nested conditionals with loops
  • Thinking nested means changing variable types
  • Mixing nested conditionals with function definitions
2.

Which of the following is the correct syntax for a nested if statement in C?

if (x > 0) {
    if (y < 10) {
        // code
    }
}
easy
A. if x > 0 { if (y < 10) { /* code */ } }
B. if (x > 0) if (y < 10) { /* code */ }
C. if (x > 0) { if y < 10 { /* code */ } }
D. if (x > 0) { if (y < 10) { /* code */ } }

Solution

  1. Step 1: Check correct use of braces and parentheses

    In C, conditions must be inside parentheses and blocks inside braces. if (x > 0) { if (y < 10) { /* code */ } } uses both correctly.
  2. Step 2: Identify syntax errors in other options

    if (x > 0) if (y < 10) { /* code */ } misses braces for outer if block. if (x > 0) { if y < 10 { /* code */ } } misses parentheses around y < 10. if x > 0 { if (y < 10) { /* code */ } } misses parentheses around x > 0.
  3. Final Answer:

    if (x > 0) { if (y < 10) { /* code */ } } -> Option D
  4. Quick Check:

    Correct syntax = if (x > 0) { if (y < 10) { /* code */ } } [OK]
Hint: Use parentheses for conditions and braces for blocks [OK]
Common Mistakes:
  • Omitting parentheses around conditions
  • Forgetting braces for code blocks
  • Mixing syntax from other languages
3.

What is the output of this C code?

int x = 5, y = 8;
if (x > 0) {
    if (y < 10) {
        printf("A\n");
    } else {
        printf("B\n");
    }
} else {
    printf("C\n");
}
medium
A. A
B. B
C. C
D. No output

Solution

  1. Step 1: Evaluate outer if condition

    x = 5, which is greater than 0, so the outer if block runs.
  2. Step 2: Evaluate inner if condition

    y = 8, which is less than 10, so the inner if block runs and prints "A".
  3. Final Answer:

    A -> Option A
  4. Quick Check:

    x > 0 and y < 10 prints A [OK]
Hint: Check outer condition first, then inner [OK]
Common Mistakes:
  • Ignoring inner condition
  • Confusing else blocks
  • Assuming no output if outer condition true
4.

Find the error in this nested conditional code snippet:

if (a > 10)
    if (b < 5)
        printf("X\n");
    else
        printf("Y\n");
medium
A. Missing braces causing else to pair with wrong if
B. Incorrect use of semicolons after if statements
C. Using printf without including stdio.h
D. Variables a and b are not declared

Solution

  1. Step 1: Analyze the if-else pairing

    Without braces, the else pairs with the nearest if, which is the inner if. This may cause confusion or unexpected behavior.
  2. Step 2: Identify the fix

    Adding braces around the outer if block ensures the else pairs correctly and code is clear.
  3. Final Answer:

    Missing braces causing else to pair with wrong if -> Option A
  4. Quick Check:

    Braces fix else pairing [OK]
Hint: Always use braces to avoid else ambiguity [OK]
Common Mistakes:
  • Assuming else pairs with outer if
  • Ignoring braces importance
  • Thinking semicolons cause this error
5.

Given the code below, what will be printed if score = 75?

if (score >= 90) {
    printf("Grade A\n");
} else {
    if (score >= 70) {
        if (score >= 80) {
            printf("Grade B+\n");
        } else {
            printf("Grade B\n");
        }
    } else {
        printf("Grade C\n");
    }
}
hard
A. Grade B+
B. Grade C
C. Grade B
D. Grade A

Solution

  1. Step 1: Check first if condition

    score = 75, which is not >= 90, so skip first if block.
  2. Step 2: Check second if condition

    score >= 70 is true, so enter second if block.
  3. Step 3: Check nested if inside second block

    score >= 80 is false (75 < 80), so else block runs printing "Grade B".
  4. Final Answer:

    Grade B -> Option C
  5. Quick Check:

    75 >= 70 but < 80 prints Grade B [OK]
Hint: Check conditions top-down carefully [OK]
Common Mistakes:
  • Confusing >= 70 and >= 80 checks
  • Skipping nested else block
  • Assuming 75 is Grade B+
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