C语言选择题解释 急 70

来源:百度知道 编辑:UC知道 时间:2024/06/01 12:52:43
70. main()
{ int i;
for ( i=0; i<3; i++ )
{ switch (i)
{ case 1: printf( "aa ");
case 2: printf( "bb ");
}
}
}
A)aa bb B)aa bb aa C)aa bb bb D)bb bb
答案是A,而且没错,我开始也认为是C,谁能解释一下..

答案绝对不是A,答案错了,选C,这里给你解释:
i=0时,由于没找到最佳匹配,而且你也没写defaut语句,所以没有输出
又因为你没有break语句,所以程序继续执行第二次循环
i=1时,找到了最佳匹配,所以首先执行printf( "aa ");
输出aa,但是其后面没有break语句,所以程序继续执行它后面的语句
即printf( "bb "); ,输出bb,然后程序进入第三次循环
i=2时,找到了最佳匹配,执行语句printf( "bb "); ,输出bb

所以最终会输出aa bb bb

A

选择C,听我的,绝对没错。
因为当等于1的时候输出aa,因为没有break所以多输出一个bb,当等于2时输出一个bb,

答案有误,应该是C.我已经上机调试过,现在给你解释下:
i=0时,case(0)没有对应的选项,所以什么也不执行;当i=1时候,case(1)成立,输出aa,但是后面没有 break;语句,所以case(2)继续执行,也输出 bb, 到i=2时,只执行case(2),输出bb
所以输出是 aa bb bb 答案选C.

抱歉。我运行了,结果aa bb bb
{ int i;
for ( i=0; i<3; i++ )
{ switch (i)
{ case 1: printf( "aa ");
case 2: printf( "bb ");
}
}
}
循环的i 打印的值
0
1 aa bb
2 aa bb bb
case的各语句不加braek;就会一直执行到底

C 答案错了 肯定是 C
i=0 时 没输出
=1时 输出 aa bb
=2时 输出 bb
一起就是 aa bb bb
C