Bird
Raised Fist0
Cprogramming~20 mins

Array traversal in C - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Array Traversal Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of array traversal with pointer arithmetic
What is the output of this C program?
C
#include <stdio.h>

int main() {
    int arr[] = {10, 20, 30, 40, 50};
    int *p = arr;
    for (int i = 0; i < 5; i++) {
        printf("%d ", *(p + i));
    }
    return 0;
}
A10 20 30 40 50
B50 40 30 20 10
C10 20 30 40 0
DCompilation error
Attempts:
2 left
💡 Hint
Remember that pointer arithmetic moves through the array elements in order.
❓ Predict Output
intermediate
2:00remaining
Output of array traversal with index and pointer
What will be printed by this C code?
C
#include <stdio.h>

int main() {
    int arr[3] = {1, 2, 3};
    int *p = arr;
    for (int i = 0; i < 3; i++) {
        printf("%d ", p[i]);
    }
    return 0;
}
A1 2 3
B3 2 1
C0 0 0
DRuntime error
Attempts:
2 left
💡 Hint
Pointer p points to the first element, so p[i] accesses elements by index.
❓ Predict Output
advanced
2:00remaining
Output of nested array traversal
What is the output of this C program?
C
#include <stdio.h>

int main() {
    int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}};
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            printf("%d ", matrix[i][j]);
        }
    }
    return 0;
}
A1 4 2 5 3 6
B1 2 3 4 5 6
C6 5 4 3 2 1
DCompilation error
Attempts:
2 left
💡 Hint
The outer loop goes through rows, inner loop through columns.
❓ Predict Output
advanced
2:00remaining
Output of pointer traversal with increment
What does this C program print?
C
#include <stdio.h>

int main() {
    int arr[] = {7, 8, 9};
    int *p = arr;
    for (int i = 0; i < 3; i++) {
        printf("%d ", *p++);
    }
    return 0;
}
A7 7 7
B9 8 7
C7 8 9
DCompilation error
Attempts:
2 left
💡 Hint
The *p++ means print value at p, then move p to next element.
❓ Predict Output
expert
2:00remaining
Value of variable after complex array traversal
What is the value of variable sum after running this C code?
C
#include <stdio.h>

int main() {
    int arr[4] = {2, 4, 6, 8};
    int *p = arr + 1;
    int sum = 0;
    for (int i = 0; i < 3; i++) {
        sum += *(p++);
    }
    printf("%d", sum);
    return 0;
}
A14
BRuntime error
C20
D18
Attempts:
2 left
💡 Hint
Pointer p starts at arr[1], sum adds three elements from there.

Practice

(1/5)
1. What does array traversal mean in C programming?
easy
A. Adding elements to the array
B. Deleting elements from the array
C. Visiting each element of the array one by one
D. Sorting the array elements

Solution

  1. Step 1: Understand the term 'array traversal'

    Array traversal means going through each element in the array in order.
  2. Step 2: Match the definition with options

    Only Visiting each element of the array one by one describes visiting each element one by one, which is the correct meaning.
  3. Final Answer:

    Visiting each element of the array one by one -> Option C
  4. Quick Check:

    Array traversal = visiting elements [OK]
Hint: Traversal means visiting all elements one by one [OK]
Common Mistakes:
  • Confusing traversal with adding or deleting elements
  • Thinking traversal means sorting
  • Assuming traversal skips elements
2. Which of the following is the correct syntax to traverse an array arr of size n in C?
easy
A. for(int i = 0; i < n; i++)
B. for(int i = 1; i <= n; i++)
C. for(int i = 1; i < n; i++)
D. for(int i = 0; i <= n; i++)

Solution

  1. Step 1: Understand array indexing in C

    Arrays start at index 0 and go up to n-1 for size n.
  2. Step 2: Check loop conditions

    The loop must start at 0 and run while i is less than n (not equal), so for(int i = 0; i < n; i++) is correct.
  3. Final Answer:

    for(int i = 0; i < n; i++) -> Option A
  4. Quick Check:

    Loop from 0 to n-1 = correct traversal [OK]
