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

admin2016-12-25  29

问题 下列程序的输出结果是(    )
    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、0  2  1  8
B、0  0  0  8
C、8  8  8  8
D、4  6  7  8

答案B

解析 *s="12134211",把字符串的首地址给予指针s,另外case语句中都无break,一旦case语句执行会一直执行到最后一句,i=3,因此v++;只给v[3]增1。字符串的长度为8,都能在switch语句中执行到case语句,所以输出0 0 0 8。
转载请注明原文地址:https://kaotiyun.com/show/UtAx777K
0

最新回复(0)