答案:
1). struct 2). x 3). f 4). x.n
显示序号:16
题号:468
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能: 对一数组进行逐步累加求和,prefix代表从前向后累加值, suffix代表从后向前累加值,问在此过程中prefix与suffix 有几次值相同?
-------------------------------------------------------*/
int head_tail(int x[], int n) {
int prefix = 0, suffix = 0; int prefix_idx = 0, suffix_idx = n-1; int count = 0;
while (suffix_idx >= 0 && prefix_idx <= n-1)
/***********SPACE***********/ if ( 【?】) prefix += x[prefix_idx++]; else if (prefix > suffix)
/***********SPACE***********/ suffix += x[【?】]; else
{ /***********SPACE***********/
【?】; prefix += x[prefix_idx++]; suffix += x[suffix_idx--]; }
return count; }
#include
void main(void) {
int x[] = { 3, 6, 2, 1, 4, 5, 2}; int n = sizeof(x)/sizeof(int); int i;
printf(\
printf(\ printf(\ for (i = 0; i < n; i++) printf(\
printf(\}
答案:
1). prefix < suffix 或 suffix>prefix
2). suffix_idx-- 或 suffix_idx=★suffix_indx★-1 或 --suffix_idx 3). count++ 或 count=count+1
显示序号:17
题号:473
/*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:输出1到100之间每位数的乘积大于每位数的和的数。 例如:数字26,数位上数字的乘积12大于数字之和8。
-------------------------------------------------------*/
main() {
int n,k=1,s=0,m;
for(n=1;n<=100;n++) {
k=1; s=0;
/***********SPACE***********/
【?】 ; /***********SPACE***********/
while( 【?】 ) {
k*=m; s+=m;
/***********SPACE***********/
【?】; } if(k>s)
printf(\ } }
答案:
1). m=n
2). m>0 或 0 3). m=m/10 或 m/=10 显示序号:18 题号:478 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:如果整数A的全部因子(包括1,不包括A本身)之和等 于B;且整数B的全部因子 ( 包括1,不包括B本身 ) 之和等于A,则将整数A和B称为亲密数。求 3000 以内 的全部亲密数。 -------------------------------------------------------*/ #include int a, i, b, n ; printf(\ for(a=1 ; a<3000 ; a++) { for(b=0,i=1 ; i<=a/2 ; i++ ) /***********SPACE***********/ if(!(a%i)) 【?】 ; for(n=0,i=1 ; i<=b/2 ; i++) /***********SPACE***********/ if(!(b%i)) 【?】 ; /***********SPACE***********/ if(【?】 && a 答案: 1). b+=i 或 b=b+i 2). n+=i 或 n=n+i 3). n★==★a 显示序号:19 题号:481 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:一个自然数被 8 除余 1 ,所得的商被 8 除也余 1 ,再 将第二次的商被8 除后余7 ,最后得到一个商为a。又知这 个自然数被17除余4 ,所得的商被17除余15,最后得到一 个商是a的2倍。编写程序求这个自然数。 -------------------------------------------------------*/ main( ) { int i,n,a ; i=0 ; while(1) { if(i%8==1) { n=i/8 ; if(n%8==1) { n=n/8 ; /***********SPACE***********/ if(n%8==7) 【?】 ; } } if(i==4) { n=i/17 ; if(n==15) n=n/17 ; } if(2*a==n) { printf(\ /***********SPACE***********/ 【?】 ; } /***********SPACE***********/ 【?】; } } 答案: 1). a=n/8 2). break 3). i++ 或 ++i 或 i=i+1 显示序号:20 题号:625 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:有一整数数组x(正序排列),判断是否有数组元素x[i]=i 的情况发生。 -------------------------------------------------------*/ int index_search(int x[], int n) { int first = 0; int last = n-1; int middle, index; index = -1; while (first <= last) { middle = (first + last) / 2; /***********SPACE***********/ if (【?】) {