有以下程序: #include main() {int m,x=0,y=0,t; do {scanf(’’%d’’,&m); t=m>0; switch(t) {case 0:break; case 1:x+=m;continue; } y+=m; } w

admin2020-06-16  13

问题 有以下程序:
#include
main()
{int m,x=0,y=0,t;
do
{scanf(’’%d’’,&m);
t=m>0;
switch(t)
{case 0:break;
case 1:x+=m;continue;
}
y+=m;
}
while(m);
printf(’’%d,%d\n’’,x,y);
}
程序运行时输入:一1 1—2 2 0<回车>,则输出结果是(  )。

选项 A、0,0
B、3,0
C、3,一3
D、0,一3

答案C

解析 在do…while循环中,嵌套了一个sWitch语句,switch语句中两个case语句分别执行break和continue,其中break语句是跳出switch语句,接着执行do…while循环体剩下的部分:而continue语句是直接进入do…while的下一次循环。当输入一1、一2、0时,y+=(一1一2+0)=一3;当输入1、2时,x值累加为3,所以输出x,y值分别为3、一3。
转载请注明原文地址:https://kaotiyun.com/show/kYCp777K
0

最新回复(0)