Bird
Raised Fist0
C++programming~20 mins

Multi-dimensional arrays in C++ - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Multi-dimensional arrays Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of nested loop accessing 2D array
What is the output of the following C++ code?
C++
#include <iostream>
int main() {
    int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 3; j++) {
            std::cout << arr[i][j] << " ";
        }
    }
    return 0;
}
A1 4 2 5 3 6
B1 2 3 4 5 6
C6 5 4 3 2 1
D1 2 3 6 5 4
Attempts:
2 left
💡 Hint
Think about how the nested loops iterate rows then columns.
❓ Predict Output
intermediate
2:00remaining
Value of element after assignment in 3D array
What is the value of arr[1][0][2] after running this code?
C++
#include <iostream>
int main() {
    int arr[2][2][3] = {{{1,2,3},{4,5,6}}, {{7,8,9},{10,11,12}}};
    arr[1][0][2] = arr[0][1][1] + arr[1][1][0];
    std::cout << arr[1][0][2];
    return 0;
}
A15
B11
C9
DError
Attempts:
2 left
💡 Hint
Check the values at arr[0][1][1] and arr[1][1][0] and add them.
🔧 Debug
advanced
2:00remaining
Identify the error in 2D array initialization
What error will this code produce?
C++
#include <iostream>
int main() {
    int arr[2][2] = {1, 2, 3, 4, 5};
    std::cout << arr[1][1];
    return 0;
}
ARuntime error: out of bounds access
BOutputs 5
COutputs 4
DCompilation error: too many initializers
Attempts:
2 left
💡 Hint
Check how many values are allowed for a 2x2 array.
❓ Predict Output
advanced
2:00remaining
Sum of elements in jagged 2D array simulation
What is the output of this code simulating a jagged array using pointers?
C++
#include <iostream>
int main() {
    int row1[] = {1, 2};
    int row2[] = {3, 4, 5};
    int* arr[2] = {row1, row2};
    int sizes[2] = {2, 3};
    int sum = 0;
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < sizes[i]; j++) {
            sum += arr[i][j];
        }
    }
    std::cout << sum;
    return 0;
}
A12
B14
C15
DError
Attempts:
2 left
💡 Hint
Add all elements in both rows carefully.
🧠 Conceptual
expert
2:00remaining
Memory layout of multi-dimensional arrays
In C++, how are multi-dimensional arrays stored in memory?
ARow-major order: rows stored contiguously, then columns
BEach element stored at random memory locations
CRandom order depending on compiler
DColumn-major order: columns stored contiguously, then rows
Attempts:
2 left
💡 Hint
Think about how arrays are laid out in C++ standard.

Practice

(1/5)
1. What is a multi-dimensional array in C++?
easy
A. A variable that holds a single number
B. An array that stores only one value
C. A function that returns multiple values
D. An array with more than one index, like rows and columns

Solution

  1. Step 1: Understand array dimensions

    A multi-dimensional array uses multiple indexes to access elements, such as row and column in a table.
  2. Step 2: Compare options

    Only An array with more than one index, like rows and columns describes an array with more than one index, matching the concept of multi-dimensional arrays.
  3. Final Answer:

    An array with more than one index, like rows and columns -> Option D
  4. Quick Check:

    Multi-dimensional array = multiple indexes [OK]
Hint: Think of rows and columns in a table for multi-dimensional arrays [OK]
Common Mistakes:
  • Confusing arrays with single values
  • Thinking functions return multiple values
  • Mixing variables with arrays
2. Which of the following is the correct way to declare a 2D array of integers with 3 rows and 4 columns in C++?
easy
A. int arr[3][4];
B. int arr(3,4);
C. int arr[4][3];
D. int arr{3,4};

Solution

  1. Step 1: Recall C++ 2D array syntax

    The correct syntax uses square brackets with sizes: int arr[rows][columns];
  2. Step 2: Check each option

    int arr[3][4]; uses int arr[3][4]; which means 3 rows and 4 columns, correct syntax. Others are invalid or reversed.
  3. Final Answer:

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

    Use square brackets for dimensions [OK]
Hint: Use square brackets for rows and columns in declaration [OK]
Common Mistakes:
  • Using parentheses instead of brackets
  • Swapping row and column sizes
  • Using curly braces for declaration
3. What is the output of the following C++ code?
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
std::cout << arr[1][2];
medium
A. 6
B. 3
C. 4
D. 2

Solution

  1. Step 1: Understand array initialization

    The array has 2 rows and 3 columns: first row {1,2,3}, second row {4,5,6}.
  2. Step 2: Access element arr[1][2]

    Row index 1 is second row, column index 2 is third element: value is 6.
  3. Final Answer:

    6 -> Option A
  4. Quick Check:

    arr[1][2] = 6 [OK]
Hint: Remember indexes start at 0; arr[1][2] is second row, third column [OK]
Common Mistakes:
  • Confusing row and column indexes
  • Forgetting zero-based indexing
  • Reading wrong element from array
4. Identify the error in this C++ code snippet:
int matrix[2][2] = {{1, 2}, {3}};
std::cout << matrix[1][1];
medium
A. Missing value in second row initialization
B. Array size mismatch causes compile error
C. No error, code runs and prints 0
D. Incorrect use of std::cout syntax

Solution

  1. Step 1: Check array initialization

    The second row has only one value {3}, missing one element for 2 columns.
  2. Step 2: Understand C++ behavior for missing elements

    Missing elements are initialized to 0 automatically, so matrix[1][1] is 0.
  3. Step 3: Check output statement

    std::cout syntax is correct, so it prints 0 without error.
  4. Final Answer:

    No error, code runs and prints 0 -> Option C
  5. Quick Check:

    Missing elements default to 0 in arrays [OK]
Hint: Missing elements in array init become zero, no error [OK]
Common Mistakes:
  • Assuming missing elements cause errors
  • Thinking std::cout syntax is wrong
  • Expecting garbage values instead of zero
5. How can you sum all elements of a 3x3 integer array named grid in C++?
hard
A. Use std::accumulate directly on the 2D array
B. Use nested loops to add each element to a sum variable
C. Use a single loop from 0 to 8 to sum elements
D. Add only the first row elements

Solution

  1. Step 1: Understand 2D array traversal

    To access all elements in a 3x3 array, use two loops: one for rows, one for columns.
  2. Step 2: Sum elements with nested loops

    Inside inner loop, add each element grid[i][j] to a sum variable to get total sum.
  3. Final Answer:

    Use nested loops to add each element to a sum variable -> Option B
  4. Quick Check:

    Nested loops sum all elements [OK]
Hint: Use two loops: outer for rows, inner for columns [OK]
Common Mistakes:
  • Using single loop ignoring 2D structure
  • Summing only part of the array
  • Trying to use std::accumulate on 2D array directly
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