Bird
Raised Fist0
DSA C++programming~20 mins

Array Deletion at Beginning in DSA C++ - Practice Problems & Challenges

Choose your learning style10 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
Output after deleting first element from array
What is the output of the following C++ code after deleting the first element from the array?
DSA C++
int arr[] = {10, 20, 30, 40, 50};
int n = 5;

// Delete first element by shifting
for (int i = 0; i < n - 1; i++) {
    arr[i] = arr[i + 1];
}
n--;

for (int i = 0; i < n; i++) {
    std::cout << arr[i] << " ";
}
A30 40 50
B10 20 30 40 50
C20 30 40 50
D50 20 30 40
Attempts:
2 left
💡 Hint
After deleting the first element, all elements shift left by one position.
🧠 Conceptual
intermediate
1:00remaining
Effect of deleting first element on array size
If you delete the first element from an array of size 7 by shifting elements left, what will be the new size of the array?
A6
B5
C7
D0
Attempts:
2 left
💡 Hint
Deleting one element reduces the size by one.
🔧 Debug
advanced
2:00remaining
Identify the error in array deletion code
What error does the following code produce when deleting the first element from an array? int arr[] = {1, 2, 3, 4}; int n = 4; for (int i = 0; i <= n - 1; i++) { arr[i] = arr[i + 1]; } n--;
DSA C++
int arr[] = {1, 2, 3, 4};
int n = 4;
for (int i = 0; i <= n - 1; i++) {
    arr[i] = arr[i + 1];
}
n--;
ALogical error: array elements not shifted
BRuns correctly with output: 2 3 4
CCompilation error: invalid loop condition
DRuntime error: accessing out-of-bounds element
Attempts:
2 left
💡 Hint
Check the loop condition and array indexing carefully.
❓ Predict Output
advanced
2:00remaining
Output after multiple deletions at beginning
What is the output after deleting the first element twice from the array below?
DSA C++
int arr[] = {5, 10, 15, 20, 25};
int n = 5;

// Delete first element
for (int i = 0; i < n - 1; i++) {
    arr[i] = arr[i + 1];
}
n--;

// Delete first element again
for (int i = 0; i < n - 1; i++) {
    arr[i] = arr[i + 1];
}
n--;

for (int i = 0; i < n; i++) {
    std::cout << arr[i] << " ";
}
A15 20 25
B10 15 20 25
C20 25
D5 10 15
Attempts:
2 left
💡 Hint
Each deletion shifts elements left and reduces size by one.
🚀 Application
expert
3:00remaining
Number of shifts required to delete first element multiple times
If you delete the first element from an array of size 10, three times in a row by shifting elements left each time, how many total element shifts occur?
A21
B24
C30
D27
Attempts:
2 left
💡 Hint
Each deletion shifts elements equal to current size minus one.

Practice

(1/5)
1. What happens to the elements of an array when you delete the first element (at the beginning)?
easy
A. All elements shift one position to the left, and the first element is removed.
B. All elements shift one position to the right, and the last element is removed.
C. The array size increases by one.
D. The array remains unchanged.

Solution

  1. Step 1: Understand deletion at beginning

    Deleting the first element means removing the element at index 0.
  2. Step 2: Effect on array elements

    All other elements move one position left to fill the gap.
  3. Final Answer:

    All elements shift one position to the left, and the first element is removed. -> Option A
  4. Quick Check:

    Deletion at start shifts elements left [OK]
Hint: Deleting start means shift left all elements [OK]
Common Mistakes:
  • Thinking elements shift right instead of left
  • Assuming array size increases
  • Believing array stays unchanged
2. Which of the following C++ code snippets correctly deletes the first element of an array arr of size n by shifting elements left?
easy
A. for (int i = 1; i < n; i++) arr[i] = arr[i - 1]; n--;
B. for (int i = n - 1; i > 0; i--) arr[i] = arr[i - 1]; n++;
C. for (int i = 0; i < n - 1; i++) arr[i] = arr[i + 1]; n--;
D. for (int i = 0; i < n; i++) arr[i] = arr[i]; n--;

