阅读以下函数说明和C语言函数,将应填入(n)处的语句写在对应栏内。 【函数2.1说明】 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 【函数2.1】 Fun1 (int n) { int i;

admin2010-01-15  7

问题 阅读以下函数说明和C语言函数,将应填入(n)处的语句写在对应栏内。
【函数2.1说明】
   将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
   【函数2.1】
   Fun1 (int n)
   {
   int i;
   for(i=2;i<=n;i++)
       {
         while ((1))
         {
            if (n%i==0)
            {
              printf("%d*",i);
               (2);
            }
            else
             break;
         }
       }
   printf("%d",\n);
   }
    【函数2.2说明】
   下面程序的功能是:海滩上有一堆桃子,5只猴子来分。第1只猴子把这堆桃子平均分为5份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第2只猴子把剩下的桃子又平均分成5份,又多了一个,它同样把多的一个扔入海中,拿走了一份。第 3、4、5只猴子都是这样做的,问海滩上原来最少有多少个猴子?
   【函数2.2】
    main()
   {
   int i,m,j,k,count;
   for(i=4;i<10000;i+=4)
   {
   count=0;
     (3);
for(k=0;k<5;k++)  
{
         (4);
       i=j;
       if(j%4==0)
            (5);
       else
           break;
      }
       i=m;
       if(count==4)
     {
         printf("%d\n",count);
         break;
     }
   }
   }

选项

答案(1)n!=i (2)n=n/i (3)m=i (4)j=i/4*5+1 (5)count++

解析 本题考查C语言中正整数分解质因数算法和猴子分桃算法的实现。
   在程序2.1中,要求将一个正整数分解质因数。我们先来了解一下质因数的概念,一个自然数的因数中,为质数的因数叫做这个数的质因数。把一个合数,用质因数相乘的形式表示出来,叫做分解质因数。如90=2*3*3*5,其中2,3,5都是质数。在对数n进行分解质因数时,应先找到一个最小的质数i,然后按下述步骤完成:
   (1)判断这个质数i是否等于n,如果相等,则说明分解质因数的过程已经结束,打印出结果即可。
   (2)如果n≠i,但n能被i整除,则i是n的质因数,应打印出i的值,并用n除以 i的商,作为新的正整数n。
   (3)如果n不能被i整除,则用i+1作为i的值,重复执行第(1)步。
   通过代码我们已经知道了最小的质数为2,第(1)空是循环的判断条件,结合我们上面的分析,应该是判断质数i是否等于n,因此,此空答案为n!=i。
   第(2)空在条件判断语句下,条件n%i==0成立,说明n能被i整除,根据分析,应打印出i的值,并用n除以i的商,作为新的正整数n。代码中已经实现了对i的输出,第(2)空的任务是用n除以i的商,作为新的正整数n,因此,答案为n=n/i。
   在程序2.2中,要求我们求出原来海滩上的桃子数,这个数的特点是除以5余1,且减去它的商和余数后再除以5又余1,一直这样下去,直到最后一次。要求这样一个有特点的数,我们可以在一个较大的范围里编程去找具有这种性质的数。结合代码我们知道,程序设计是从4到10000这个范围里去找具有这种特征的数的基数。
   第(3)空所在位置是第一层循环下面,应该是给变量赋初值阶段,结合后面的程序,可以发现m是用来临时存放当前求的基数乙因此,此空答案为m=i。
   第(4)空在第二层循环下面,这个循环的作用是利用当前的基数i来求桃子数,那么求解的过程肯定是分桃过程的逆向过程。即此空的答案为i=i/4*5+1。
   第(5)空在条件判断语句下面,如果条件成立,则执行此语句。我们接着看下面的程序,发现程序中有语句if(count==4),而在程序中一直没有出现变量count的值改变的语句,而它的初值是0,因此,此空肯定用来改变count的值的,再结合猴子分桃的特性,可以得到此空的答案为count++。
转载请注明原文地址:https://kaotiyun.com/show/PBjZ777K
0

随机试题
最新回复(0)