What happens to the elements after deleting an element at the middle index of an array?
All elements after the deleted index shift one position to the left to fill the gap.
Click to reveal answer
beginner
Why can't we just remove an element from the middle of a static array without shifting elements?
Because arrays have fixed size and continuous memory, removing an element leaves a gap that must be filled by shifting elements.
Click to reveal answer
beginner
In C, after deleting an element from an array, what must be updated to reflect the new size?
The variable that stores the array's current size must be decreased by one.
Click to reveal answer
intermediate
What is the time complexity of deleting an element at the middle index of an array?
O(n), because elements after the deleted index must be shifted one by one.
Click to reveal answer
beginner
Show the steps to delete the element at index 2 from the array [10, 20, 30, 40, 50].
1. Remove element 30 at index 2. 2. Shift elements 40 and 50 left by one. 3. New array: [10, 20, 40, 50]. 4. Decrease size by 1.
Click to reveal answer
What must you do after deleting an element from the middle of an array?
AResize the array automatically
BShift all elements after it one position to the left
CDo nothing, just mark it deleted
DShift all elements before it one position to the right
✗ Incorrect
After deletion, elements after the deleted index must shift left to fill the gap.
What is the time complexity of deleting an element at the middle index of an array of size n?
AO(n^2)
BO(1)
CO(log n)
DO(n)
✗ Incorrect
Shifting elements after the deleted index takes O(n) time.
If an array has 5 elements and you delete the element at index 2, what is the new size of the array?
A4
B3
C5
D2
✗ Incorrect
The size decreases by one after deletion.
Which of these is NOT a step in deleting an element from the middle of an array?
AShift elements after the deleted index left
BDecrease the array size variable
CAllocate new memory for the array
DOverwrite the deleted element
✗ Incorrect
Static arrays do not require new memory allocation for deletion.
What happens if you try to delete an element at an invalid index in an array?
AIt causes undefined behavior or error
BThe program safely ignores it
CIt deletes the last element instead
DIt deletes the first element instead
✗ Incorrect
Accessing invalid index leads to undefined behavior or runtime error.
Explain how to delete an element at the middle index of an array and update its size.
Think about filling the gap left by the deleted element.
You got /3 concepts.
Describe why deleting an element in the middle of a static array requires shifting elements.
Consider how arrays store elements in memory.
You got /3 concepts.
Practice
(1/5)
1. What happens when you delete the middle element from an array of size 5? int arr[5] = {10, 20, 30, 40, 50}; Delete the element at index 2 (middle). What is the new array?
easy
A. [10, 20, 40, 50]
B. [10, 20, 30, 40, 50]
C. [10, 20, 30, 50]
D. [20, 30, 40, 50]
Solution
Step 1: Identify the middle index and element
The array has 5 elements, so the middle index is 2 (0-based). The element at index 2 is 30.
Step 2: Delete the middle element and shift remaining elements
Remove 30, then shift elements after index 2 left by one: 40 moves to index 2, 50 moves to index 3.
Final Answer:
[10, 20, 40, 50] -> Option A
Quick Check:
Middle element removed, array size reduced by 1 [OK]
Hint: Remove middle, shift right elements left by one [OK]
Common Mistakes:
Not shifting elements after deletion
Deleting wrong index
Leaving array size unchanged
2. Which of the following C code snippets correctly deletes the middle element from an array arr of size n?
easy
A. for (int i = n/2; i > 0; i--) arr[i] = arr[i - 1]; n--;
B. for (int i = 0; i < n/2; i++) arr[i] = arr[i + 1]; n--;
C. for (int i = n - 1; i > n/2; i--) arr[i] = arr[i - 1]; n--;
D. for (int i = n/2; i < n - 1; i++) arr[i] = arr[i + 1]; n--;
Solution
Step 1: Identify the middle index and loop direction
The middle index is n/2 (integer division). To delete, shift elements after middle left.
Step 2: Check loop correctness
for (int i = n/2; i < n - 1; i++) arr[i] = arr[i + 1]; n--; shifts elements from middle to end left by one, then reduces size. This is correct.
Final Answer:
for (int i = n/2; i < n - 1; i++) arr[i] = arr[i + 1]; n--; -> Option D
Quick Check:
Shift elements after middle left [OK]
Hint: Shift elements from middle to end left by one [OK]
Common Mistakes:
Shifting elements before middle
Looping in wrong direction
Not reducing array size
3. What is the output of the following C code?
int arr[6] = {5, 10, 15, 20, 25, 30};
int n = 6;
int mid = n / 2;
for (int i = mid; i < n - 1; i++) {
arr[i] = arr[i + 1];
}
n--;
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
medium
A. 5 10 15 20 25 30
B. 5 10 15 20 30
C. 5 10 15 25 30
D. 5 10 20 25 30
Solution
Step 1: Calculate middle index and deletion
n=6, mid=3. Element at index 3 is 20. It will be deleted.
Deleted middle element, shifted right elements left [OK]
Hint: Delete middle, shift right elements left, print first n-1 elements [OK]
Common Mistakes:
Printing original array size
Not shifting elements correctly
Deleting wrong index
4. Find the error in this code snippet that deletes the middle element from an array arr of size n:
int mid = n / 2;
for (int i = 0; i < mid; i++) {
arr[i] = arr[i + 1];
}
n--;
medium
A. Middle index calculation is wrong, should be (n-1)/2
B. Loop shifts elements before middle, should shift after middle
C. Array size decrement should be before loop
D. No error, code is correct
Solution
Step 1: Analyze loop range and shifting direction
The loop runs from 0 to mid-1, shifting elements before middle left, which is incorrect.
Step 2: Correct shifting after middle index
To delete middle element, shift elements from middle index to end left by one, not before middle.
Final Answer:
Loop shifts elements before middle, should shift after middle -> Option B
Quick Check:
Shift elements after middle, not before [OK]
Hint: Shift elements after middle, not before [OK]
Common Mistakes:
Shifting elements before middle
Wrong loop boundaries
Not reducing array size
5. Given an array arr of size n where n is even, write the steps to delete the middle two elements and shift the rest. What will be the new array after deleting middle elements from {1, 2, 3, 4, 5, 6}?
hard
A. [1, 2, 5, 6]
B. [1, 2, 3, 6]
C. [1, 2, 4, 5, 6]
D. [1, 3, 4, 5, 6]
Solution
Step 1: Identify middle two indices for even-sized array
For n=6, middle two indices are 2 and 3 (0-based), elements 3 and 4.
Step 2: Delete these two elements and shift remaining elements left
Shift elements from index 4 and 5 left by two positions: 5 moves to index 2, 6 moves to index 3. Reduce size by 2.
Step 3: New array after deletion
Array becomes [1, 2, 5, 6]
Final Answer:
[1, 2, 5, 6] -> Option A
Quick Check:
Delete two middle elements, shift right elements left by two [OK]
Hint: Delete two middles, shift right elements left by two [OK]
Common Mistakes:
Deleting only one middle element
Shifting elements incorrectly
Not reducing array size by two
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.