选择题
以下程序的输出结果是______。
main()
{char*s='12134211';
int v[4]={0, 0, 0, 0}, k, i;
for(k=0; s[k]; k++)
{switch(s[k])
{case '1': i=0;
case '2': i=1;
case '3': i=2;
case '4': i=3; }
}
v[i]++;
}
for(k=0; k<4; k++)printf('%d', v[k]);
【正确答案】
B
【答案解析】本题考查switch,case语句,当k=0时,循环体成立,执行switch后表达式的值为'1',执行case'1',i的值为0,因为没有break语句,继续执行其后的语句,到最后一个语句时i的值为3,此时v[i]++,v[3]=1,接着执行k++后,k的值为1,当k=1时,循环成立。执行switch后的表达式的值为'2',执行case'2',i的值为1,因为没有break语句,继续执行其后的语句,到最后一个语句时,i的值为3,此时v[i]++,v[3]=2,接着执行k++后,k的值为2,依次下去,case'4'也会执行,最后i的值一定为3,到v[3]=8时循环结束,而v[0]~v[2]的值一直没有变化,故选择B选项。