以下程序的输出结果是( )。 main() { char*s="12134211"; int v[4]={0,0,0,0},k,i; for(k=0;s[k];k++) { switch(s

admin2012-12-03  28

问题 以下程序的输出结果是(    )。
  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++;
  }
  for(k=0;k<4;k++)printf("%d",v[k]);

选项 A、4 2 1 1
B、0 0 0 8
C、4 6 7 8
D、8 8 8 8

答案B

解析 本题考查swltch,case语句,当k=0时,循环体成立,执行switch后表达式的值为’1’,执行case’1’,i的值为0,因为没有break语句,继续执行其后的语句,到最后一个语句时i的值为3,此时v++,v[3]=1,接着执行k++后,k的值为1,当k=1时,循环成立。执行switch后的表达式的值为’2’,执行case’2’,i的值为1,因为没有break语句,继续执行其后的语句,到最后一个语句时,i的值为3,此时v++,v[3]=2,接着执行k++后,k的值为2,依次下去,case’4’也会执行,最后i的值一定为3,到v[3]=8时循环结束,而v[0]~v[2]的值一直没有变化,故选择B选项。
转载请注明原文地址:https://jikaoti.com/ti/z1B0FFFM
0

最新回复(0)