选择题

有以下程序:

#include
main()
{
   char *s="120119110";
   int n0,n1,n2,nn,i;
   n0=n1=n2=nn=i=0;
   do
   {
      switch(s[i++])
      {
         default:nn++;
         case '0':n0++;
         case '1':n1++;
         case '2':n2++;
      }
   }while(s[i]);
   printf("n0=%d,n1=%d,n2=%d,nn=%d\n",n0,n1,n2,nn);
}

程序的运行结果是(     )。

【正确答案】 A
【答案解析】

本题执行过程为: s[0]='1', 匹配 case '1', n1=1, n2=1; s[1]='2', 匹配 case '2', n2=2; s[2]='0', 匹配 case '0', n0=1, n1=2, n2=3; s[3]='1', 匹配 case '1', n1=3, n2=4; s[4]='1', 匹配 case '1', n1=4, n2=5; s[5]='9',匹配 default, nn=1, n0=2, n1=5, n2=6; s[6]='1', 匹配 case '1', n1=6, n2=7; s[7]='1', 匹配 case '1', n1=7, n2=8;s[8]='0', 匹配 case '0', n0=3, n1=8, n2=9; s[9]='\0', 退出循环。 输出 n0, n1, n2, nn 为 3, 8, 9, 1。 答案选择 A 选项。