C语言填空题,以下程序的输出结果是()我想知道逻辑推理过程 A.4 2 1 1 B.0 0 0 8 C.4 6 7 8 D.8 8 8 8

2025-02-27 17:09:46
推荐回答(2个)
回答1:

无论s[k]为'1'、'2'、'3'、'4',都会执行i = 3,原因是各个case语句后面都没有break语句,所以v[k]++,就是v[3]++,字符串s中只有'1'、'2'、'3'、'4'四中字符,共有8个,也就是说,v[3]++共执行8次,所以输出结果是B:0008。

回答2:

答案是B.0 0 0 8
for (k=0;s[k];k++;)
在这for循环中,总共执行了8次,s[k]的值:1 2 1 3 4 2 1 1
如果s[k]为1时,
switch(1)
{
...........
}在这switch中匹配 case '1':i=0;此时i的值为1,但是因为没有break,那么switch会一直执行下去,直到 i = 3,其它的s[k]的值也一样,所以最后都有v[3]++;因为for执行了8次,v[3]也自加了8次,所以答案为B