1、1、 找出2xM整型二维数组中最大元素的值,并将此值返回调用函数。int fun (int aM)int i,j,max=a00; for(i=0;i2;i+) for(j=0;jM;j+) if(max=eps) s=s+s1; s1=s1*n/(2*n+1); n+; return 2*s;3、求出11000之间能被7或11整除但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。 void fun (int *a, int *n) int i,j=0; for(i=1;iave=0.0; for(i=0;iave=a-ave+a-si; a-ave/=N;
2、 7、n名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。求出平均分,并由函数值返回double fun( STREC *h ) double ave=0.0; STREC *p=h-next; while(p!=NULL) ave=ave+p-s; p=p-next; return ave/N;8、将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过K返回。void fun( int m, int *k, int xx ) int i,j,n=0;for(i=4;im;i+) for(j=2;ji;j+) if(i%j=0) break; if(ji)
3、xxn+=i;*k=n; 9、求ss所指字符串中指定字符的个数,并返回此值。int fun(char *ss, char c) int i=0; for(;*ss!=0;ss+) if(*ss=c) i+; return i;10、计算n门课程的平均分,结果作为函数值返回。float fun ( float *a , int n ) int i; float av=0.0; for(i=0; in;i+) av=av+ai; return(av/n); 11、 学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,求最高的学生数据放在b所指的数组中。注意:分数最高的学生也许
4、不止一个,函数返回分数最高的学生的人数。int fun( STREC *a, STREC *b ) int i,j=0,max=a0.s; for(i=0;iN;i+) if(maxai.s) max=ai.s; for(i=0;iN;i+) if(max=ai.s) bj+=ai; return j; 12、 除了字符串前导的*号之外,将串中其他*号所有删除。void fun( char *a ) int i=0; char *p=a; while(*p&*p=*) ai=*p; i+; p+; while(*p) if(*p!=*) ai=*p;i+; p+; ai=0;13、 记录在tt
5、所指的字符串中a到z26个小写字母给出现的次数,并依次放在pp所指数组中。void fun(char *tt, int pp) int i; for(i=0;i=a&*tt=z) pp*tt-a+; 14、 将字符串尾部的*号所有删除,前面和中间的*号不动。void fun( char *a ) while(*a!=0) a+; a-; while(*a=*) a-; *(a+1)=0; 15、 比较字符串的长度,函数返回较长的字符串,假如相同,则返回第一个字符串。char *fun ( char *s, char *t) int i,j; for(i=0;si!= 0;i+); for(j=
6、0;tj!= 0;j+); if(i=j) return t; else return s;16、 学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,函数返回该学生的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数数值返回。 STREC fun( STREC *a, char *b )int i; STREC str=0,-1; for(i=0;i=1e-6); return x1; 19、 将字符串中的前导*号所有移到字符串尾部。void fun( char *a ) int i=0,n=0;char *p;p=a
7、;while (*p=*) /*判断*p是否是*号,并记录*号的个数*/ n+;p+;while(*p) /*将前导*号后的字符传递给a*/ ai=*p;i+;p+;while(n!=0)ai=*;i+;n-;ai=0;20、 N名学生的数据已放入主函数中的结构体数组中,把分数最低的学生数据放入b所指的数组中。int fun( STREC *a, STREC *b )int i,j=0,min=a0.s; for(i=0;iai.s) min=ai.s; /*找出最小值*/ for(i=0;iN;i+) if(min=ai.s) bj+=ai; /*找出成绩与min相等的学生的记录,存入结构体
8、b中*/ return j; 21、 计算double fun( int m ) int i; double s=0.0; for(i=1;i=m;i+) s=s+log(i); return sqrt(s); 22、 只删除字符前导和尾部的*号,串中字母间的*号都不删除。void fun( char *a, int n,int h,int e ) int i,j=0; for(i=h;in-e;i+) aj+=ai; aj=0; 23、 将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中void fun(char *s, char t) int i,j=0,k=strl
9、en(s); for(i=1;ik;i=i+2) tj+=si; tj=0;24、 将a,b中的两位正整数合并成一个新的整数放在c中。合并方式是:将a中的十位和个位依次放在变量c的百位和个位上,B中的十位和个位数依次放在变量c的十位和千位上。void fun(int a, int b, long *c)*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;25、 除了尾部的*号之外,将字符中的其他的*号所有删除。形参p已指向字符串最后的一个字母。void fun( char *a, char *p ) char *t=a; for(;t=p;t+) if(*t!=*
10、) *(a+)=*t; for(;*t!=0;t+) *(a+)=*t; *a=0;26、 N名学生的数据已放入主函数中的结构体数组中,按分数降序排列学生的记录,高分在前,低分在后。void fun( STREC a ) int i,j; STREC t; for(i=1;iN;i+) for(j=0;jN-1;j+) if(aj.saj+1.s) t=aj;aj=aj+1;aj+1=t; 27、 N名学生的数据已放入主函数中的结构体数组中,把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。double fun( STREC *a, S
11、TREC *b, int *n ) int i; double av=0.0; *n=0; for(i=0;iN;i+) av=av+ai.s; av=av/N; for(i=0;iN;i+) if(av=ai.s) b*n=ai;*n=*n+1; return av; 28、 将1m之间(含m)能被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。void fun ( int m, int *a , int *n ) int i,j=0; for(i=1;is; while(h!=NULL) if(maxs) max=h-s; h=h-next; return max;30、 找
12、出一维整型数组元素最大的值及其所在的下标,并通过形参传回。主函数中x是数组名,n是x数据个数,max存放最大值,index存放最大值所在元素的下标。void fun(int a,int n, int *max, int *d) int i; *max=a0; *d=0; for(i=0;in;i+) if(*maxai) *max=ai;*d=i;31、 将s所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符所有删除,串在剩余字符所形成的一个新串放在t所指的数组中。void fun(char *s, char t) int i,j=0,n; n=strlen(s);
13、for(i=0;in;i+) if(i%2!=0&si%2!=0) tj=si; j+; tj=0; 32、 实现B=A+A,即将矩阵A加上A的转置,存放在矩阵B中。void fun ( int a33, int b33) int i,j; for(i=0;i3;i+) for(j=0;j3;j+) bij=aij+aji; 33、 将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。void fun(int (*s)10,int *b,int *n,int mm,int nn) int i,j;for(j=0;jnn;j+) for(i=0;imm;i+) b*n=*(*(s+i)+
14、j); *n=*n+1; 34、 将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。void fun(int a, int b, long *c)*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000; 35、 将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并成一个新的字符串。void fun(char aMN,char *b) int i,j,k=0; for(i=0;iM;i+) for(j=0;aij!=0;j+) bk+=aij; bk=
15、0; 36、 删除一个字符串中指定下标的字符。a指向原字符后的字符串存放在b所指的数组中,n中存指定的下标。void fun (char a, char b, int n) int i,k=0; for(i=0;ai!=0;i+) if(i!=n) bk+=ai; bk=0; 37、 移动一维数组中的内容,若数组中有n个整数,规定把下标从0p(含p,p小于等于n-1)的数组元素平移到数组的最后。 void fun(int *w, int p, int n) int x,j,ch; for(x=0;x=p;x+) ch=w0; for(j=1;jn;j+) wj-1=wj; wn-1=ch; 3
16、8、 将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。void fun(char (*s)N,char *b) int i,j,k=0; for(i=0;iN;i+) for(j=0;jM;j+) bk+=sji; bk=0;39、 计算float fun(int n) int i,s1=0; float s=0.0; for(i=1;i=n;i+) s1=s1+i; s=s+1.0/s1; return s; 40、 将s所指字符串中ASCCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中void fun(char *s, char t) int i,j=0,n;
17、 n=strlen(s); for(i=0;in;i+) if(si%2=0) tj=si; j+; tj=0;42、删除一维数组中所有相同的数使之只剩一个。数组中的数已按由小到大的顺序排列函数返回删除后数组的数据。int fun(int a, int n) int i,j=1; for(i=1;in;i+) if(aj-1!=ai) aj+=ai; return j; 43、 除了字符串前导和尾部的*号外,将串中其他的*号所有删除。void fun( char *a, char *h,char *p ) int i=0; char *q=a; while(qh) ai=*q; q+;i+;
18、while(qn) while(*p) ai=*(p+k-n); i+; p+; ai=0; 46、将两个两位数的正整数a,b合并成一个整数放在c中,合并方式是:将a数的十位和个位数依次在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。void fun(int a, int b, long *c) *c=a/10+(b/10)*10+(a%10)*100+(b%10)*1000;47、将一个数字字符串转换为一个整数。答案:ong fun ( char *p) long n=0; int flag=1; if(*p=-) p+;flag= -1; else if(*p=+) p
19、+; while(*p!=0) n=n*10+*p-0; p+; return n*flag;48、求Fibonacc数列中大于t的最小的数,结果由函数返回。Fibonacc数列F(n)定义为int fun( int t) int f0 = 0, f1 = 1, f ; do f = f0 + f1 ; f0 = f1 ; f1 = f ; while(f t) ; return f ;49、 把低于平均分的学生数据放入b所指的数组中低于平均分的学生人数通过形参n返回,平均分通过函数值返回double fun( STREC *a, STREC *b, int *n ) int i,j=0; d
20、ouble av=0.0; for(i=0;iN;i+) av=av+ai.s; av=av/N; for(i=0;iN;i+) if(ai.s=a&ssin) while(*p&pt+n+1) ai=*p; i+;p+; ai=0; 53、 将a,b两个正整数合并成一个新的整数放在c中。合并方式:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的百位和个位上。void fun(int a, int b, long *c) *c=b%10+(a/10)*10+(b/10)*100+(a%10)*1000;54、 将a,b两个正整数合并成一个新的整数放在c中。合
21、并方式:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的十位和个位上。void fun(int a, int b, long *c) *c=b%10+(a%10)*10+(b/10)*100+(a/10)*1000;55、 把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。int fun( STREC *a,STREC *b,int l, int h ) int i,j=0; for(i=0;i=l&ai.s=h) bj+=ai; return j; 56、 将s所指字符串中ASCII码值为偶数的字符删除,串中剩余字符形成一个新
22、串放在t所指的数组中。void fun(char *s, char t) int i=0; for(;*s!=0;s+) if(*s%2=1) ti+=*s; ti=0; 57、 找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)fun(STU a, STU *s) int i; *s=a0; for(i=0;isai.s) *s=ai;58、 定义了N x N的二维数组,使数组左下办三角元素中的值乘以n。void fun(int a N, int n) int i,j; for(i=0;iN;i+) for(j=0;j=i;j+) aij=aij*n;59、 定义了N x N的
23、二维数组,使数组左下办三角元素中的值所有置成0.void fun (int aN) int i,j; for(i=0;iN;i+) for(j=0;j=i;j+) aij=0; 60、 请编一个函数void fun(int ttMN),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。void fun(int ttMN,int ppN) int i,j,max;for(j=0;jN;j+) max=tt0j; for(i=0;imax) max=ttij; ppj=max; 61、 w是一个大于10的无符号整数,若w是n(n2)位的整数,则函数求出w的
24、后n-1位的数作为函数值返回unsigned fun(unsigned w) int n=1,j,s=1;unsigned t;t=w;while(t=10) t=t/10;n+; for(j=1;jn;j+)s=s*10; return w%s;62、 请编一个函数fun(char*s),该函数的功能是:把字符串中的内容逆置。void fun(char*s)char ch;int i,m,n;i=0;m=n=strlen(s)-1;while(i(n+1)/2) ch=si;si=sm;sm=ch;i+; m-; 63、 从字符串中删除指定的字符。同字母的大、小写按不同字符解决void fu
25、n( char s,int c) int i=0; char *p; p=s; while(*p) if(*p!=c) si=*p; i+; p+; si=0;64、对长度为7个字符的字符串,除首、尾字符外,将其余5个字符安ASCII码降序排列。void fun(char *s,int num) char ch ; int i, j ; for(i = 1 ; i 6 ; i+) for(j = i + 1 ; j 6 ; j+) if(*(s + i) *(s + j) ch = *(s + j) ; *(s + j) = *(s +i) ; *(s + i) = ch ; 65、 记录一个
26、长度为2的字符串在另一个字符串中出现的次数。int fun(char *str, char *substr) int i,j=0; for(i=0;stri!=0;i+) if(stri=substr0&stri+1=substr1) j+; return j; 66、 计算并输出给定整数n的所有因子(不涉及1与自身)之和。规定n的值不大于1000.int fun(int n) int s=0,i; for(i=2;i=n-1;i+) if(n%i=0) s+=i;return s;67、 计算double fun(int n) double t,sn=1.0; int i,j; for(i=
27、1;i=n;i+) t=1.0; for(j=1;j=i;j+) t*=j; sn+=1.0/t; return sn; 68、 计算并输出x=1e-6);return sum;69、 计算并输出给定10个数的方差,其中double fun(double x10) double x1=0.0,s=0.0; int i; for(i=0;i10;i+) x1=x1+xi; x1=x1/10; for(i=0;i10;i+) s=s+(xi-x1)*(xi-x1); return sqrt(s/10); 70、 计算并输出给定数组(长度为9)中相邻两个元素的平均值的平方根之和。double fun
28、(double x9) double sum=0.0;int i,j=1;for(i=0;i9;i+)if(j=8) sum+=sqrt(xi+xi+1)/2.0);j+; return sum; 71、 计算并输出下列多项式值double fun(int n) int i; double s=0.0; for(i=1;i=n;i+) s=s+(1.0/(2*i-1)-1.0/(2*i); return s; 72、计算并输出多项式值double fun(int n)double sum=0,tmp=1;int i;for(i=1;i=n;i+)tmp=tmp*i;sum+=1.0/tmp;return sum;73、 计算并输出n(涉及n)以内所有可以被5或9整除的自然数的倒数之和。double fun(int n) int i; double sum=0.0; for(i=1;i=n;i+)