阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。 [说明1] 函数int factors(int n)的功能是判断整数n(n>=2)是否为完全数。如果n是完全数,则函数返回0,否则返回-1。 所谓“完全数”是指整数

admin2010-12-16  36

问题 阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。
   [说明1]
   函数int factors(int n)的功能是判断整数n(n>=2)是否为完全数。如果n是完全数,则函数返回0,否则返回-1。
   所谓“完全数”是指整数n的所有因子(不包括n)之和等于n自身。例如:28的因子为1,2,4,7,14,而28=1+2+4+7+14,因此28是“完全数”。
   [C函数1]
   int factors(int n)
   {  int i,S;
         for(i=l,s=0;i<=n/2;i++)
         if(n%i==O)  (1);
         if( (2) )return 0;
         rerurn -1;
   }
   [说明2]
   函数int maxint(int a[],int k)的功能是用递归方法求指定数组中前k个元素的最大值,并作为函数值返回。
   [C函数2]
   int maxint(int a[],int k)
   {  int t;
       if(  (3)  )return  (4);
       t=maxint(a+1,  (5) )j
       return(a[0]>t) ? a[0] :t;
   }

选项

答案(1)s+=i (2) n==s (3) k-1或k-1==0 (4) a[0]或*a或a[k-1] (5) k-1或--k

解析 对于函数1,是判断整数n(n>=2)是否为完全数。首先用for循环求该整数的所有因子之和,所以(1)填“s+=i”若其和等于整数本身,则为完全数,返回值为0,则(2)填“n==s”;否则返回值为-1。
   对于函数2,是用递归方法找出数组中的最大元素。该递归的出口条件为k=1,即(3)填“k==1”或“k-1==0”:只有一个数时,它本身就是最大的,(4)填“a[0]”或“*a”或“a[k-1]”;对于多个数的情况,在剩下的k-1个元素中找到最大的,并与首元素值比较,返回最大的一个,所以(5)填“k-1”或“--k”。
转载请注明原文地址:https://jikaoti.com/ti/QXW7FFFM
0

最新回复(0)