简答题
👁️ 浏览量:

试题题干

#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。