有以下程序 main() { int a[3][2]={0},(*ptr)[2],i,j; for(i=0;i<2;i++) {ptr=a+i; scanf("%d",ptr); ptr++;} fo

admin2009-04-15  20

问题 有以下程序    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[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

答案2

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

最新回复(0)