Bird
Raised Fist0
Cprogramming~5 mins

Two-dimensional arrays in C - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a two-dimensional array in C?
A two-dimensional array in C is like a table with rows and columns. It stores data in a grid format, where each element is accessed by two indexes: one for the row and one for the column.
Click to reveal answer
beginner
How do you declare a two-dimensional array of integers with 3 rows and 4 columns in C?
You declare it like this: int arr[3][4]; This means the array has 3 rows and 4 columns.
Click to reveal answer
beginner
How do you access the element in the 2nd row and 3rd column of a 2D array named arr?
You use arr[1][2]. Remember, counting starts at 0, so the 2nd row is index 1 and the 3rd column is index 2.
Click to reveal answer
intermediate
How can you initialize a 2D array with values at the time of declaration?
You can write: int arr[2][3] = {{1, 2, 3}, {4, 5, 6}}; This sets the first row to 1, 2, 3 and the second row to 4, 5, 6.
Click to reveal answer
intermediate
What happens if you try to access an element outside the declared size of a 2D array?
Accessing outside the declared size causes undefined behavior. This means the program might crash, show wrong data, or behave unpredictably. Always stay within the array bounds.
Click to reveal answer
How do you declare a 2D array with 5 rows and 2 columns in C?
Aint arr[5][2];
Bint arr[2][5];
Cint arr(5,2);
Dint arr[5,2];
What is the index of the first element in a 2D array in C?
A[0][0]
B[1][1]
C[0][1]
D[1][0]
How do you access the element in the 3rd row and 1st column of arr?
Aarr[0][1]
Barr[2][0]
Carr[1][2]
Darr[3][1]
Which of these initializes a 2x2 array with all zeros?
Aint arr[2][2] = {{0, 0}, {0, 0}};
Bint arr[2][2] = {1};
Cint arr[2][2] = 0;
Dint arr[2][2] = {0};
What is the risk of accessing arr[4][5] if arr is declared as int arr[3][4]?
AIt returns zero
BNo risk, it's valid
CUndefined behavior, possible crash
DIt automatically resizes the array
Explain how to declare, initialize, and access elements in a two-dimensional array in C.
Think of a table with rows and columns.
You got /3 concepts.
    What are the dangers of accessing elements outside the bounds of a two-dimensional array in C?
    Imagine trying to open a door that doesn't exist.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is a two-dimensional array in C?
      easy
      A. An array of arrays, storing data in rows and columns
      B. A single list of numbers stored in a line
      C. A function that returns multiple values
      D. A variable that holds only one value

      Solution

      1. Step 1: Understand array structure

        A two-dimensional array stores data in a grid format with rows and columns.
      2. Step 2: Compare options

        Only An array of arrays, storing data in rows and columns describes this structure as an array of arrays.
      3. Final Answer:

        An array of arrays, storing data in rows and columns -> Option A
      4. Quick Check:

        2D array = array of arrays [OK]
      Hint: Think of a table with rows and columns [OK]
      Common Mistakes:
      • Confusing 2D arrays with single arrays
      • Thinking 2D arrays are functions
      • Assuming 2D arrays hold only one value
      2. Which of the following is the correct way to declare a 3x3 integer two-dimensional array in C?
      easy
      A. int arr(3,3);
      B. int arr[3][3];
      C. int arr[3,3];
      D. int arr{3}{3};

      Solution

      1. Step 1: Recall C array declaration syntax

        In C, arrays use square brackets with sizes inside, like arr[rows][columns].
      2. Step 2: Check each option

        Only int arr[3][3]; uses correct syntax: int arr[3][3];
      3. Final Answer:

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

        Use square brackets for array sizes [OK]
      Hint: Use square brackets for array sizes, not parentheses [OK]
      Common Mistakes:
      • Using parentheses instead of square brackets
      • Using commas inside brackets
      • Using curly braces for declaration
      3. What will be the output of the following C code?
      int arr[2][2] = {{1, 2}, {3, 4}};
      printf("%d", arr[1][0]);
      medium
      A. 3
      B. 1
      C. 2
      D. 4

      Solution

      1. Step 1: Understand array initialization

        The array arr has two rows: first row {1, 2}, second row {3, 4}.
      2. Step 2: Access element arr[1][0]

        Row index 1 is second row, column index 0 is first element in that row, which is 3.
      3. Final Answer:

        3 -> Option A
      4. Quick Check:

        arr[1][0] = 3 [OK]
      Hint: Remember indexing starts at 0 for rows and columns [OK]
      Common Mistakes:
      • Confusing row and column indexes
      • Starting index at 1 instead of 0
      • Mixing up elements in initialization
      4. Identify the error in the following C code snippet:
      int matrix[2][3];
      matrix[2][1] = 5;
      medium
      A. Wrong data type for matrix
      B. No error, code is correct
      C. Syntax error due to missing semicolon
      D. Index out of bounds error on matrix[2][1]

      Solution

      1. Step 1: Check array size and valid indexes

        matrix is declared with 2 rows (0 and 1) and 3 columns (0 to 2).
      2. Step 2: Analyze matrix[2][1]

        Row index 2 is invalid because valid rows are 0 and 1 only, causing out of bounds error.
      3. Final Answer:

        Index out of bounds error on matrix[2][1] -> Option D
      4. Quick Check:

        Row index must be less than 2 [OK]
      Hint: Array indexes start at 0 and go to size-1 [OK]
      Common Mistakes:
      • Using index equal to array size
      • Ignoring zero-based indexing
      • Assuming no error for out-of-range access
      5. Given the 2D array declaration int grid[3][3] = {{1,2,3},{4,5,6},{7,8,9}};, which code snippet correctly calculates the sum of all elements?
      hard
      A. int sum=0; for(int i=1;i<3;i++) for(int j=1;j<3;j++) sum += grid[i][j]; printf("%d", sum);
      B. int sum=0; for(int i=0;i<=3;i++) for(int j=0;j<=3;j++) sum += grid[i][j]; printf("%d", sum);
      C. int sum=0; for(int i=0;i<3;i++) for(int j=0;j<3;j++) sum += grid[i][j]; printf("%d", sum);
      D. int sum=0; for(int i=0;i<3;i++) sum += grid[i]; printf("%d", sum);

      Solution

      1. Step 1: Understand array size and loops

        grid has 3 rows and 3 columns, so indexes go from 0 to 2.
      2. Step 2: Check loop bounds and summation

        int sum=0; for(int i=0;i<3;i++) for(int j=0;j<3;j++) sum += grid[i][j]; printf("%d", sum); uses correct loop bounds (i<3, j<3) and sums all elements correctly.
      3. Step 3: Analyze other options

        int sum=0; for(int i=0;i<=3;i++) for(int j=0;j<=3;j++) sum += grid[i][j]; printf("%d", sum); uses <=3 causing out-of-bounds access; the option starting loops at 1 misses first row and column elements; the option trying sum += grid[i] is invalid for 2D arrays.
      4. Final Answer:

        int sum=0; for(int i=0;i<3;i++) for(int j=0;j<3;j++) sum += grid[i][j]; printf("%d", sum); -> Option C
      5. Quick Check:

        Use correct loop bounds and access grid[i][j] [OK]
      Hint: Loop from 0 to size-1 for both rows and columns [OK]
      Common Mistakes:
      • Using <= instead of < in loops
      • Starting loops at 1 instead of 0
      • Trying to add entire row instead of 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