问题 单项选择题

下面的程序段运行后,输出结果是
int i,j,x=0;
static int a[8][8];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=2*i+j;
for(i=0;i<8;i++)
x+=a[i][j];
printf("%d",x);

A) 9
B) 0
C) 不确定值
D) 18

答案

参考答案:B

解析: 本题主要考查的是用二维数组首地址和下标来引用二维数组元素的方法。通过分析可知,程序中的双重循环定义了一个如下的二维数组:
0 1 2 0 0 0 0 0
2 3 4 0 0 0 0 0
4 5 6 0 0 0 0 0
0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0
由于数组的下标是从0开始的,所以二维数组元素a[i][j]表示的是二维数组a的第i+1行、第j+1列对应位置的元素。从第一次的嵌套循环结束后j的值为3,
for(i=0;i<8;i--)
x+=a[i][j]

计算题
单项选择题