Hint: Loop from 0 to less than n for array traversal [OK]
Common Mistakes:
  • Using <= n causes out-of-bounds error
  • Starting loop at 1 misses first element
  • Using wrong loop condition
3. What will be the output of the following code?
int arr[] = {5, 10, 15};
for(int i = 0; i < 3; i++) {
    printf("%d ", arr[i]);
}
medium
A. 5 10 15 0
B. 15 10 5
C. 10 15 5
D. 5 10 15

Solution

  1. Step 1: Understand the array elements

    The array contains 5, 10, and 15 in order at indices 0, 1, and 2.
  2. Step 2: Trace the loop output

    The loop prints elements from index 0 to 2 in order, so output is "5 10 15 "
  3. Final Answer:

    5 10 15 -> Option D
  4. Quick Check:

    Print elements in order = 5 10 15 [OK]
Hint: Prints elements in order from index 0 to n-1 [OK]
Common Mistakes:
  • Reversing order of output
  • Printing extra zero
  • Starting loop at wrong index
4. Identify the error in the following code snippet for traversing an array arr of size 5:
for(int i = 0; i <= 5; i++) {
    printf("%d ", arr[i]);
}
medium
A. Loop condition should be i < 5 to avoid out-of-bounds access
B. Loop variable should start from 1 instead of 0
C. Array size should be 6 instead of 5
D. No error, code is correct

Solution

  1. Step 1: Check loop condition

    The loop runs while i <= 5, so i goes from 0 to 5 inclusive (6 iterations).
  2. Step 2: Analyze array indexing

    Array indices go from 0 to 4 for size 5. Accessing arr[5] is out-of-bounds and causes error.
  3. Final Answer:

    Loop condition should be i < 5 to avoid out-of-bounds access -> Option A
  4. Quick Check:

    Use i < size to avoid errors [OK]
Hint: Use i < size, not i <= size, to avoid out-of-bounds [OK]
Common Mistakes:
  • Using <= instead of <
  • Starting loop at 1
  • Ignoring array size limits
5. Given an integer array arr of size n, write a code snippet to find the sum of all elements using array traversal. Which of the following is correct?
hard
A. int sum = 0; for(int i = 1; i < n; i++) { sum += arr[i]; }
B. int sum = 0; for(int i = 0; i < n; i++) { sum += arr[i]; }
C. int sum = 0; for(int i = 0; i <= n; i++) { sum += arr[i]; }
D. int sum = 0; for(int i = n - 1; i >= 0; i--) { sum += arr[i]; }

Solution

  1. Step 1: Understand array indexing and loop range

    Array indices go from 0 to n-1, so loop must run i from 0 to less than n.
  2. Step 2: Check each option for correctness

    int sum = 0; for(int i = 0; i <= n; i++) { sum += arr[i]; } uses i <= n, which accesses arr[n] (out-of-bounds). int sum = 0; for(int i = 1; i < n; i++) { sum += arr[i]; } starts at 1, missing arr[0]. int sum = 0; for(int i = n - 1; i >= 0; i--) { sum += arr[i]; } correctly sums all elements in reverse order, but the question asks for traversal in forward order. int sum = 0; for(int i = 0; i < n; i++) { sum += arr[i]; } correctly sums all elements from 0 to n-1 in forward order.
  3. Final Answer:

    int sum = 0; for(int i = 0; i < n; i++) { sum += arr[i]; } -> Option B
  4. Quick Check:

    Loop from 0 to n-1 sums all elements [OK]
Hint: Sum elements by looping i from 0 to less than n [OK]
Common Mistakes:
  • Using i <= n causing out-of-bounds
  • Starting loop at 1 missing first element
  • Looping backwards with wrong indices
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