Bird
Raised Fist0
DSA Cprogramming~20 mins

Array Access and Update at Index in DSA C - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Array Access 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 updating an array element?
Consider the following C code that updates an element in an array. What will be the printed output?
DSA C
int arr[5] = {10, 20, 30, 40, 50};
arr[2] = 100;
for(int i = 0; i < 5; i++) {
    printf("%d ", arr[i]);
}
A10 20 30 40 50
B10 20 100 40 100
C10 20 100 40 50
D10 20 100 50 50
Attempts:
2 left
💡 Hint
Remember that array indices start at 0, so arr[2] is the third element.
❓ Predict Output
intermediate
2:00remaining
What happens when accessing an array out of bounds?
What is the output or behavior of this C code snippet?
DSA C
int arr[3] = {1, 2, 3};
printf("%d", arr[5]);
ACompilation error
B0
C3
DUndefined behavior (may print garbage or crash)
Attempts:
2 left
💡 Hint
Accessing outside the array size is not safe in C.
🔧 Debug
advanced
2:00remaining
Identify the error in updating array elements
What error will this C code produce when compiled or run?
DSA C
int arr[4] = {5, 10, 15, 20};
arr[4] = 25;
printf("%d", arr[4]);
AUndefined behavior at runtime
BCompilation error: array index out of bounds
CRuns and prints 25
DRuntime segmentation fault
Attempts:
2 left
💡 Hint
Array indices go from 0 to size-1.
❓ Predict Output
advanced
2:00remaining
What is the final array after multiple updates?
Given the following code, what is the final printed array?
DSA C
int arr[5] = {1, 2, 3, 4, 5};
arr[0] = arr[4];
arr[4] = arr[1];
arr[1] = 10;
for(int i = 0; i < 5; i++) {
    printf("%d ", arr[i]);
}
A5 10 3 4 2
B1 10 3 4 2
C5 2 3 4 10
D5 1 3 4 10
Attempts:
2 left
💡 Hint
Track each assignment step by step.
🧠 Conceptual
expert
2:00remaining
How many elements are in the array after this declaration?
What is the number of elements in this array in C?
DSA C
int arr[] = {7, 14, 21, 28, 35, 42};
A5
B6
C7
DUndefined (needs explicit size)
Attempts:
2 left
💡 Hint
When size is omitted, the compiler counts the initializer elements.

Practice

(1/5)
1. What does the expression arr[2] do in an array named arr?
easy
A. Accesses the element at index 0 of the array
B. Accesses the element at index 2 of the array
C. Updates the element at index 2 to zero
D. Deletes the element at index 2

Solution

  1. Step 1: Understand array indexing

    Arrays use zero-based indexing, so index 2 means the third element.
  2. Step 2: Access element at index 2

    The expression arr[2] retrieves the value stored at the third position in the array.
  3. Final Answer:

    Accesses the element at index 2 of the array -> Option B
  4. Quick Check:

    arr[2] means third element access [OK]
Hint: Remember arrays start at index 0, so arr[2] is third element [OK]
Common Mistakes:
  • Thinking index starts at 1 instead of 0
  • Confusing access with update or delete
  • Assuming arr[2] changes the array
2. Which of the following is the correct syntax to update the 4th element of an integer array arr to 10 in C?
easy
A. arr[3] = 10;
B. arr(4) = 10;
C. arr[4] == 10;
D. arr{3} = 10;

Solution

  1. Step 1: Identify correct array indexing syntax

    In C, arrays use square brackets with zero-based indexing, so the 4th element is at index 3.
  2. Step 2: Use assignment operator correctly

    To update, use single equals =, so arr[3] = 10; is correct.
  3. Final Answer:

    arr[3] = 10; -> Option A
  4. Quick Check:

    Use arr[index] = value; with zero-based index [OK]
Hint: Use square brackets and single = for update, zero-based index [OK]
Common Mistakes:
  • Using parentheses or braces instead of brackets
  • Using double equals (==) instead of assignment (=)
  • Using wrong index number for 4th element
3. What will be the output of the following C code?
int arr[5] = {1, 2, 3, 4, 5};
arr[1] = arr[3] + 2;
printf("%d", arr[1]);
medium
A. 6
B. 4
C. 5
D. 7

Solution

  1. Step 1: Evaluate the expression arr[3] + 2

    arr[3] is the 4th element, which is 4. Adding 2 gives 6.
  2. Step 2: Assign and print arr[1]

    arr[1] is updated to 6, then printed, so output is 6.
  3. Final Answer:

    6 -> Option A
  4. Quick Check:

    arr[3]=4 + 2 = 6 printed [OK]
Hint: Remember arr[3] is 4, add 2, assign to arr[1], print arr[1] [OK]
Common Mistakes:
  • Confusing index 1 with index 3 values
  • Adding incorrectly or forgetting zero-based index
  • Printing wrong array element
4. Identify the error in the following C code snippet:
int arr[3] = {5, 10, 15};
arr[3] = 20;
printf("%d", arr[3]);
medium
A. Syntax error in array declaration
B. Missing semicolon after assignment
C. Array index out of bounds error
D. Incorrect printf format specifier

Solution

  1. Step 1: Check array size and valid indices

    Array size is 3, valid indices are 0, 1, 2. Index 3 is out of bounds.
  2. Step 2: Understand consequences of out of bounds access

    Accessing or assigning arr[3] causes undefined behavior or runtime error.
  3. Final Answer:

    Array index out of bounds error -> Option C
  4. Quick Check:

    Index 3 invalid for size 3 array [OK]
Hint: Array indices go from 0 to size-1 only [OK]
Common Mistakes:
  • Using index equal to array size
  • Ignoring zero-based indexing
  • Assuming no error for out of bounds
5. Given an integer array arr of size 6 initialized as {2, 4, 6, 8, 10, 12}, which code snippet correctly doubles the value at index 4 and then prints the entire array?
hard
A. arr[4] = arr[4] + 2; for(int i=0; i<5; i++) printf("%d ", arr[i]);
B. arr[5] = arr[4] * 2; for(int i=0; i<=6; i++) printf("%d ", arr[i]);
C. arr[4] *= 2; for(int i=1; i<6; i++) printf("%d ", arr[i]);
D. arr[4] = arr[4] * 2; for(int i=0; i<6; i++) printf("%d ", arr[i]);

Solution

  1. Step 1: Correctly update value at index 4

    Index 4 is the 5th element. Doubling means multiply by 2. Both arr[4] = arr[4] * 2; and arr[4] *= 2; work, but check loop next.
  2. Step 2: Print entire array correctly

    Array size is 6, so loop must run from 0 to 5 (i<6). arr[4] = arr[4] * 2; for(int i=0; i<6; i++) printf("%d ", arr[i]); uses correct loop range and prints all elements.
  3. Final Answer:

    arr[4] = arr[4] * 2; for(int i=0; i<6; i++) printf("%d ", arr[i]); -> Option D
  4. Quick Check:

    Update index 4, loop 0 to 5 to print all [OK]
Hint: Use zero-based index and loop from 0 to size-1 [OK]
Common Mistakes:
  • Using wrong index for update
  • Looping beyond array size causing errors
  • Printing partial array missing elements
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