【程序填空题_4】给定程序中,函数fun的功能是:计算出形参s所指字符串包含的单词个数,作为函数值返回。为便于统计,规定各单词之间用空格隔开。
例如,形参s所指的字符串为:This is a C language program.,函数的返回值为6。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <stdio.h> #include <string.h> #define N 5 #define M 8 void fun(char (*ss)[M]) { char *ps[N],*tp; int i,j,k; for(i=0; i<N; i++) ps[i]=ss[i]; for(i=0; i<N-1; i++) { /**********found**********/ k= _________; for(j=i+1; j<N; j++) /**********found**********/ if(strlen(ps[k]) < strlen(______)) k=j; /**********found**********/ tp=ps[i]; ps[i]=ps[k]; ps[k]= ___________ ; } printf("\nThe string after sorting by length:\n\n"); for(i=0; i<N; i++) puts(ps[i]); } main() { char ch[N][M]= {"red","green","blue","yellow","black"}; int i; printf("\nThe original string\n\n"); for(i=0; i<N; i++)puts(ch[i]); printf("\n"); fun(ch); } |
【程序修改题_4】给定程序MODI1.C中函数fun的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。
例如,若输入8名学生的成绩:80.5 60 72 90.5 98 51.5 88 64 则低于平均分的学生人数为:4(平均分为:75.5625)。
请改正程序中的错误,使它能计算出正确的结果。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <stdio.h> #include <math.h> /************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 } int main ( ) { int n; printf("Input N="); scanf("%d", &n); printf("%f\n", fun(n) ); return 0; } |
【程序设计题_4】请编写函数fun,其功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
例如,输入如下整数:876 675 896 101 301 401 980 431 451 777
则输出结果是:6,980
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <stdio.h> #include <math.h> double fun(double x , int n) { } main() { void NONO(); printf("%f\n", fun(0.3,10)); NONO(); } void NONO () { /* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, n ; double s, x ; fp = fopen("K:\\k51\\24000403\\in.dat","r") ; wf = fopen("K:\\k51\\24000403\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(fp, "%lf,%d", &x, &n) ; s = fun(x, n) ; fprintf(wf, "%f\n", s) ; } fclose(fp) ; fclose(wf) ; } |