Question:

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
Hide Solution
collegedunia
Verified By Collegedunia

The Correct Option is A

Solution and Explanation

The program declares a 3D array \(a[3][3][3]\) with 27 elements. The outer loops iterate over the first two dimensions of the array, while the inner loop iterates over the third dimension. Here's the breakdown of the output: 
- The first iteration of the outer loop (`i = 0`) accesses the first set of 9 elements from the 3D array, which are: \(a[0][0][0] = 1, a[0][0][1] = 2, a[0][0][2] = 3\) So, the first row printed is: 1 2 3.
- The second iteration of the outer loop (`i = 1`) accesses the second set of 9 elements: \(a[1][0][0] = 10, a[1][0][1] = 11, a[1][0][2] = 12\) So, the second row printed is: 10 11 12.
- The third iteration of the outer loop (`i = 2`) accesses the third set of 9 elements: \(a[2][0][0] = 19, a[2][0][1] = 20, a[2][0][2] = 21\) So, the third row printed is: 19 20 21.
Thus, the output of the program is: \[ \text{1 2 3} \\ \text{10 11 12} \\ \text{19 20 21} \] This matches Option (A). 
 

Was this answer helpful?
0
0

Top Questions on Programming in C

View More Questions