有以下程序: #include main() { int x,y=0,z=0,t; do { seanf(“%d”,&x); t=x>0: switch(t) { ease 0:brea

admin2021-02-25  27

问题 有以下程序:
    #include
    main()
    {  int x,y=0,z=0,t;
    do
    {  seanf(“%d”,&x);
    t=x>0:
    switch(t)
    {  ease 0:break;
    ease 1:y+=x;continue;
    }
    z+=x:
    }
    while(x);
    prinff(“%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循环中,嵌套一个switch语句,switch语句中两个case语句分别执行break和continue,其中break语句是跳出switch语句,接着执行d0…while循环体剩下的部分;而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/antp777K
0

最新回复(0)