1、C语言程序设计请编写函数fun,其功能是:找出2M整型二维数组中最大元素值,并将此值返回调用函数。int fun (int aM)int i,j,max=a00; for(i=0;i2;i+) for(j=0;jM;j+) if(max=eps) /*当某项不不大于精度规定期,继续求下一项*/ s1=s1*n/(2*n+1); /*求多项式每一项*/ s=s+s1; /*求和*/ n+; return 2*s;编写函数fun,其功能是:求出11000之间能被7或11整除,但不能同步被7和11整除所有整数,并将其放在a所指数组中,通过n返回这些数个数。void fun (int *a,int *
2、n) int i,j=0; for(i=1;i=1000;i+) /*求1到1000之内能被7或11整除、但不能同步被7和11整除所有整数,并放入数组a中*/ if(i%7=0|i%11=0)&i%77!=0) aj+=i; *n=j; 规定输入字符串中只涉及字母和*号。编写函数fun,其功能是:删除字符串中所有*号。编写函数时,不得使用C语言提供字符串函数。例如,字符串中内容为:*A*BC*DEF*G*,删除后字符串中内容应当是:ABCDEFG。void fun( char *a ) int i,j=0; for(i=0;ai!=0;i+) if(ai!=*) aj+=ai; /*若不是要删
3、除字符*则留下*/ aj=0;规定输入字符串中只涉及字母和*号。编写函数fun,其功能是:将字符串中前导*号所有删除,中间和尾部*号不删除。例如,字符串中内容为:*A*BC*DEF*G*,删除后字符串中内容应当是:A*BC*DEF*G*。编写函数时,不得使用C语言提供字符串函数。void fun( char *a )char *p=a; while(*p=*) p+; /*指针p指向字符串第一种字母*/ for(;*p!=0;p+,a+) *a=*p; /*从第一种字母开始,其后字符都放入指针a所指字符串中*/ *a=0; /*在字符串最后加上字符串结束标记*/假定输入字符串中只涉及字母和*号
4、。请编写函数fun,其功能是:除了尾部*号之外,将字符中其他*号所有删除。形参p已指向字符串中最后一种字母。在编写函数时,不得使用C语言提供字符串函数。例如,字符串中内容为*A*BC*DEF*G*,删除后,字符串中内容应当是ABCDEFG*。void fun( char *a,char *p )char *t=a; for(;t=p;t+) if(*t!=*) *(a+)=*t; for(;*t!=0;t+) *(a+)=*t; *a=0; /*在字符串最后加上字符串结束标记*/规定输入字符串中只涉及字母和*号。请编写函数fun,其功能是:只删除字符前导和尾部*号,串中字母间*号都不删除。形参
5、n给出了字符串长度,形参h给出了字符串中前导*号个数,形参e给出了字符串中尾部*号个数。在编写函数时,不得使用C语言提供字符串函数。例如,字符串中内容为:*A*BC*DEF*G*,删除后,字符串中内容应当是:A*BC*DEF*G。void fun( char *a,int n,int h,int e )int i,j=0; for(i=h;iave=0.0; for(i=0;iave=a-ave+a-si; /*求各门成绩总和*/ a-ave/=N; /*求平均分*/N名学生成绩已在主函数中放入一种带头节点链表构造中,h指向链表头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。例
6、如,若学生成绩是:8576698591726487,则平均分应当是:78.625。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;编写函数fun,其功能是:将所有不不大于1不大于整数m非素数存入xx所指数组中,非素数个数通过k返回。例如,若输入17,则应输出:46891012141516。void fun( int m,int *k,int xx )int i,j,n=0;for(i=4;im;i+) /*找出不不大于1不大于整数
7、m非素数*/ for(j=2;ji;j+) if(i%j=0) break; if(ji) xxn+=i;*k=n; /*返回非素数个数*/ 编写函数fun,其功能是:求ss所指字符串中指定字符个数,并返回此值。例如,若输入字符串,输入字符为1,则输出3。int fun(char *ss,char c)int i=0; for(;*ss!=0;ss+) if(*ss=c) i+;/*求出ss所指字符串中指定字符个数*/ return i;编写函数fun,其功能是:计算n门课程平均分,成果作为函数值返回。例如:若有5门课程成绩是:90.5,72,80,61.5,55,则函数值为:71.80。fl
8、oat fun ( float *a , int n ) int i; float av=0.0; for(i=0;in;i+) /*求分数总和*/ av=av+ai; return(av/n); /*返回平均值*/学生记录由学号和成绩构成,N名学生数据已放入主函数中构造体数组s中,请编写函数fun,其功能是:把分数最高学生数据放在b所指数组中。注意:分数最高学生也许不止一种,函数返回分数最高学生人数。int fun( STREC *a,STREC *b ) int i,j=0,max=a0.s; /*找出最大值*/ for(i=0;iN;i+) if(maxai.s) max=ai.s; f
9、or(i=0;iN;i+) if(max=ai.s) bj+=ai; /*找出成绩与max相等学生记录,存入构造体b中*/ return j; /*返回最高成绩学生人数*/编写函数void fun(char *tt,int pp),记录在tt所指字符串中a到z26个小写字母各自浮现次数,并依次放在pp所指数组中。例如,当输入字符串abcdefgabcdeabc后,程序输出成果应当是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0void fun(char *tt,int pp)int i; for(i=0;i=a&*tt=z) pp*tt
10、-a+; 编写函数fun,其功能是:比较字符串长度,(不得使用C语言提供求字符串长度函数),函数返回较长字符串。若两个字符长度相似,则返回第一种字符串。例如,输入beijingshanghai(为回车键),函数将返回shanghai。char *fun ( char *s, char *t) int i,j; for(i=0;si!= 0;i+); /*求字符串长度*/ for(j=0;tj!= 0;j+); if(i=j) /*比较两个字符串长度*/ return t; /*函数返回较长字符串,若两个字符串长度相等,则返回第1个字符串*/ else return s;学生记录由学号成绩构成,
11、N名学生数据已放入主函数中构造体数组s中,请编写函数fun,其功能是:函数返回该学号学生数据,指定学号在主函数中输入。若没找到指定学号,在构造体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较函数是strcmp)。STREC fun( STREC *a,char *b )int i; STREC str=0,-1; /*若没找到指定学号,在构造体变量中给学号置空串,给成绩置1*/ for(i=0;i=1e-6);return x1;学生记录由学号和成绩构成,N名学生数据已放入主函数中构造体数组中,请编写函数fun,其功能是:把分数最低学生数据放入b所指数组中,注意:分数最低学
12、生也许不止一种,函数返回分数最低学生人数。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相等学生记录,存入构造体b中*/ return j;编写函数fun,其功能是计算:s作为函数值返回。 在C语言中可调用log(n)函数求ln(n)。log函数引用阐明为:double log(double x)。 例如,若m值为20,则fun函数值为6.506583。double fun( int
13、m ) int i; double s=0.0; for(i=1;i=m;i+) s=s+log(i); /*计算sln(1)ln(2)ln(3)ln(m)*/ return sqrt(s); /*对s求平方根并返回*/函数fun功能是:将s所指字符串中下标为偶数字符删除,剩余字符形成新串放在t所指数组中。例如,当s所指字符串中内容为ABCDEFGHIJK时,在t所指数组中内容应是:BDFHJ。void fun(char *s,char t)int i,j=0,k=strlen(s); /*k为字符串长度*/ for(i=1;ik;i=i+2) /*将s所指字符串中下标为奇数字符存入t所指字符
14、串中*/ tj+=si; tj=0;编写函数fun,其功能是:将a、b中两个两位正整数合并成一种新整数放在c中。合并方式是:将a中十位和个位数依次放在变量c百位和个位上,b中十位和个位数依次放在变量c十位和千位上。例如,当a45,b12,调用该函数后c2415。void fun(int a,int b,long *c)*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;学生记录由学号和成绩构成,N名学生数据已放入主函数中构造体数组s中,请编写函数fun,其功能是:按分数降序排列学生记录,高分在前,低分在后。void fun( STREC a ) int i,j;
15、STREC t; for(i=1;iN;i+) /*用冒泡法进行排序,进行N1次比较*/ for(j=0;jN-1;j+) /*在每一次比较中要进行N1次两两比较*/ if(aj.saj+1.s) t=aj;aj=aj+1;aj+1=t; /*按分数高低排列学生记录,高分在前*/学生记录由学号和成绩构成。N名学生数据已放入主函数中构造体数组s中,请编写函数fun,其功能是:把高于等于平均分学生数据放在b所指数组中,高于等于平均分学生人数通过形参n传回,平均分通过函数值返回。double fun( STREC *a,STREC *b,int *n ) int i; double av=0.0;
16、*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; /*将高于等于平均分学生存入b所指存储单元中,并记录人数*/ return av; /*返回平均分*/编写函数fun,其功能是:将1到m之间(含m)能被7或11整除所有整数放在数组a中,并通过n返回这些数个数。例如,若传给m值为50,则程序输出:711142122283335424449void fun ( int m,int *a ,int *n )int i,j=0; for(i=1;is; while(
17、h!=NULL) /*通过循环找到最高分数*/ if(maxs) max=h-s; h=h-next; return max;请编写函数fun,其功能是:找出一维整型数组元素中最大值及其所在下标,并通过形参传回。数组元素中值已在主函数中赋予。主函数中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+) /*将最大元素放入指针max所指单元,最大元素下标放入指针d所指单元*/ if(*maxai) *max=ai;*d=
18、i;编写函数fun,其功能是:将s所指字符串中除了下标为奇数同步ASCII值也为奇数字符之外,别的所有字符所有删除,串中剩余字符所形成一种新串放在t所指数组中。例如,若s所指字符串内容为:ABCDEFG12345,其中字符AASCII码值为奇数,但所在元素下标为偶数,因而需要删除;而字符1ASCII码值为奇数,所在数组中下标也为奇数,因而不应当删除,其他依此类推。最后t所指数组中内容应为:135。void fun(char *s,char t) int i,j=0,n; n=strlen(s); for(i=0;in;i+) if(i%2!=0&si%2!=0) tj=si; /*将下标为奇数
19、同步ASCII码值为奇数字符放入数组t中*/ j+; tj=0;/*最后加上结束标记符*/编写函数fun,其功能是:实现BAA,即将矩阵A加上A转置,存储在矩阵B中。计算成果在main函数中输出。例如,输入下面矩阵:其转置矩阵为: 程序输出: void fun ( int a33,int b33)int i,j; for(i=0;i3;i+) for(j=0;j3;j+) bij=aij+aji;/*把矩阵a加上a转置,存储在矩阵b中*/请编写函数fun,该函数功能是:将M行N列二维数组中数据,按列顺序依次放到一维数组中。一维数 组中数据个数存储在形参n所指存储单元中。例如,若二维数组中数据为33 33 33 3344 44 44 4455 55 55 55则一维数组中内容应是:33 44 55 33 44 55 33 44 55 33 44 55void 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)+j); *n=*n+1; /*通过指针返回元素个数*/