Question:medium

What is printed by the following ANSI C program?

#include<stdio.h>
int main(int argc, char argv[])
{
	int a[3][3][3] = {
		{1, 2, 3, 4, 5, 6, 7, 8, 9},
		{10, 11, 12, 13, 14, 15, 16, 17, 18},
		{19, 20, 21, 22, 23, 24, 25, 26, 27}};
	int i = 0, j = 0, k = 0;
	for( i = 0; i < 3; i++){
		for(k = 0; k < 3; k++)
			printf("%d ", a[i][j][k]);
		printf("\n");
	}
	return 0;
}

Show Hint

When working with 3D arrays, remember that the first index refers to the "depth" of the array, the second index refers to rows, and the third refers to columns. The nested loops help access each element based on its indices.
Updated On: Jan 30, 2026
  • 1 2 3
    10 11 12
    19 20 21
  • 1 4 7
    10 13 16
    19 22 25
  • 1 2 3
    4 5 6
    7 8 9
  • 1 2 3
    13 14 15
    25 26 27
Show Solution

The Correct Option is A

Solution and Explanation

The program declares a three-dimensional array a[3][3][3], which contains a total of 27 elements stored in row-major order (as per C array storage).

The nested loops are structured such that:
- The outer loop controls the first index i.
- The middle loop fixes the second index at j = 0.
- The inner loop varies the third index k from 0 to 2.

Iteration-wise explanation:

When i = 0 and j = 0, the inner loop prints: \[ a[0][0][0],\ a[0][0][1],\ a[0][0][2] \] which correspond to: \[ 1\ 2\ 3 \]

When i = 1 and j = 0, the inner loop prints: \[ a[1][0][0],\ a[1][0][1],\ a[1][0][2] \] which correspond to: \[ 10\ 11\ 12 \]

When i = 2 and j = 0, the inner loop prints: \[ a[2][0][0],\ a[2][0][1],\ a[2][0][2] \] which correspond to: \[ 19\ 20\ 21 \]

Final Output: \[ \text{1 2 3} \\ \text{10 11 12} \\ \text{19 20 21} \]

This matches Option (A).

Was this answer helpful?
0