有以下程序: #include<stdio.h> main() {int x,a=1,b=1; while(1) {scanf("%d",&x); if(x>0){a*=x;break;} if(x<0){b*=x;continue;} printf("%

admin2021-02-25  36

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

选项 A、1,2
B、2,2
C、-1,1
D、-2,1

答案A

解析 分析程序结构,存while循环中,输入x的值后,若x的值大于0,将a的值累乘x,执行break语句跳出循环;若x的值小于0,将b的值累乘x,执行continue,进行下一个循环;当x的值等于0时,打印a、b的值,进入下一个循环:所以当输入-1、-2后,b累乘为2;输入0后,打印a、b的值为1,2,再输入1,a累乘跳出循环.程序运行结束;输出结果为1,2,故答案为A。
转载请注明原文地址:https://jikaoti.com/ti/Ebz0FFFM
0

最新回复(0)