有以下程序,若运行时从键盘输入:18,11<回车>,则程序的输出结果是【 】。 main () { int a, b; printf("Enter a, b:"); scanf("%d, %d",&a,&b); while(a!=b)

admin2009-01-15  24

问题 有以下程序,若运行时从键盘输入:18,11<回车>,则程序的输出结果是【  】。
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);
}

选项

答案11

解析 首先,程序通过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。b>a为假,不执行b-=a;;然后第4次进入外层循环,a>b为真,执行a-=b,a的值变为2-1=1。b>a为假,不执行b-=a;此时a和b均为1了,a!=b条件为假,外层循环结束。故本题输出的结果是11。
转载请注明原文地址:https://kaotiyun.com/show/rOHp777K
0

相关试题推荐
最新回复(0)