问题 单项选择题

有以下程序: main() { int a[3][3],*p.i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]); } 程序运行后的输出结果是( )。

A.0 1 2

B.1 2 3

C.2 3 4

D.3 4 5

答案

参考答案:D

解析:本题中定义的二维数组a[3][3]中9个元素在内存中的排列顺序是:a[0][0],a[0][1], a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函数中,首先定义了二维数组a[3][3],然后定义了—个指针p指向数组a的第1个元素a[0][0]在第一个for循环中,依数组a在内存中的排列顺序为其元素赋从0~8九个值,然后用第二个for循环依次输出a[1][0],a[1][1],a[1][2]三个元素的值。所以,4个选项中选项D符合题意。

单项选择题
多项选择题