Solution

  1. Step 1: Identify correct loop for shifting left

    The loop must start at 0 and assign arr[i] = arr[i+1] to shift left.
  2. Step 2: Check array size update

    After shifting, size decreases by 1 (n--).
  3. Final Answer:

    for (int i = 0; i < n - 1; i++) arr[i] = arr[i + 1]; n--; -> Option C
  4. Quick Check:

    Shift left loop from 0 to n-2, then n-- [OK]
Hint: Shift left from i=0 to n-2, then reduce size [OK]
Common Mistakes:
  • Looping backwards instead of forwards
  • Increasing size instead of decreasing
  • Copying elements incorrectly
3. What is the output of the following C++ code?
int arr[5] = {10, 20, 30, 40, 50};
int n = 5;
for (int i = 0; i < n - 1; i++) {
    arr[i] = arr[i + 1];
}
n--;
for (int i = 0; i < n; i++) {
    std::cout << arr[i] << " ";
}
medium
A. 50 40 30 20
B. 20 30 40 50
C. 10 20 30 40 50
D. 30 40 50

Solution

  1. Step 1: Perform element shifting

    Elements shift left: arr[0]=20, arr[1]=30, arr[2]=40, arr[3]=50.
  2. Step 2: Update size and print

    Size n becomes 4, so print arr[0] to arr[3]: 20 30 40 50.
  3. Final Answer:

    20 30 40 50 -> Option B
  4. Quick Check:

    First element removed, rest shifted left [OK]
Hint: After deletion, print first n-1 elements shifted left [OK]
Common Mistakes:
  • Printing original array without shift
  • Printing one extra element
  • Confusing order of elements
4. Identify the error in the following code that attempts to delete the first element of an array arr of size n:
for (int i = 1; i < n; i++) {
    arr[i] = arr[i - 1];
}
n--;
medium
A. The loop should start from i = 0 and go to n - 1.
B. The loop correctly shifts elements left, no error.
C. The array size should increase, not decrease.
D. The loop shifts elements right instead of left, causing data overwrite.

Solution

  1. Step 1: Analyze loop direction and assignment

    The loop assigns arr[i] = arr[i - 1], shifting elements right, which is wrong for deletion at start.
  2. Step 2: Understand correct shifting for deletion

    Deletion requires shifting elements left: arr[i] = arr[i + 1].
  3. Final Answer:

    The loop shifts elements right instead of left, causing data overwrite. -> Option D
  4. Quick Check:

    Deletion needs left shift, not right [OK]
Hint: Deletion shifts left; right shift is wrong [OK]
Common Mistakes:
  • Shifting elements in wrong direction
  • Not updating array size
  • Starting loop at wrong index
5. Given an array arr of size n, you want to delete the first element multiple times until the array is empty. Which approach is the most efficient to handle this repeated deletion without shifting elements every time?
hard
A. Use a variable to track the start index and increment it on each deletion.
B. Shift all elements left on every deletion and decrease size.
C. Create a new array each time with one less element.
D. Reverse the array and delete from the end.

Solution

  1. Step 1: Understand cost of shifting on repeated deletions

    Shifting elements left every time costs O(n) per deletion, inefficient for many deletions.
  2. Step 2: Use a start index pointer

    Keep a start index that moves forward on each deletion, avoiding shifting.
  3. Step 3: Adjust size accordingly

    Decrease size or track remaining elements using start index and size.
  4. Final Answer:

    Use a variable to track the start index and increment it on each deletion. -> Option A
  5. Quick Check:

    Track start index to avoid shifting [OK]
Hint: Track start index to delete efficiently [OK]
Common Mistakes:
  • Shifting elements every time causing slow code
  • Creating new arrays repeatedly wasting memory
  • Reversing array unnecessarily
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