问题 填空题

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

答案

参考答案:1 1

解析:评析:此题中定义两个变量a和b并通过scanf语句对其进行赋值,当满足“a!=b”循环条件时进行其下的条件的判断,直到最外层的条件不再被满足后进行数据的输出。自先给a和b分别赋值18和11。条件:18!=11,所以执行其下的条件判断“a>b”条件满足,a=a-b=18-7=7,然后继续判断条件a>b是否成立,此时7>11不成立,退出内循环中的第一个while循环,执行内循环的第二个while循环,比较其条件b>a是否成立,此条件成立,所以b=b-a=4,继续判决条件 b>a是否成立,若成立,则继续执行b-=a;,否则退出内循环的第二个while循环,同时继续比较外循环条件a!=b是否成立,依此类推,直到a=1,b=1条件不再被满足后进行数据的输出,所以最后的结果为:1 1。

判断题
单项选择题