问题 单项选择题

有以下程序
main()

int a[3][2]=0,(*ptr)[2],i,j;
for(i=0;i<2;i++) ptr=a+i; scanf("%d",ptr); ptr++;
for(i=0;i<3;i++)
for(j=0;j<2;j++)printf("%2d",a[i][j]);
printf("\n");


若运行时输入:1 2 3<回车>,则输出结果是

A.产生错误信息

B.1 0
2 0
0 0

C.1 2
3 0
0 0

D.1 0
2 0
3 0

答案

参考答案:B

解析:二维数组指针第一个for循环中,第一次循环ptr指向a[0][0]的首地址,所以经过输入语句,a[0][0]=1;第二次循环ptr指向a[1][0]的首地址,所以经过输入语句,a[1][0]=2。此时,除了这两个元素,其他元素没有改变,等于初值0。

单项选择题
问答题