有以下程序: 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]); }

admin2011-06-10  26

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

选项 A、0  1  2
B、1  2 3
C、2 3  4
D、3 4  5

答案D

解析 本题的考点是C语言的指针。p指向二维数组a的首地址,而二维数组是按行存放的。因此“。for(i=0;i<9;i++)p=i;”的结果是等价于a[3][3]={0,1,2,3,4,5,6,7,8},也就是a[3][3]={{0,1,2),{3,4,5),{6,7,8}}。因此a[1](i=0,1,2)的结果是3、4、5。输出结果应该是:3 4 5。
转载请注明原文地址:https://kaotiyun.com/show/13Pp777K
0

最新回复(0)