Bird
Raised Fist0
Cprogramming~10 mins

Enum declaration - Interactive Code Practice

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

Complete the code to declare an enum named Color.

C
enum [1] { RED, GREEN, BLUE };
Drag options to blanks, or click blank then click option'
AColors
Bcolor
CColor
DcolorEnum
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase or plural forms for enum names.
Forgetting to name the enum.
2fill in blank
medium

Complete the code to declare an enum with explicit values.

C
enum Status { PENDING = [1], COMPLETED = 2, FAILED = 3 };
Drag options to blanks, or click blank then click option'
A2
B1
C0
D3
Attempts:
3 left
💡 Hint
Common Mistakes
Assigning duplicate values to enum members.
Starting enum values at 2 when 1 is expected.
3fill in blank
hard

Fix the error in the enum declaration by completing the code.

C
enum [1] { LOW, MEDIUM, HIGH };
Drag options to blanks, or click blank then click option'
APriorities
Bpriority
CPRIORITY
DPriority
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase enum names causing confusion.
Using plural or all uppercase names incorrectly.
4fill in blank
hard

Fill both blanks to declare an enum and assign a value.

C
enum [1] { START = [2], STOP };
Drag options to blanks, or click blank then click option'
AAction
B1
C0
DState
Attempts:
3 left
💡 Hint
Common Mistakes
Using plural enum names.
Assigning 0 when 1 is expected.
5fill in blank
hard

Fill all three blanks to declare an enum with custom values.

C
enum [1] { RED = [2], GREEN = [3] };
Drag options to blanks, or click blank then click option'
ATrafficLight
B1
C2
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using 0 as the first value when 1 is expected.
Using plural enum names.

Practice

(1/5)
1. What is the main purpose of using enum in C programming?
easy
A. To declare a function prototype
B. To give names to a set of integer constants for better code readability
C. To create a new data type for floating-point numbers
D. To allocate memory dynamically

Solution

  1. Step 1: Understand enum usage

    An enum is used to assign names to integer constants, making code easier to read and maintain.
  2. Step 2: Compare other options

    Other options describe unrelated concepts: function prototypes, floating-point types, and memory allocation.
  3. Final Answer:

    To give names to a set of integer constants for better code readability -> Option B
  4. Quick Check:

    Enum = Named integer constants [OK]
Hint: Enums name numbers to make code clearer [OK]
Common Mistakes:
  • Confusing enums with structs or unions
  • Thinking enums allocate memory dynamically
  • Assuming enums are for floating-point types
2. Which of the following is the correct syntax to declare an enum named Color with values RED, GREEN, and BLUE?
easy
A. enum Color { RED, GREEN, BLUE };
B. enum Color = { RED, GREEN, BLUE };
C. enum Color ( RED, GREEN, BLUE );
D. enum Color: RED, GREEN, BLUE;

Solution

  1. Step 1: Recall enum declaration syntax

    The correct syntax uses curly braces to list values after the enum name without assignment or colons.
  2. Step 2: Check each option

    enum Color { RED, GREEN, BLUE }; uses correct syntax: enum Color { RED, GREEN, BLUE };. Others use invalid symbols like '=', '(', or ':'.
  3. Final Answer:

    enum Color { RED, GREEN, BLUE }; -> Option A
  4. Quick Check:

    Enum syntax = enum Name { values } [OK]
Hint: Use curly braces and no equals sign in enum declaration [OK]
Common Mistakes:
  • Using '=' instead of braces
  • Using parentheses instead of braces
  • Using colons after enum name
3. What will be the output of the following C code?
enum Day { SUN, MON, TUE = 5, WED, THU };
#include 
int main() {
    printf("%d %d %d %d %d", SUN, MON, TUE, WED, THU);
    return 0;
}
medium
A. 0 1 5 5 5
B. 0 1 2 3 4
C. 1 2 5 6 7
D. 0 1 5 6 7

Solution

  1. Step 1: Understand enum value assignment

    By default, enum values start at 0 and increment by 1. Here, SUN=0, MON=1. TUE is explicitly set to 5.
  2. Step 2: Calculate following values

    After TUE=5, WED becomes 6, and THU becomes 7 automatically.
  3. Final Answer:

    0 1 5 6 7 -> Option D
  4. Quick Check:

    Explicit enum value sets next values incrementally [OK]
Hint: Explicit enum value resets counting from that number [OK]
Common Mistakes:
  • Assuming all values increment from zero ignoring explicit assignment
  • Thinking WED and THU have same value as TUE
  • Starting enum values from 1 by default
4. Identify the error in the following enum declaration:
enum Status {
    OK = 1,
    ERROR,
    WARNING = "2"
};
medium
A. ERROR must be assigned a value explicitly
B. Missing semicolon after enum declaration
C. Enum values must be integers, not strings
D. Enum names cannot be uppercase

Solution

  1. Step 1: Check enum value types

    Enum values must be integer constants. Assigning a string like "2" is invalid.
  2. Step 2: Verify other parts

    Semicolon is present, uppercase names are allowed, and ERROR can be auto-assigned after OK=1.
  3. Final Answer:

    Enum values must be integers, not strings -> Option C
  4. Quick Check:

    Enum values = integers only [OK]
Hint: Enum values must be integers, not strings [OK]
Common Mistakes:
  • Using string literals as enum values
  • Forgetting semicolon after enum
  • Thinking enum names must be lowercase
5. Given the enum declaration:
enum Flags { FLAG_A = 1 << 0, FLAG_B = 1 << 1, FLAG_C = 1 << 2 };

int flags = FLAG_A | FLAG_C;
Which expression correctly checks if FLAG_B is set in flags?
hard
A. (flags & FLAG_B) != 0
B. (flags | FLAG_B) == 0
C. (flags & FLAG_B) == FLAG_B + 1
D. (flags ^ FLAG_B) == 0

Solution

  1. Step 1: Understand bitwise flag checking

    To check if a flag is set, use bitwise AND and compare to zero.
  2. Step 2: Analyze each option

    (flags & FLAG_B) != 0 correctly checks if FLAG_B bit is set by (flags & FLAG_B) != 0. Others use incorrect bitwise operations or comparisons.
  3. Final Answer:

    (flags & FLAG_B) != 0 -> Option A
  4. Quick Check:

    Bitwise AND with flag and compare to zero [OK]
Hint: Use bitwise AND and compare to zero to check flags [OK]
Common Mistakes:
  • Using bitwise OR instead of AND for checking
  • Comparing to wrong values
  • Using XOR to check flags
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