单选题
有以下程序:
#include
void main()
{int a[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=10;
for(i=0;i<3;i++)
for(j=1;j<=i;j++)
s+=a[i][a[j][i/]/];
printf(''%d\n'',s);
}
程序运行后的输出结果是( )。
【正确答案】
D
【答案解析】解析:此题考查for循环执行条件和数组元素的调用。for(ex1;ex2;ex3)ex4;的执行过程是:计算ex1;判断ex2,若ex2为真,执行ex4(若ex2为假将不执行ex4);计算ex3;判断ex2的值进行下一次循环。题目中第1层for循环执行3次,i=0,1,2;但第2层for循环要根据第1层for循环的i值判断,i=0时,i<=i为假,所以不执行循环体,i=1时,执行1次,s+=a[1][a[1][1/]/],i=2时,执行2次,s+=a[2][a[1][2/]/]和s+=a[2][a[2][2/]/]。对于数组的元素调用可以用数组名后跟数组下标引用元素的形式,数组下标可以是表达式,所以执行s+=a[1][1],s+=a[2][2],s+=a[2][2],结果为15。