printf(\}
6、给定程序MODI1.C中函数fun的功能是:根据整型形参m,计算如下公式的值。 1 1 1 1 y = ------- + --------- + --------- + …… + ------- 100*100 200*200 300*300 m*m 例如,若m = 2000,则应输出: 0.000160。
请改正程序中的语法错误,使它能计算出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include
/************found************/ fun ( int m ) { double y = 0, d ; int i ;
/************found************/ for( i = 100, i <= m, i += 100 ) { d = (double)i * (double)i ; y += 1.0 / d ; }
return( y ) ; }
main( )
{ int n = 2000 ;
printf( \}
7、给定程序MODI1.C中函数 fun 的功能是: 读入一个字符串(长度<20 ),将该字符串中的所有字符按ASCII码升序排序后输出。
例如, 若输入: edcba, 则应输出: abcde。
请改正程序中的错误,使它能统计出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include
char c; int i, j;
/**********found***********/ for( i = strlen( t ); i; i-- ) for( j = 0; j < i; j++ )
/**********found***********/ if( t[j] < t[ j + 1 ] ) {
c = t[j];
t[j] = t[ j + 1 ]; t[j + 1 ] = c; } }
main() {
char s[81];
printf( \ gets( s );
printf( \ \\\ fun( s );
printf( \ \\\}
8、给定程序MODI1.C中函数fun的功能是: 比较两个字符串,将长的那个字符串的首地址作为函数值返回。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! #include
/**********found**********/ char fun(char *s, char *t)
{ int sl=0,tl=0; char *ss, *tt;
31
ss=s; tt=t; while(*ss) { sl++;
/**********found**********/ (*ss)++; }
while(*tt) { tl++;
/**********found**********/ (*tt)++; }
if(tl>sl) return t; else return s; }
main()
{ char a[80],b[80],*p,*q; int i; printf(\ \
printf(\ \ printf(\}
9、给定程序MODI1.C中函数fun的功能是:首先把b所指字符串中的字符按逆序存放, 然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。例如,当a所指字符串中的内容为\,b所指字符串中的内容为\时,c所指数组中的内容应该为\;而当a所指字符串中的内容为\,b所指字符串中的内容
为\时,c所指数组中的内容应该为\。 请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include
void fun( char *a, char *b, char *c ) {
int i , j; char ch; i = 0; j = strlen(b)-1;
/************found************/ while ( i > j )
{ ch = b[i]; b[i] = b[j]; b[j] = ch; i++; j--; }
while ( *a || *b ) {
/************found************/ If ( *a )
{ *c = *a; c++; a++; } if ( *b )
{ *c = *b; c++; b++; } }
*c = 0; }
main() {
char s1[100],s2[100],t[200];
printf(\ printf(\ fun( s1, s2, t );
printf(\}
10、给定程序MODI1.C中函数fun的功能是:根据整型形参m的值,计算如下公式的值。 1 1 1 t = 1 - ----- - ----- - …… - ----- 2*2 3*3 m*m
例如,若 m 中的值为: 5,则应输出: 0.536389。 请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include
{ double y = 1.0 ; int i ;
/**************found**************/ for(i = 2 ; i < m ; i++)
/**************found**************/ y -= 1 /(i * i) ; return( y ) ; }
main( )
{ int n = 5 ;
printf( \}
11、假定整数数列中的数不重复,并存放在数组中。给定程序MODI1.C中函数fun的功能是:删除数列中值为x的元素。n中存放的是数列中元素的个数。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include
while( x!=a[p] ) p=p+1;
/**********found**********/ if(P==n) return -1; else
{ for(i=p;i /**********found**********/ a[i+1]=a[i]; return n-1; } } main() { int w[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i; n=10; printf(\ for(i=0;i printf(\ printf(\ : %d\\n\ n=fun(w,n,x); if ( n==-1 ) printf(\ else { printf(\ for(i=0;i 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! #include { int data; struct aa *next; }NODE; int fun(NODE *h) { int sum = 0 ; NODE *p; /***********found**********/ p=h; while(p) { if(p->data%2==0) sum +=p->data; /***********found**********/ p=h->next; 33 } return sum; } NODE *creatlink(int n) { NODE *h, *p, *s, *q; int i, x; h=p=(NODE *)malloc(sizeof(NODE)); for(i=1; i<=n; i++) { s=(NODE *)malloc(sizeof(NODE)); s->data=rand(); s->next=p->next; p->next=s; p=p->next; } p->next=NULL; return h; } outlink(NODE *h, FILE *pf) { NODE *p; p = h->next; fprintf(pf ,\ LIST :\\n\\n HEAD \ while(p) { fprintf(pf ,\ fprintf (pf,\} outresult(int s, FILE *pf) { fprintf(pf,\ : %d\\n\main() { NODE *head; int even; head=creatlink(12); head->data=9000; outlink(head , stdout); even=fun(head); printf(\ result :\\n\} 13、给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。 例如,调用fun函数之前给字符串输入:ABCDeFGH, 调用后字符串中的内容为:eABCDFGH。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include { char max,*q; int i=0; max=p[i]; while( p[i]!=0 ) { if( max /**********found**********/ q=p+i } i++; } /**********found**********/ wihle( q>p ) { *q=*(q-1); q--; } p[0]=max; } main() { char str[80]; printf(\ \ printf(\ \ puts(str); fun(str); 34 printf(\ \ puts(str); printf(\} 14、给定程序MODI1.C中函数 fun 的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。 例如,若输入 8 名学生的成绩:80.5 60 72 90.5 98 51.5 88 64则低于平均分的学生人数为: 4 (平均分为:75.5625 )。 请改正程序中的错误,使它能统计出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include int fun ( float *s, int n, float *aver ) { float ave, t = 0.0 ; int count = 0, k, i ; for ( k = 0 ; k < n ; k++ ) /**************found**************/ t = s[k] ; ave = t / n ; for ( i = 0 ; i < n ; i++ ) if ( s[ i ] < ave ) count++ ; /**************found**************/ *aver = Ave ; return count ; } main() { float s[30], aver ; int m, i ; printf ( \ \ printf ( \ for( i = 0 ; i < m ; i++ ) scanf ( \ printf( \ printf( \} 15、给定程序MODI1.C中函数 fun 的功能是:统计substr所指子字符串在str所指字符串中出现的次数。 例如,若字符串为aaas lkaaas,子字符串为as,则应输出2。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include fun (char *str,char *substr) { int i,j,k,num=0; /************found************/ for(i = 0, str[i], i++) for(j=i,k=0;substr[k]==str[j];k++,j++) /************found************/ If(substr[k+1]=='\\0') { num++; break; } return num; } main() { char str[80],substr[80]; printf(\ gets(str); printf(\ gets(substr); printf(\} 16、给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include 35