问题
填空题
以下函数fun用于求两个整数a和b的最大公约数。 fun(a,B) int a,b; {int i,j,m,n; if(a>B) {m=a;a=b; 【18】 ;} i=a;j=b; while((n= 【19】 )!=0) {j=i;i= 【20】 ;} return(i); }
答案
参考答案:【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”。