有以下程序: #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]]; prin

admin2020-10-26  20

问题 有以下程序:
#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[a[j]];
printf(’’%d\n’’,s);
}
程序运行后的输出结果是(  )。

选项 A、12
B、13
C、11
D、15

答案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。
转载请注明原文地址:https://kaotiyun.com/show/c33p777K
0

最新回复(0)