for(i=1;i<5;i++)
/***********SPACE***********/ s+=【?】[i]; av=s/5;
/***********SPACE***********/ return 【?】; }
void main() {
float sco[5],av; int i;
printf(\for(i=0;i<5;i++)
/***********SPACE***********/ scanf(\【?】);
/***********SPACE***********/ av=aver(【?】);
printf(\getch(); }
答案:1). a;2). av 或 (av) 3). &sco[i] 或 sco+i;4). sco
功能:将一个字符串中下标为m的字符开始的全部字符复制成为另一个字符串。 #include
void strcopy(char *str1,char *str2,int m) {
char *p1,*p2;
/***********SPACE***********/ 【?】; p2=str2; while(*p1)
/***********SPACE***********/ 【?】;
/***********SPACE***********/ 【?】; }
main() {
int i,m;
char str1[80],str2[80]; gets(str1);
scanf(\
/***********SPACE***********/
【?】;
puts(str1);puts(str2); }
答案:1). p1= str1 + m
2). *p2++=*p1++ 或 *(p2++)=*(p1++) 或 *p2=*p1,p2++,p1++ 或 *p2=*p1++,p2++ 或 *p2++=*p1,p1++
3). *p2='\\0' 或 *p2=0 或 *p2=NULL 4). strcopy(str1,str2,m)
功能:对任一整数N(N≠0),它都可以分解成1(或-1)和一些质数(素数)因子的形式。例如:当N=150时,可分解成1×2×3×5×5;当N=-150时,可分解为-1×2×3×5×5。下边程序能实现这种分解过程。当N=150,输出以下分解结果:N= 1* 2* 3* 5* 5 main() {
int n,i,j,r;
scanf(\if (n==0) {
printf (\exit(0); }
/***********SPACE***********/ else if (【?】) printf(\else {
printf(\n=-n; }
/***********SPACE***********/ for(【?】;i<=n;i++) {
/***********SPACE***********/ 【?】 ; while(r==0) {
printf(\
/***********SPACE***********/ 【?】 ; r=n%i; }
}
printf(\}
答案:1). n>0 或 0 功能:下面函数为二分法查找key值。数组中元素已递增排序,若找到key则返回对应的下标,否则返回-1。 fun(int a[],int n,int key) { int low,high,mid; low=0; high=n-1; /***********SPACE***********/ while(【?】) { mid=(low+high)/2; if(key /***********SPACE***********/ 【?】; else if(key>a[mid]) /***********SPACE***********/ 【?】; else /***********SPACE***********/ 【?】; } return -1; } main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int b,c; b=4; c=fun(a,10,b); if(c==1) printf(\else printf(\} 答案:1). low<=high 或 high>=low 2). high=mid-1;3). low= mid + 1 4). return mid 或 return (mid) 功能:求一个二维数组中每行的最大值和每 行的和。 #include \main() { int a[5][5],b[5],c[5],i,j,k,s=0; for(i=0;i<5;i++) for(j=0;j<5;j++) a[i][j]=random(40)+20; for(i=0;i<5;i++) { /***********SPACE***********/ k=a[i][0]; 【?】 ; for(j=0;j<5;j++) { /***********SPACE***********/ if(k b[i]=k; /***********SPACE***********/ 【?】 ; } for(i=0;i<5;i++) { for(j=0;j<5;j++) /***********SPACE***********/ printf(\【?】 ); printf(\printf(\} } 答案:1). s=0;2). k=a[i][j];3). c[i]=s 4). a[i][j] 功能:输入3个数a,b,c,按从小到大的顺序输出。 main() { void swap(int *p1, int *p2); int n1,n2,n3; int *pointer1,*pointer2,*pointer3; printf(\scanf(\pointer1=&n1; pointer2=&n2; pointer3=&n3; /***********SPACE***********/ if(【?】) swap(pointer1,pointer2); /***********SPACE***********/ if(【?】) swap(pointer1,pointer3); /***********SPACE***********/ if(【?】) swap(pointer2,pointer3); printf(\are:%d,%d,%d\\n\} /***********SPACE***********/ void swap(【?】) int *p1,*p2; { int p; p=*p1;*p1=*p2;*p2=p; } 答案:1). n1>n2 或 n2 功能:要求输出结果为3。 #include /***********SPACE***********/ int m=1,n=1,【?】; s=akm(m,n); printf(\ } /***********SPACE***********/ akm(【?】,int n) { if(m==0) /***********SPACE***********/ 【?】 n+1; else if(m!=0&&n==0) akm(m-1,1); else if(m!=0&&n!=0) akm(m-1,akm(m,n-1)); } 答案:1). s;2). int m;3). return 功能:输出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 功能:有一整数数组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 (【?】) { index = middle; break; } /***********SPACE***********/ else if (【?】) last = middle - 1; else first = middle + 1; } return index; } #include int x[] = { -1, 0, 1, 3, 5, 7, 9, 10}; int n = sizeof(x)/sizeof(int); int answer, i; printf(\printf(\printf(\for (i = 0; i < n; i++) printf(\ /***********SPACE***********/ 【?】; if (answer >= 0) printf(\answer, answer); else printf(\i\} 答案:1). x[middle] == middle 2). x[middle] > middle 或 middle 功能:要求输出如下结果:b=-1 a=65535 a=65534;a=30 b=6 c=5按要求在空中填入合适的变量完善程序。 main() { /***********SPACE***********/ int b=-1,【?】;unsigned a; /***********SPACE***********/ a=【?】; printf(\ /***********SPACE***********/ 【?】+=b; printf(\ /***********SPACE***********/ b=(a=30)/【?】; printf(\} 答案:1). c;2). b;3). a;4). (c=5) 功能:输入一奇数n,打印由1->n*n构成的魔方矩阵。魔方矩阵的行列及对角线的和都相等。魔方矩阵:8 1 6 3 5 7 4 9 2 #include int matrix[MAXSIZE][MAXSIZE]; int count; int row; int column; int n; char line[100]; printf(\printf(\===\ printf(\gets(line); n = atoi(line); if (n > MAXSIZE) printf(\MAXSIZE); else if (n % 2 == 0) printf(\integer\else { row = 0; column = n/2; for (count = 1; count <= n*n; count++) { matrix[row][column] = count; /***********SPACE***********/ if (【?】 == 0) row++; else { /***********SPACE***********/ row= (row == 【?】) ? n - 1 : row - 1; /***********SPACE***********/ column = (column == 【?】) ? 0 : column + 1; } } printf(\for (row = 0; row < n; row++) { for (column = 0; column < n; column++) printf(\printf(\} } } 答案:1). count % n;2). 0;3). n-1 或 n -1 功能:输入一正整数n、打印1-n能够组成的所有自然数集合(包含空集)。 #include int set[MAXSIZE]; int n, i; int position; char line[100]; printf(\Lexical Order\ printf(\===================\ printf(\\ gets(line); n = atoi(line); printf(\position = 0; set[position] = 1; while (LOOP) { /***********SPACE***********/ printf(\【?】); for (i = 1; i <= position; i++) printf(\printf(\ if (set[position] < n) { /***********SPACE***********/ set[【?】] = set[position] + 1; position++; } else if (position != 0) set[--position]++; else /***********SPACE***********/ 【?】; } } 答案:1). set[0];2). position+1;3). break 功能:产生10个[30,90]区间上的随机整数,然后对其用选择法进行由小到大的排序。 #include \main() { /***********SPACE***********/ 【?】; int i,j,k; int a[10]; for(i=0;i<10;i++) a[i]=random(61)+30; for(i=0;i<9;i++) { /***********SPACE***********/ 【?】; for(j=i+1;j<10;j++) /***********SPACE***********/ if(【?】) k=j; if(k!=i) { t=a[k]; a[k]=a[i]; a[i]=t; } } /***********SPACE***********/