Bird
0
0
DSA Cprogramming~20 mins

Array Deletion at End in DSA C - Practice Problems & Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Array Deletion Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the output after deleting the last element from the array?
Consider the following C code that deletes the last element from an array by reducing its size. What will be printed?
DSA C
int arr[5] = {10, 20, 30, 40, 50};
int size = 5;

// Delete last element
if (size > 0) {
    size--;
}

for (int i = 0; i < size; i++) {
    printf("%d ", arr[i]);
}
printf("\n");
A10 20 30 40
B10 20 30 40 50
C20 30 40 50
D10 20 30 50
Attempts:
2 left
💡 Hint
Deleting the last element means reducing the size by one and printing only up to the new size.
Predict Output
intermediate
2:00remaining
What happens if we delete from an empty array?
Given the code below, what will be the output?
DSA C
int arr[3] = {1, 2, 3};
int size = 0;

if (size > 0) {
    size--;
}

printf("Size: %d\n", size);
ARuntime error
BSize: 0
CSize: 1
DSize: -1
Attempts:
2 left
💡 Hint
Check the condition before decreasing size.
🔧 Debug
advanced
2:30remaining
Why does this code print an extra element after deletion?
The code below tries to delete the last element from the array but prints one extra element. Identify the bug.
DSA C
int arr[4] = {5, 10, 15, 20};
int size = 4;

size = size - 1;

for (int i = 0; i < size; i++) {
    printf("%d ", arr[i]);
}
printf("\n");
AThe array elements should be shifted left after deletion
BThe size should not be decremented before the loop
CThe loop condition should be i < size, not i <= size
DThe array size should be reset to zero
Attempts:
2 left
💡 Hint
Check the loop boundary condition carefully.
Predict Output
advanced
2:30remaining
What is the output after multiple deletions at the end?
Given the code below, what will be printed?
DSA C
int arr[6] = {2, 4, 6, 8, 10, 12};
int size = 6;

// Delete last element twice
for (int i = 0; i < 2; i++) {
    if (size > 0) {
        size--;
    }
}

for (int i = 0; i < size; i++) {
    printf("%d ", arr[i]);
}
printf("\n");
A2 4 6 8 10 12
B2 4 6 8 10
C4 6 8 10
D2 4 6 8
Attempts:
2 left
💡 Hint
Each deletion reduces size by one, so two deletions reduce size from 6 to 4.
🧠 Conceptual
expert
2:00remaining
What is the time complexity of deleting the last element in a dynamic array?
Consider a dynamic array (like a vector in C++ or ArrayList in Java). What is the time complexity of deleting the last element?
AO(1) - Constant time
BO(n) - Linear time
CO(log n) - Logarithmic time
DO(n^2) - Quadratic time
Attempts:
2 left
💡 Hint
Deleting the last element usually just reduces the size counter.