main() {
char s[100], t[100];
printf(\ fun(s, t);
printf(\}
40、给定程序MODI1.C中函数 fun 的功能是:计算n!。 例如,给n输入5,则输出120.000000。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include
/************found************/ if n = = 0 return 1.0 ;
while( n >1 && n < 170 )
/************found************/ result *= n-- return result ; }
main ( ) { int n ;
printf(\ scanf(\
printf(\}
41、给定程序MODI1.C中函数fun的功能是: 计算s所指字符串中含有t所指字符串的数目, 并作为函数值返回。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! #include
int fun(char *s, char *t) { int n;
char *p , *r; n=0;
while ( *s ) { p=s;
/*********found**********/ r=p;
while(*r)
if(*r==*p) { r++; p++; } else break;
/*********found**********/ if(*r= O) n++; s++; }
return n; }
main()
{ char a[N],b[N]; int m;
printf(\ printf(\ m=fun(a, b);
printf(\ m = %d\\n\}
42、给定程序MODI1.C中函数 fun 的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。
例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。 请改正程序中的错误,使它能得出正确的结果。 46
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include
fun ( char *s, int num[5] ) { int k, i=5;
for ( k = 0; k
/**********found**********/ num[i]=0; for (; *s; s++) { i = -1;
/**********found**********/ switch ( s )
{ case 'a': case 'A': {i=0; break;} case 'e': case 'E': {i=1; break;} case 'i': case 'I': {i=2; break;} case 'o': case 'O': {i=3; break;} case 'u': case 'U': {i=4; break;} }
if (i >= 0) num[i]++; } }
main( )
{ char s1[81]; int num1[5], i;
printf( \ gets( s1 ); fun ( s1, num1 );
for ( i=0; i < 5; i++ ) printf (\}
43、已知一个数列从第0项开始的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。给定程序MODI1.C中函数fun的功能是:计算并输出该数列前n项的平方根之和。n的值通过形参传入。 例如,当n=10时,程序的输出结果应为:23.197745。 请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include
/************found************/ fun(int n)
{ double sum, s0, s1, s2, s; int k; sum = 1.0;
if (n <= 2) sum = 0.0;
s0 = 0.0; s1 = 0.0; s2 = 1.0; for (k = 4; k <= n; k++) { s = s0 + s1 + s2; sum += sqrt(s);
s0 = s1; s1 = s2; s2 = s; }
/************found************/ return sum }
main ( ) { int n;
printf(\ scanf(\
printf(\}
44、给定程序MODI1.C中函数 fun 的功能是:由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。
例如,n=8时,输入:193.199,195.673,195.757,196.051, 196.092,196.596,196.579,196.763
所得平均值为:195.838745,在平均值以上的实数个数应为:5 请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include
47
/************found************/ int j, c=0, float xa=0.0; for (j=0; j printf(\ for (j=0; j /************found************/ if (x[j] => xa) c++; return c; } main ( ) { float x[100] = {193.199, 195.673, 195.757, 196.051, 196.092, 196.596, 196.579, 196.763}; printf(\} 45、给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表, 并为各结点数据域赋0到m-1的值。 请改正函数Creatlink中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! #include struct aa *next; } NODE; NODE *Creatlink(int n, int m) { NODE *h=NULL, *p, *s; int i; /**********found***********/ p=(NODE )malloc(sizeof(NODE)); h=p; p->next=NULL; for(i=1; i<=n; i++) { s=(NODE *)malloc(sizeof(NODE)); s->data=rand()%m; s->next=p->next; p->next=s; p=p->next; } /**********found***********/ return p; } outlink(NODE *h) { NODE *p; p=h->next; printf(\ LIST :\\n\\n HEAD \ while(p) { printf(\ p=p->next; } printf(\} main() { NODE *head; head=Creatlink(8,22); outlink(head); } 46、给定程序MODI1.C中函数fun的功能是: 对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来, 并将这些学生数据存放在一个动态分配的连续存储区中, 此存储区的首地址作为函数值返回。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! #include int s; } STU; STU *fun(STU a[], int m) { STU b[N], *t; int i,j,k; /**********found**********/ t=(STU *)calloc(sizeof(STU),m) for(i=0; i return t; } outresult(STU a[], FILE *pf) { int i; for(i=0; i fprintf(pf,\ Mark = %d\\n\ fprintf(pf,\} main() { STU a[N]={ {\ {\ STU *pOrder; int i, m; printf(\ outresult(a, stdout); printf(\ \ scanf(\ while( m>10 ) { printf(\ \ scanf(\ } pOrder=fun(a,m); printf(\ RESULT *****\\n\ printf(\ :\\n\ for(i=0; i printf(\ %s %d\\n\ free(pOrder); } 47、给定程序MODI1.C中函数 fun 的功能是:求出以下分数序列的前n项之和。和值通过函数值返回到main函数。 2 3 5 8 13 21 ┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , …… 1 2 3 5 8 13 例如,若n = 5,则应输出:8.391667。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include /************found************/ fun ( int n ) { int a, b, c, k; double s; s = 0.0; a = 2; b = 1; for ( k = 1; k <= n; k++ ) { /************found************/ s = s + (Double)a / b; c = a; a = a + b; b = c; } return s; } main( ) { int n = 5; printf( \ function is: %lf\\n\ fun ( n ) ); 49 } 48、给定程序MODI1.C中fun函数的功能是: 根据整型形参m,计算如下公式的值。 1 1 1 t = 1 - ----- - ----- - …… - ----- 2 3 m 例如,若主函数中输入5,则应输出 -0.283333。 请改正函数fun中的错误或在横线处填上适当的内容并把横线删除, 使它能计算出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! #include double t = 1.0; int i; for( i = 2; i <= m; i++ ) /**********found**********/ t = 1.0-1 /i; /**********found**********/ _______; } main() { int m ; printf( \ scanf( \ printf( \} 49、给定程序MODI1.C中函数fun的功能是: 将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A, z转换为a),其它字符不变。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! #include /**********found***********/ while(*s!='@') { if(*s>='A' & *s<='Z' || *s>='a' && *s<='z') { if(*s=='Z') *s='A'; else if(*s=='z') *s='a'; else *s += 1; } /**********found***********/ (*s)++; } } main() { char s[80]; printf(\ Enter a string with length < 80. :\\n\\n \ printf(\ The string : \\n\\n \ puts(s); fun ( s ); printf (\ The Cords :\\n\\n \ puts(s); } 50、给定程序MODI1.C中函数 fun 的功能是:判断一个整数是否是素数,若是返回1,否则返回0。 在main()函数中,若fun返回1输出YES,若fun返回0输出NO!。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数。不得增行或删行,也不得更改程序的结构! #include while ( k <= m && (m%k)) /************found************/ k++ /************found************/ 50