选择题 35.  以下程序的运行结果是______。
    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。