填空题 以下函数fun用于求两个整数a和b的最大公约数。 fun(a,B) int a,b; {int i,j,m,n; if(a>B) {m=a;a=b;{{U}} 【18】 {{/U}};} i=a;j=b; while((n={{U}} 【19】 {{/U}})!=0) {j=i;i={{U}} 【20】 {{/U}};} return(i); }
  • 1、
【正确答案】 1、【18】b=m    
【答案解析】【19】j%i. 【20】n [评析] 函数中的变量i和j分别存放两个形参的最小数和最大数,在语句i=a和j=b执行之前,要将a和b分别变为最小数和最大数,当a>b时,程序使用中间变量将两者交换,所以题中第—个空中应当填写“b=m”;为求两个整数的最大公约数,程序的where循环条件必须为j整除i成立,所以题中第二个空中应当填写“j%i”;程序要通过i的值返回最大公约数,因此在循环中要将每次整除的公钓数赋给i,以保证最后返回的是两个,整数的最大公约数,所以第三个空中应当填写“n”。