填空题 有以下程序:
main()
int x[3][2]=0,1;
for(i=0;i<3;1++)scanf("%d",x[i]);
printf("%3d%3d%3d/n",x[0][0],x[0][1],x[1][0]);

若运行时输入:2 4 6<回车>,则输出结果为______。

  • 1、
【正确答案】 1、2 0 4    
【答案解析】[解析] 本题主要考查的知识点是二维数组。下标运算符“[]”,可以转换成指针运算符“*”的形式,而且一个指针运算符“*”和一个地址运算符“&”可以抵消。因此,x[i]可以看成*(x+i),它等价于&*(*(x+i)+0),即&x[i][0]。由此可见,题目中的for循环,循环3次依次将输入的整数赋给x[0][0]、x[1][0]、x[2][0]。又因为C语言规定:初始化数组时若给的初始值不足,则其余元素均被初始化为0。所以,题目中初始化二维数组x时虽然只使用了一个0,其实起到了将整个数组元素的初值赋为0,scanf函数将x[0][0],x[1][0],x[2][0]分别赋值为2 4 6,其他元素的值仍为0,所以输出结果为20 4。