作者:深圳教育在线 来源:szedu.net 更新日期:2008-10-11
阅读以下程序说明和C程序,将应填入__(n)__ 处的字句,写在答卷的对应栏内。 [程序说明] 本程序中的函数factor( m,fac,cp )用来计算正整 m ( m > 2 )的除自身以外的所有不同因子的和。该函数返回因子和,并把各因子从小到大依次存放在数组 fac 中,其因子个数存入在 cp 所指的变量中。 例如 m=16,求得的因子为 (1,2,4,8) 考试大提示:因子和为15,因子个数为4。 程序假定正整数 m 的不同因子个数不会超过100个。 [程序] # include # define N 100 long factor (int m,int fac[],int *cp) { int c1, c2 , i, k; long s; fac[0] = 1; for(c1 = s = 1,c2 = N-1,____(1)____;;) { k = m/i; if (____(2)____) if (____(3)____) { fac[c1++] = i; fac[c2--] = k; s + = i+k; } else { fac[c1++] = i; s + = i; } i++; if(i>=k) brdak; } for (c2++;c2 <= N-1;c2++) ____(4)____; *cp=c1; return ____(5)____; 答案: 1)3分 i = 2,或 cl + 1 2)3分 m % i == 0 (或 !(m % i) 或 m == i * k ) 3)3分 i ! = k (或 i < k ) 4)3分 fac [ cl ++ ] = fac [ c2 ] 答 cl ++ 给 1 分,‘ = ’左右只对一半给 1 分。 5)3分 s
|