Bird
Raised Fist0
Cprogramming~20 mins

Character arrays - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Character Arrays Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of character array initialization
What is the output of this C program?
C
#include <stdio.h>

int main() {
    char arr[] = {'H', 'e', 'l', 'l', 'o'};
    printf("%s", arr);
    return 0;
}
ARandom characters or garbage output
BHello\0
CCompilation error
DHello
Attempts:
2 left
💡 Hint
Remember how strings are represented in C and what %s expects.
❓ Predict Output
intermediate
2:00remaining
Length of character array with null terminator
What will be the output of this program?
C
#include <stdio.h>
#include <string.h>

int main() {
    char arr[] = "Hello";
    printf("%zu", strlen(arr));
    return 0;
}
A6
BUndefined behavior
CCompilation error
D5
Attempts:
2 left
💡 Hint
strlen counts characters until the null terminator, but does not include it.
🔧 Debug
advanced
2:00remaining
Identify the error in character array assignment
What error will this code produce?
C
#include <stdio.h>

int main() {
    char arr[5];
    arr = "Hello";
    printf("%s", arr);
    return 0;
}
AOutput: Hello
BCompilation error: array type is not assignable
CRuntime error: segmentation fault
DCompilation error: missing semicolon
Attempts:
2 left
💡 Hint
Think about how arrays and pointers work in C.
📝 Syntax
advanced
2:00remaining
Correct way to declare and initialize a character array
Which option correctly declares and initializes a character array to hold the string "Code" by explicitly including the null terminator?
Achar arr[5] = {'C', 'o', 'd', 'e'};
Bchar arr[] = "Code";
Cchar arr[5] = {'C', 'o', 'd', 'e', '\0'};
Dchar arr[4] = {'C', 'o', 'd', 'e'};
Attempts:
2 left
💡 Hint
Remember the null terminator is needed for strings in C.
🚀 Application
expert
2:00remaining
Number of elements in a character array
Given the code below, what is the value of variable count after execution?
C
#include <stdio.h>

int main() {
    char arr[] = "Programming";
    int count = sizeof(arr) / sizeof(arr[0]);
    printf("%d", count);
    return 0;
}
A12
B11
C10
DUndefined behavior
Attempts:
2 left
💡 Hint
Remember that string literals include the null terminator in arrays.

Practice

(1/5)
1. What is a character array in C used for?
easy
A. To store a sequence of characters, like a word or sentence
B. To store only numbers
C. To perform mathematical calculations
D. To create a list of integers

Solution

  1. Step 1: Understand character arrays

    A character array in C is a collection of characters stored in contiguous memory locations.
  2. Step 2: Identify its use

    It is mainly used to store text like words or sentences, not numbers or calculations.
  3. Final Answer:

    To store a sequence of characters, like a word or sentence -> Option A
  4. Quick Check:

    Character array = text storage [OK]
Hint: Character arrays hold text, not numbers or math [OK]
Common Mistakes:
  • Thinking character arrays store numbers only
  • Confusing character arrays with integer arrays
  • Assuming character arrays perform calculations
2. Which of the following is the correct way to declare a character array to hold the word "hello" in C?
easy
A. char word[6] = "hello";
B. char word[5] = {'h', 'e', 'l', 'l', 'o'};
C. char word[] = {'h', 'e', 'l', 'l', 'o', '\0'};
D. char word[5] = "hello";

Solution

  1. Step 1: Understand string termination in C

    Strings in C end with a special character '\0' to mark the end.
  2. Step 2: Check array size and initialization

    char word[6] = "hello"; declares an array of size 6 (5 letters + '\0') and initializes it with "hello" correctly.
  3. Final Answer:

    char word[6] = "hello"; -> Option A
  4. Quick Check:

    String needs space for '\0' [OK]
Hint: Remember to include space for '\0' in string arrays [OK]
Common Mistakes:
  • Not allocating space for the null terminator '\0'
  • Using single quotes for strings
  • Declaring array size too small
3. What will be the output of the following C code?
char str[] = "cat";
printf("%c", str[3]);
medium
A. t
B. 0 (null character, no visible output)
C. c
D. Compilation error

Solution

  1. Step 1: Understand string indexing

    String "cat" has characters at indices 0:'c', 1:'a', 2:'t', and index 3 is the null terminator '\0'.
  2. Step 2: Print character at index 3

    Printing str[3] prints the null character which is invisible, so no visible output appears.
  3. Final Answer:

    0 (null character, no visible output) -> Option B
  4. Quick Check:

    str[3] = '\0' (null) [OK]
Hint: Remember strings end with '\0' at last index [OK]
Common Mistakes:
  • Expecting 't' at index 3 instead of '\0'
  • Thinking it causes an error
  • Confusing index positions
4. Identify the error in this code snippet:
char name[5];
strcpy(name, "hello world");
medium
A. No error, code works fine
B. Incorrect use of strcpy function
C. Missing #include <string.h>
D. Array size is too small for the string

Solution

  1. Step 1: Check array size vs string length

    "hello world" has 11 characters plus '\0' = 12 total, but array size is only 5.
  2. Step 2: Understand consequences

    Copying this string will overflow the array, causing undefined behavior.
  3. Final Answer:

    Array size is too small for the string -> Option D
  4. Quick Check:

    Array must fit string + '\0' [OK]
Hint: Array size must be >= string length + 1 [OK]
Common Mistakes:
  • Ignoring array size limits
  • Assuming strcpy checks size
  • Forgetting null terminator space
5. Given the code below, what will be the output?
char arr[10] = "abc";
arr[3] = 'd';
arr[4] = '\0';
printf("%s", arr);
hard
A. abc\0d
B. abc
C. abcd
D. Runtime error

Solution

  1. Step 1: Analyze initial array content

    arr is initialized with "abc" which is 'a','b','c','\0' plus extra space.
  2. Step 2: Modify characters and null terminator

    arr[3] = 'd' adds 'd' after 'c', then arr[4] = '\0' sets new string end after 'd'.
  3. Step 3: Print the string

    printf prints characters until '\0', so output is "abcd".
  4. Final Answer:

    abcd -> Option C
  5. Quick Check:

    String ends at arr[4] '\0' [OK]
Hint: Null terminator controls string end in arrays [OK]
Common Mistakes:
  • Ignoring manual null terminator placement
  • Expecting original string without changes
  • Confusing character and string printing
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