阅读下列程序说明和C程序,将应填入(n)处的字句写在对应栏内。 [函数2.1说明] 下面程序的功能是计算x和y的最小公倍数。 [函数2.1] main() { int m,n,d,r; seanf("%d %d",&m,&n); if(m<

admin2009-02-15  47

问题 阅读下列程序说明和C程序,将应填入(n)处的字句写在对应栏内。
[函数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);
     }
}

选项

答案(1)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)接收下一个输入。
转载请注明原文地址:https://jikaoti.com/ti/yTW7FFFM
0

最新回复(0)