有以下稃序: #include<stdio.h> main() {int x,y=0,z=0,t; do {scanf("%d",&x); t=x>0: switch(t) {ease 0:break; ease1:y+=x;continue; } z+=

admin2020-11-27  20

问题 有以下稃序:
#include<stdio.h>
main()
{int x,y=0,z=0,t;
do
{scanf("%d",&x);
t=x>0:
switch(t)
{ease 0:break;
ease1:y+=x;continue;
}
z+=x;
}
while(x);
printf("%d,%d\n",y,z);
}
程序运行时输入:-1 1 -2 2 0<回车>,则输出结果是(  )。

选项 A、1,1
B、1,0
C、3,-3
D、3,0

答案C

解析 分析程序结构,在do…while循环中,嵌套一个swich语句,switch语句中两个case语句分别执行break和continue,其中break语句是跳出swiich语句,接着执行do…whik循环体剩下的部分;而continue语句是直接进入do…while的下一个循环,由此可知每次循环,当t=0时,执行break语句,接着将z值累加x;当t=1时,执行continue语句,将y值累加x,所以当x输入-1、-2、0时,t=0,z值累加为-3;当x输入1、2时,t=1,y值累加为3,输出y、z的值分别为3、-3,故答案选C。
转载请注明原文地址:https://kaotiyun.com/show/tK3p777K
0

最新回复(0)