问题 单项选择题

有以下程序:
#include <stdio.h>
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 ++ ) prinff( "%2d" ,a[i] [j] );
prinff(" \n" );
若运行时输入:1 2 3 <回车>,则输出结果是( )。

A.产生错误信息

B.10
20
00

C.12
30
00

D.10
20
30

答案

参考答案:B

解析: 程序中a[3)[2]={0}将数组元素全部初始化为0,指针变量ptr指向包含2个元素的一维数组。在第一个for语句的循环体中ptr=a+i;语句用于将指针变量ptr指向第i行的数组元素,通过两次循环,分别给二维数组a的第。行的第1个元素和第1行的第1个元素赋了值1和2,即a[0][0]=1,a[1][0]=2。

选择题
单项选择题