C语言期末试题及其解答
1、下述程序用“碾转相除法”计算两个整数m和n的最大公约数。该方法的基本思想是计算m和n相除的余数,如果余数为0则结束,此时的被除数就是最大公约数。否则,将除数作为新的被除数,余数作为新的除数,继续计算m和n相除的余数,判断是否为0,等等,请填(3)空使程序完整。
main ( )
{ int m,n,w;
scanf(“%d,%d”,&m,&n);
while (n) {
w=【1 】m%n;
m=【2 】n;
n=【3 】w;
}
print f(“%d”,m);
}
2、下面程序将十进制整数base转换成n进制,请填(3)空使程序完整。
main ( )
{ int i=0,base,n,j,num[20]={0};
scanf(“%d”,&n);
scanf(“%d”,&base) ;
do {
i++;
num[i]=【1 】base%n;
base=【2 】base/n;
} while (base!=0);
for (【3 】j=i;j>=1;j--)
pr intf(“%d”,num[j]) ;
}