[函数2.1说明] 下面程序的功能是计算x和y的最小公倍数。[函数2.1]main(){ int m,n,d,r; seanf("%d %d",&m,&n); if(m<n) {r=m;m=n;n=r;} (1) ; while (d%n! =0) (2) ; printf("%d\n",d);}[函数2.2说明] 下述程序接收键盘输入,直到句点“.”时结束。输入的字符被原样输出,但连续的空格输入将转换成一个空格。[函数2.2]#include <stdio.h>main(){ char c,preChar=’\0’; c = getchar(); while(c! = ’.’){ if( (3) ) putchar(c); else if(preChar! =’ ’) putchar(c); (4) ; c= (5) ; }}
参考答案:
解析:d=m (2) d+=m或d=d+m (3) c!=‘’(4) preChar=c (5) getchar() (1)下文使用了变量d,因此需在此初始化,由下面循环的条件“d%n!=0”知初值不能是n,因此必为m;(2)此处while循环生成最小公倍数d,其终止条件是n整除d,因此循环过程中需要保证m整除d并且d尽可能地小,于是d应以m为增量递增;(3)当输入的字符非空格时,原样输出;(4)程序中变量preChar用于记录上一次读入的字符,循环过程中应不断更新其值;(5)接收下一个输入。