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

admin2012-12-03  45

问题 有以下程序,若运时从键盘输入: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);
    }

选项

答案1 1。

解析 当执行scanf语句后,从键盘接收2个数字,a=18,b=11,a!=b循环成立,执行a-=b,此时a=7,b=11;再判断b>a,循环成立,执行b-=a,此时a=7,b=4;循环再次返回判断a!=b,循环成立,执行a-=b,此时a=3,b=4,判断b>a,循环成立,执行a-=b,此时a=2,b=1,判断b>a,循环不成立,循环再次返回,判断a!=b,循环成立,则执行a-=b,此时a=1,b=1,判断b>a;循环不成立,循环结束程序,因为输出中有%3d,所以输出1,1。
转载请注明原文地址:https://jikaoti.com/ti/61B0FFFM
0

最新回复(0)