45.请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为71.80。 n门课程平均分71.8 int i; float ave=0.0; for(i=0; i
55.请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。 找出成绩最低学生纪录 int i, min = a[0].s, j = 0; for(i = 1 ; i < N ; i++) if(min > a[i].s) { j = i ; min = a[i].s ; } *s = a[j] ; 0 x[i]/N j++ double fun(int m) for( i = 100;i <= m;i += 100 ) 56请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。 按分数高低排列学生纪录,高分在前 STREC tmp; int i,j; for(i = 0; i < N; i++) for(j = i+1; j < N; j++) if(a[i].s < a[j].s) {tmp = a[i]; a[i] = a[j]; a[j] = tmp; } 999 t/10 x void fun (long s, long *t) while(s>0) 57.请编写函数fun,它的功能是:函数返回指定学号的学生数58.请编写函数fun,它的功能是:把指定分数范围内的学生数据,指定的学号在主函数中输入。 据放在b所指的数组中,分数范围内的学生人数由函数值返返回指定学号学生数据 回。 STREC c ; int i ; 指定分数范围内的数据 c.num[0] = '\\0' ; c.s = -1 ; int i,j = 0 ; for(i = 0 ; i < N ; i++) for(i = 0 ; i < N ; i++) if(strcmp(a[i].num, b)==0) if(a[i].s >= l && a[i].s <= h) b[j++] = a[i] ; { strcpy(c.num, a[i].num) ; return j ; c.s=a[i].s; break ; } return c ; struct student n-1 n/2 i a[n-i-1] a[i].name,a[j].name n= *p-'0'; q=p+i; n=n*8+*p-'0'; while(q>p) 类型六:字符和字符串操作 59.请编写一个函数fun,它的功能是:比较两个字符串的长度,60.编写函数fun,该函数的功能是:从字符串中删除指定的字返回较长的字符串。若两个字符串长度相同,则返回第一个字符。同一字母的大、小写按不同字符处理。 符串。 删除给定的字符 char *p = s ; int i = 0 ; 返回较长字符串 while(*p) int i; char *p=s, *q=t; { if(*p != c) s[i++] = *p ; for(i=0;*p && *q; i++) { p++; q++; } p++ ; } if(*p == 0 && *q == 0) return s ; s[i] = 0 ; if(*p) return s ; else return t ; k len ss[i][j] next t->data t result *=n--; result fun (char *a) printf(\,*a) ; 61.请编写函数fun,它的功能是:求出ss所指字符串中指定字62.请编写一个函数void fun(char *tt,int pp[]),统计在字符串符的个数,并返回此值。 中'a'到'z'26个字母各自出现的次数,并依次放在pp所指数组求ss指定字符个数 中。 int cnt = 0 ; char *p = ss ; 统计26个字母出现次数 while(*p) { char *p = tt ; int i ; if(*p == c) cnt++ ; for(i = 0 ; i < 26 ; i++) pp[i] = 0 ; p++ ; } while(*p) { return cnt ; if(*p >= 'a' && *p <= 'z') pp[*p - 'a'] += 1 ; p++ ; } j++ s[i]=t1[i] j 1 s[k] c for (j = i + 1;j < 6;j++) *(pstr+i)=*(pstr+j); long s = 0, t = 0 ; t=t/10; 63.请编写一个函数void fun(char a[],char b[],int n),其功能是:64.请编写函数fun,该函数的功能是:统计一行字符串中单词删除一个字符串中指定下标的字符。 的个数,作为函数值返回。 删除指定下标字符 统计一行串中单词个数 strncpy(b, a, n) ; int k = 1 ; b[n] = 0 ; while(*s) { if(*s == ' ') k++ ; strcat(b, a + n + 1) ; s++ ; } return k ; t=i i '\\0' filename fp fp while(fabs(t)>=num) p=(NODE *)malloc(sizeof(NODE)); t=s/n; return h; 7
65.请编写函数fun,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。 M个字符串合并成新串 int i; *b=0; for(i = 0 ; i < M ; i++) strcat(b, a[i]) ; next 0 r r=t; if(*r==0) 67.编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。 实现两个字符串连接 char *p=p1; while(*p)p++; while(*p2) *p++=*p2++; *p=0; 0 10*x n/10 *t=0; if(d%2!=0) 69.请编一个函数fun(char *s),该函数的功能是把字符串中的内容逆置。 字符串逆置 strrev(s); i+1 k=j t void fun(char *str, char ch) if(*str!=ch) str[1] = 0; 66.请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出YES,否则返回0,主函数中输出N0。回文 int i, j = strlen(str) ; for(i = 0 ; i < j / 2 ; i++) if(str[i] != str[j - i - 1]) return 0 ; return 1 ; double f1 f2 p=h->next; p=p->next; 68.请编写一个函数,用来删除字符串中的所有空格。 删除字符串中所有空格 char *p = str ; int i = 0 ; while(*p) { if(*p != ' ') str[i++] = *p ; p++ ; } str[i] = 0 ; 0 || 1 t-=1.0/i; return t; 70.请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数 -1234 数字字符串转换为整数 int i, len, t; long x=0; len=strlen(p); if(p[0]=='-') { t=-1; len--; p++; } else t=1; while(*p) x = x*10-48+(*p++); 10 0 x if (n==0) result *= n--; 71功能是:移动字符串中的内容,移动的规则如下:把第1到第72.编写一个函数,该函数可以统计一个长度为2的字符串在m个字符,平移到字符串的最后,把第m+1到最后的字符移到另一个字符串中出现的次数。 字符串的前部。 统计子串出现的次数 int cnt = 0 ; char *p = str, *q ; 1第m个字符移到串后 while(*p) { q = strstr(p, substr) ; int i,j; char t; for(i=1;i<=m;i++) {t=w[0]; if(q == NULL) break; for(j=1;w[j]!='\\0';j++) w[j-1]= w[j] ; w[j-1] =t; } p = q + strlen(substr) ; cnt++ ; } return cnt ; double f1 f2 N len *n=len char *fun(char *s,char *t) t += 1.0/i; ss++; return t; tt++; 类型七:套用公式计算型 73.编写函数fun,函数的功能是:根据以下公式计算s,计算结74.编写函数fun,它的功能是:利用以下所示的简单迭代方法果作为函数值返回;n通过形参传入。求方程cos(x)-x=0的一个实根。Xn+1=cos(Xn) s=1+1/(1+2)+1/(1+2+3)+.......+1/(1+2+3+4+......+n), cos(x)-x=0的一个实根 0.739085 若n的值为11时,函数的值为1.833333。 int i,j,t; float s=0; float x0, x1=0.0; for(i=1;i<=n;i++) do { x0=x1; x1=cos(x0); { t=0; for(j=1;j<=i;j++) t+=j; s=s+1./t; } } while(fabs(x0-x1)>0.000001); return s; return x1; '\\0' 0 c i++ m m double sum=0.0; while ((high >= 2) && (n < 10) ) sum /= c; yes=0; break; 8
76.请编写函数fun,其功能是:计算并输出下列多项式值: Sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n! 若主函数从键盘给n输入15,则输出为s=2.718282。 double s=1 ; long t=1; int i; for(i=1; i<=n; i++) { t=t*i; s+=1./t; } return s; 1 -1 t for(i=1; i<=3; i++) if(k>=0 && k<=6) 78.请编写函数fun,其功能是:计算并输出下列多项式值: Sn=(1-1/2)+(1/3-1/4)+...+(1/(2n-1)1/2n) 若输入8后,则输出为S=0.662872。 int i; double sum=0.0; if (n>1 && n<=100) { for(i=1; i<=n; i++) sum+=1.0/(2*i-1)-1.0/(2*i); } return sum; j=2 i j sum=j=0; if(sum%4==2) 80.编写函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求m>n。p=m!/n!(m-n)!。 m=12,n=8,运行结果为495.000000。 float p; p=1.0*jc(m)/jc(n)/jc(m-n) ; return p; *s s++ n int j, c=0; float xa=0.; if (x[j] )>=xa) 82.请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。 75. 若m的值为20,则fun函数值为6.506583。 double s = 0.0 ; int i ; for(i = 1 ; i <= m ; i++) s += log(1.0 * i) ; s = sqrt(s) ; return s ; 0 j-- j double f( double x) return s; 77.请编写函数fun,其功能是:计算并输出当x<0.97时下列多项式的值,直到|Sn-S(n-1)|<0.000001为止。Sn=1+0.5x+0.5(0.5-1)/2!x(2)+...+ 0.5(0.5-1)(0.5-2) .....(0.5-n+1)/n!x(n) 输入0.21后,则输出为s=1.100000。 double s1=1.0,p=1.0,sum=0.0,s0,t=1.0; int n=1; do{s0=s1;sum+=s0; t*=n;p*=(0.5-n+1)*x; s1=p/t; n++;}while(fabs(s1-s0)>1e-6); return sum; x n fabs(t) for(i=1; i<=y; i++) t=t00; 79.请编写函数fun,其功能是:计算并输出 S=1+(1+2^0.5)+(1+2^0.5+3^0.5)+……+ (1+2^0.5+3^0.5+……+n^0.5) 输入20后,则输出为s=534.188884。 int i; double fac=1.0; double sum=1.0; for(i=2;i<=n;i++) { fac+=sqrt(i); sum+=fac; } return sum; a a b c=c+32; c=c+5; 81.编写函数fun,它的功能是:计算并输出下列级数和:S=1/1*2+1/2*3+...+1/n(n+1) n=10时,函数值为0.909091。 double s = 0.0 ; int i ; for(i = 1 ; i <= n ; i++) s = s + 1.0 / (i * (i + 1)) ; return s ; *s 1 k[n] double fun(int k) return s; x2x3xnS=1+x+2!+3!+……+n! 当n=10,x=0.3时,函数值为1.349859。 double s = 1.0, y = x ; int i ; for(i = 1 ; i <= n ; i++) { s += y / (double)jc(i) ; y *= x ; } return s ; i ps[j] tp double fun(int n) return sum; 83.请编写一个函数fun,它的功能是:根据以下公式求π的值 84. 请编写函数fun,其功能是:计算并输出下列多项式求π的值 值:s=1+1/(1*2)+1/(1*2*3)+..1/(1*2*3...*50) double s=1.0; 例如,若主函数从键盘给n输入50后,则输出为S=1.718282。 float n=1.0,t=1,pi=0; double t,sn=1.0; int i,j; while((fabs(s))>=eps) for(i=1;i 9 85.请编写函数fun,它的功能是:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数 能被7或11整除,但不能同时被7和11整除 int i ; *n = 0 ; for(i = 7 ; i < 1000 ; i++) if(((i % 7) == 0 || (i % 11) == 0) && (i % 77) != 0) a[(*n)++] = i ; s[i] '9' *t=n t=*x;*x=y; return(t); 86.请编写一个函数fun,它的功能是:求出1到m之内(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 能被7或11整除 int i ; *n=0 ; for(i=7 ; i<=m; i++) if((i % 7 == 0) || (i % 11 == 0)) a[(*n)++]=i ; q next next p = j; p = i; 88.请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 能整除形参x且不是偶数的各整数 int i; *n=0; for(i=1; i <= x; i++) if((x % i== 0) && (i % 2)) pp[(*n)++]=i; t,s s[i] '\\0' if(i%k==0) if (k == i) 87.编写函数fun,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。例如,若n为1000时,函数值应为s=153.909064。 同时能被3与7整除的所有自然数之和的平方根 double sum=0.0; int i; for(i=21; i<=n; i++) if((i % 3==0) && (i % 7==0)) sum+=i; return sqrt(sum) ; '0' s++ sum if ((k == 0) || (k == 0)) } 89.请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。 N以内能被5或9整除的所有自然数倒数之和 int i; double sum=0.0; for(i=1; i<=n; i++) if(i%5 == 0 || i%9 == 0) sum+=1.0/i; return sum; a[i] a[i] 0 y=1; d=a-i; 类型九:其它各类计算 90.请编写函数fun,它的功能是:求Fibonacci数列中大于t的91.请编写函数fun,其功能是:将所有大于1小于整数m的非最小的一个数,结果由函数返回。 素数存入xx所指数组中,非素数的个数通过k传回。 fibonacci 大于1小于m的非素数 int f0 = 0, f1 = 1, f ; int i,j;*k=0; do { f = f0 + f1 ;f0 = f1 ; f1 = f ; } while(f < t) ; for( i=2; i 94.请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m 的k个素数存入xx所指的数组中。 大于整数m且紧靠m的k个素数 int i,j=0,p=m+1; do { for( i=2;i =p) xx[j++]=p; p++;} while(j