Bird
Raised Fist0
Cprogramming~10 mins

Why error handling is needed in C - Test Your Understanding

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

Complete the code to check if the file opened successfully.

C
#include <stdio.h>

int main() {
    FILE *file = fopen("data.txt", "r");
    if (file == [1]) {
        printf("Failed to open file.\n");
    }
    return 0;
}
Drag options to blanks, or click blank then click option'
ANULL
B0
C1
DEOF
Attempts:
3 left
💡 Hint
Common Mistakes
Checking if file == 0 instead of NULL
Not checking the file pointer at all
2fill in blank
medium

Complete the code to handle division by zero error.

C
#include <stdio.h>

int main() {
    int a = 10, b = 0;
    if (b [1] 0) {
        printf("Error: Division by zero!\n");
    } else {
        printf("Result: %d\n", a / b);
    }
    return 0;
}
Drag options to blanks, or click blank then click option'
A==
B!=
C>
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using '!=' instead of '=='
Not checking divisor before division
3fill in blank
hard

Fix the error in the code to properly handle file reading errors.

C
#include <stdio.h>

int main() {
    FILE *file = fopen("input.txt", "r");
    char buffer[100];
    if (file == [1]) {
        perror("Error opening file");
        return 1;
    }
    if (fgets(buffer, sizeof(buffer), file) == [2]) {
        perror("Error reading file");
    }
    fclose(file);
    return 0;
}
Drag options to blanks, or click blank then click option'
A-1
BEOF
C0
DNULL
Attempts:
3 left
💡 Hint
Common Mistakes
Checking fgets result against EOF instead of NULL
Using 0 or -1 incorrectly
4fill in blank
hard

Fill both blanks to handle memory allocation errors.

C
#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr = (int *)malloc(sizeof(int) * 10);
    if (ptr == [1]) {
        printf("Memory allocation failed.\n");
        return [2];
    }
    free(ptr);
    return 0;
}
Drag options to blanks, or click blank then click option'
ANULL
B1
C0
D-1
Attempts:
3 left
💡 Hint
Common Mistakes
Not checking malloc result
Returning 0 on error
5fill in blank
hard

Fill all three blanks to handle user input errors safely.

C
#include <stdio.h>

int main() {
    int number;
    printf("Enter a number: ");
    if (scanf("%d", &number) != [1]) {
        printf("Invalid input!\n");
        return [2];
    }
    if (number [3] 0) {
        printf("You entered: %d\n", number);
        return 0;
    }
    printf("Number must be positive.\n");
    return 1;
}
Drag options to blanks, or click blank then click option'
A0
B1
C>
Attempts:
3 left
💡 Hint
Common Mistakes
Checking scanf result against 0
Not validating positive number
Returning 0 on error

Practice

(1/5)
1. Why is error handling important in C programming?
easy
A. It helps the program handle unexpected problems safely.
B. It makes the program run faster.
C. It removes the need to write comments.
D. It automatically fixes bugs in the code.

Solution

  1. Step 1: Understand the purpose of error handling

    Error handling is used to manage unexpected problems during program execution.
  2. Step 2: Identify the benefit of error handling

    It keeps the program safe and stable by preventing crashes or wrong results.
  3. Final Answer:

    It helps the program handle unexpected problems safely. -> Option A
  4. Quick Check:

    Error handling = safe program [OK]
Hint: Error handling keeps programs safe and stable [OK]
Common Mistakes:
  • Thinking error handling makes code faster
  • Believing error handling fixes bugs automatically
  • Confusing error handling with commenting
2. Which of the following is the correct way to check for an error after opening a file in C?
easy
A. if (file = NULL) { /* handle error */ }
B. if (file == 0) { /* handle error */ }
C. if (file != NULL) { /* handle error */ }
D. if (file == NULL) { /* handle error */ }

Solution

  1. Step 1: Recall how to check file pointers in C

    When fopen fails, it returns NULL, so we check if file == NULL.
  2. Step 2: Identify correct syntax for comparison

    Using '==' compares the pointer correctly; '=' assigns value and is wrong here.
  3. Final Answer:

    if (file == NULL) { /* handle error */ } -> Option D
  4. Quick Check:

    Check pointer with '==' to NULL [OK]
Hint: Use '==' to compare pointer to NULL after fopen [OK]
Common Mistakes:
  • Using '=' instead of '==' for comparison
  • Checking if file != NULL to detect error
  • Comparing pointer to 0 instead of NULL
3. What will the following C code print if the file "data.txt" does not exist?
FILE *file = fopen("data.txt", "r");
if (file == NULL) {
    printf("Error opening file\n");
} else {
    printf("File opened successfully\n");
    fclose(file);
}
medium
A. File opened successfully
B. Error opening file
C. Compilation error
D. No output

Solution

  1. Step 1: Understand fopen behavior when file is missing

    fopen returns NULL if the file does not exist or cannot be opened.
  2. Step 2: Follow the if condition logic

    If file == NULL, it prints "Error opening file"; otherwise, it prints success.
  3. Final Answer:

    Error opening file -> Option B
  4. Quick Check:

    fopen fails = print error [OK]
Hint: fopen returns NULL if file missing, triggers error message [OK]
Common Mistakes:
  • Assuming file opens successfully even if missing
  • Confusing NULL check logic
  • Expecting compilation error
4. Find the error in this C code snippet that tries to read a file:
FILE *f = fopen("input.txt", "r");
char buffer[100];
fgets(buffer, 100, f);
printf("%s", buffer);
fclose(f);
medium
A. fgets should be replaced with fscanf
B. Buffer size is too large for fgets
C. Missing check if fopen returned NULL before using f
D. fclose should be called before fgets

Solution

  1. Step 1: Check for error handling after fopen

    The code uses f without checking if fopen returned NULL, which can cause a crash.
  2. Step 2: Understand correct error handling practice

    Always check if file pointer is NULL before reading to avoid runtime errors.
  3. Final Answer:

    Missing check if fopen returned NULL before using f -> Option C
  4. Quick Check:

    Check fopen result before use [OK]
Hint: Always check fopen result before reading file [OK]
Common Mistakes:
  • Ignoring NULL check after fopen
  • Thinking buffer size is wrong here
  • Misplacing fclose call
5. You want to open a file and read its first line safely in C. Which approach best handles possible errors?
hard
A. Open file, check if NULL, read line if safe, else print error
B. Open file and read line without checking, assume success
C. Read line first, then open file
D. Open file, close immediately, then read line

Solution

  1. Step 1: Plan safe file reading

    Open the file and check if fopen returns NULL to detect errors.
  2. Step 2: Read line only if file opened successfully

    If file is safe, read the first line; otherwise, print an error message.
  3. Final Answer:

    Open file, check if NULL, read line if safe, else print error -> Option A
  4. Quick Check:

    Check fopen result before reading [OK]
Hint: Check fopen result before reading file to avoid crashes [OK]
Common Mistakes:
  • Reading file without checking fopen result
  • Trying to read before opening file
  • Closing file before reading
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