0
0
DSA Cprogramming~20 mins

Recursion on Arrays and Strings in DSA C - Practice Problems & Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Recursion Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of Recursive Sum of Array Elements
What is the output of the following C code that recursively sums elements of an array?
DSA C
int recursiveSum(int arr[], int n) {
    if (n == 0) return 0;
    return arr[n-1] + recursiveSum(arr, n-1);
}

int main() {
    int arr[] = {1, 2, 3, 4};
    int result = recursiveSum(arr, 4);
    printf("%d", result);
    return 0;
}
AError: infinite recursion
B24
C0
D10
Attempts:
2 left
💡 Hint
Think about how the function adds the last element and calls itself with one less element.
Predict Output
intermediate
2:00remaining
Output of Recursive String Length Function
What is the output of this C code that calculates the length of a string recursively?
DSA C
int recursiveLength(char *str) {
    if (*str == '\0') return 0;
    return 1 + recursiveLength(str + 1);
}

int main() {
    char s[] = "hello";
    int len = recursiveLength(s);
    printf("%d", len);
    return 0;
}
A5
B6
C0
DSegmentation fault
Attempts:
2 left
💡 Hint
Count characters until the null character '\0' is found.
🔧 Debug
advanced
2:00remaining
Identify the Error in Recursive Array Search
What error does the following C code produce when searching for a value recursively in an array?
DSA C
int recursiveSearch(int arr[], int n, int x) {
    if (n < 0) return -1;
    if (arr[n] == x) return n;
    return recursiveSearch(arr, n-1, x);
}

int main() {
    int arr[] = {1, 3, 5, 7};
    int index = recursiveSearch(arr, 4, 5);
    printf("%d", index);
    return 0;
}
ASegmentation fault
BPrints -1
CPrints 2
DPrints 3
Attempts:
2 left
💡 Hint
Check the array index used in the base case and recursive calls.
Predict Output
advanced
2:00remaining
Output of Recursive Palindrome Check
What is the output of this C code that checks if a string is a palindrome recursively?
DSA C
int isPalindrome(char *str, int start, int end) {
    if (start >= end) return 1;
    if (str[start] != str[end]) return 0;
    return isPalindrome(str, start + 1, end - 1);
}

int main() {
    char s[] = "racecar";
    int result = isPalindrome(s, 0, 6);
    printf("%d", result);
    return 0;
}
A0
B1
C6
DSegmentation fault
Attempts:
2 left
💡 Hint
Check characters from start and end moving inward.
🧠 Conceptual
expert
2:00remaining
Maximum Depth of Recursive Calls for String Reverse
Consider a recursive function that reverses a string by swapping characters from start to end indices. What is the maximum depth of recursive calls for a string of length n?
An
Bn-1
Cn/2
Dlog n
Attempts:
2 left
💡 Hint
Each recursive call processes one pair of characters from start and end.