问题
填空题
有以下程序,若运行时从键盘输入:18,11<回车>,则程序的输出结果是 (8) 。
main()
int a,b;
printf(“Enter a,b:”);scanf(“%d,%d”,&a,&b);
while(a!=b)
(while(a>b) a-=b;
while(b>a) b-=a;
printf(“%3d%3d\n”,a,b);
答案
参考答案:1 1
解析: 本题考查的是while循环的嵌套。首先,程序通过scanf()函数将18和11分别读入到变量a和b中。然后,因为a!-b为真,进入外层while循环。此时a>b为真,执行a-=b;,a的值变为18-11=7;接下来b>a也为真,执行b-=a;,b的值变为11-7=4。此时a!=b还是为真,第2次进入外层循环。a>b为真,执行a-=b;,a的值变为7-4=3。b>a为真,执行b-=a;,b的值变为4-3=1;,接下来a!=b为真第3次进入外层循环。a>b为真,执行a-=b,a的值变为3-1=2,a>b为真,执行a-=b,a的值变为2-1=1。外循环不成立,退出循环,所以a=1,b=1。