试题题干
#include<stdio.h>
void main()
{
int i,j,s,a[][3]={{1,2,3},{4,5},{6}};
for(s=0,i=0;i<3;i++)
switch(i)
{
case 0:
case 1:
case 2:for(j=0;j<3;j++)s+=a[i][j];break;
}
printf("s=%d\n",s);
}
参考答案
试题解析
第一次循环,当i=0时,执行switch语句,case0和case1后面没有表达式和break;语句,执行case2,因为for(j=0;j<3;j++)即j的值为0,1,2,产生的数据为a[0][0],a[0][1],a[0][2]即为1,2,3,则s的值为s=1+2+3=6;
第二次循环,当i=1时,执行case2,即j的值为0,1,2,产生的数据为a[1][0],a[1][1],a[1][2]即为4,5,0,则s的值为s=6+4+5=15;
第三次循环,当i=2时,执行case2,即j的值为0,1,2,产生的数据为a[2][0],a[2][1],a[2][2]即为6,0,0,则s的值为s=15+6=21;故输出的值为s=21。