二级C语言编程.doc
1.学生的记录由学号与成绩组成,N名学生的数据在主函数中放入结构体数组s中,编fun,功能:返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。inti;STRECh;for(i=0;i<N;i+)if(strcmp(ai.num,b)=0)h=ai;break;else strcpy(h.num, "");h.s=-1;return h;2.函数fun:将s所指字符串中ASC|值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。int i,j=0;for(i=0;si!=0;i+)if(si%2=1)tj+=si;tj=0;3.假定输入的字符串只有字母和*号。编fun,功能:将字符串尾部的*号全部删除,前面和中间的*号不删除。int i=0;char *p,*q;p=q=a;while(*p)p+;p-;while(*p=*)p-;while(q<=p)ai=*q;i+;q+;ai=0;4.编fun,功能:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。inti,n=0;for(i=0;i<strlen(s);i+)if(si+1= &&si>=a&&si<=z|si+1=0) n+;return n;5.fun,功能:统计各龄段的人数。N个年龄通过随机函数获得,并放在主函数的age数组中;要求函数把0至9年龄段的人数放在d0中,10至19的放d1中,20至29的放d2,其余类推,把100岁(含100)以上的放d10。int i;for(i=0;i<N;i+)if(ai>=0&&ai<100) bai/10+; else if(ai>=100) b10+;6.编fun,功能:求出小于或等于lim的所有素数并放在aa数组中,函数返回所求出的素数个数。int k=0,i,j;for(i=lim;i>1;i-)for(j=2;j<i;j+)if(i%j=0)break;else continue;if(j>=i)aak=i;k+;return k+;7.编fun,功能:s=(ln(1)+ln(2)+ln(3)+ln(m)的开平方,s作为函数值返回。double s=0;int i;for(i=1;i<=m;i+)s+=logireturn sqrt(s);8.编fun,删除一堆数组中所有相同的数,使之只剩一个。数组中的数已按有小到大的顺序排列,函数返回删除后数组中数据的个数。int i,c=0;int bN;for(i=0;i<N;i+)if(ai!=ai+1)bc+=ai;for(i=0;i<N;i+)ai=bi;return c;9.编fun,将ss所指字符串中所有下标为奇数位置上的字母转换为大写.(只转换字母)。int i,n=0;char *p=ss;while(*p)n+;p+; for(i=0;i<n;i+)if(ssi>=a&&ssi<=z)&&i%2!=0)ssi=ssi-32;ssi=0;10.程序定义了N*N的二维数组,并在主函数中赋值。编fun,功能:求出数组周边元素的平均值并作为函数值返回给主函数中的s。inti,j,k=0;doubles=0.0;for(j=0;j<N;j+) s+=w0j;k+;for(j=0;j<N;j+)s+=wN-1j;k+;for(i=1;i<=N-2;i+)s+=wi0;k+;for(i=1;i<=N-2;i+)s+=wiN-1;k+;return s/=k;11.编float fun(double h),功能:对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)。long t;float s;h=h*1000;t=(h+5)/10;s=(float)t/100.0;return s;12.编fun,将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。int i,j,n=0;for(j=0;j<N;j+)for(i=0;i<M;i+)bn=*(*(s+i)+j);n+;bn=0;13.编fun,功能:移动字符串的内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前面。charbN;int i,j=0;for(i=0;i<m;i+)bj=wi;j+;for(i=0;i<strlen(w)-m;i+)wi=wi+m;for(j=0;j<m;j+)wi=bj;i+;wi=0;14.编fun,功能:移动一堆数组中的内容;若数组中有n个整数,要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。intaN;inti,j=0;for(i=0;i<=p;i+)ai=wi;for(;i<n;i+)wj+=wi;for(i=0;i<=p;i+)wj+=ai;15.编fun,功能:计算并输出给定10个数的方差:inti,j;doubles=0.0,s1=0.0;for(i=0;i<10;i+)s1+=xi;s1/=10;for(j=0;j<10;j+)s+=(xj-s1)*(xj-s1);s/=10;s=power(s,0.5);return s; 16.编fun,功能:求出二维数组周边元素之和,作为函数值返回。二维数组值在主函数中赋inti,j,s=0;for(j=0;j<N;j+)s+=a0j;s+=aM-1j;for(i=1;i<=M-2;i+)s+=ai0;s+=aiN-1;return s; 17.编fun,功能:将放在字符串数组中的M个字符串(没穿的长度不超过N),按顺序合并组成一个新的字符串。int i,j,k=0;for(i=0;i<M;i+)for(j=0;j<N;j+)if(*(*(a+i)+j)bk=*(*(a+i)+j);k+;else break;bk=0;18.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,编fun,功能:把分数最低的学生数据放在b所指的数组中,注意:分数最低的可能不止一个,函数返回分数最低的学生的人数。inti,j=0,n=0,min; min=a0.s;for(i=0;i<N;i+)if(ai.s<min)min=ai.s;for(i=0;i<N;i+)if(ai.s=min)*(b+j)=ai;j+;n+;return n;19.编fun,功能:利用方程:cos(x)-x=0的一个实根。 迭代步骤:(!)取x1初值为0.0;(2)x0=x1,把x1的值赋给x0;(3)x1=cos(x0),求出一个新的x1;(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。floatx0,x1=0.0;dox0=x1;x1=cos(x0);while(fabs(x0-x1)>= le-6);return x1;20.编fun,功能:将M行N列的二维数组中的数据,按列的顺序依次放到一堆数组中。for(j=0;j<nn;j+)for(i=0;i<=mm;i+)bnp+=sij;*n=np21.函数fun,功能:将两个两位数的正整数a,b合并形成一个整数放在c中。合并的方式:将a数的十位和个位依次放在c数的千位和十位上,b数的十位和个位依次放在c数的百位和个位上。*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;22.编void fun(char *tt,int pp),统计在tt字符串中a到z26个字母各自出现的次数,并依次放在pp所指数组中。int i,j,c;for(i=0;i<26;i+)c=0;for(j=0;ttj!=0;j+)if(tti=a+i)c+;ppi=c;23.学生的记录由学号和成绩组成,N名学生的数据已存入a结构体数组中。编fun,功能:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。int i,min;min=a0.s;for(i=0;i<N;i+)if(ai.s<min)min=ai.s;*s=ai;24.编fun,功能:求出一个2×M整形二维数组中最大元素的值,并将此值返回调用函数。inti,j,max;max=a00;for(i=0;i<2;i+)for(j=0;j<M;j+)if(aij>max)max=aij;return max;25.程序定义了N×N的二维数组,并在主函数中自动赋值。编fun(int aN,int n),功能:使数组左下三角元素中的值乘以n。int i,j;for(i=0;i<N;i+)for(j=0;j<=i;j+)aij=aij*n;26.编fun,功能:将M行N列的二维数组中的数据,按行的顺序依次放在一堆数组中,一堆数组中数据的个数存放在形参n所指的存储inti,j;for(i=0;i<mm;i+)for(j=0;j<nn;j+)b*n=*(*(s+i)+j);*n=*n+1;27.编fun,功能:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。double s=0.0;int i;for(i=1;i<=n;i+)if(i%5=0|i%9=0)s=s+1.0/i;return s;28.编fun,功能:判断字符串是否为回文?若是,函数返回1,主函数中输出:YES,否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。int i,n=0,fg=1;char *p=str;while(*p)n+;p+;for(i=0;i<n/2;i+)if(stri=strn-1-i)elsefg=0;break;return fg;29.函数fun,功能:将两个两位数的正整数a,b合并形成一个整数放在c中。合并方式:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位数。*c=b%10*1000+a%10*100+b/10*10+a/10;30.编fun,功能:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们存放在a所指的数组中,通过n返回这些数的个数。int i,c=0;for(i=2;i<1000;i+)if(i%7=0|i%11=0)&&i%77!=0)ac+=i;*n=c;31.N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头节点。编fun,功能:找出学生的最高分,由函数值返回。doublemax;STREC*q=h;max=h->s;doif(q->s>max)max=q->s;q=q->next;while(q!=0);return max;32.假定输入的字符串只包含字母和*号。编fun,功能:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。编程序时,不得使用C语言提供的字符串数。inti=0;char*p;for(p=a+h;p<a+n-e;p+)*(a+i)=*p;i+;*(a+i)=0;33.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,编fun,功能把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数函数值返回int i,j=0;for(i=0;i<N;i+)if(ai.s>=l&&ai.s<=h)bj=ai;j+;return j;34.编fun,功能:计算n门课程的平均分,计算结果作为函数值返回。inti;floatave=0.0;for(i=0;i<n;i+)ave+=ai;ave=ave/n;return ave;35.函数fun功能:将两个两位数的正整数a,b合并形成一个整数放在c中。合并方式:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。*c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;36. 假定输入的字符串只含字母和*号。编fun,功能:除了尾部的*之外,将字符串中其他*号全部删除。形参p已指向字符串中最后的一个字母。编时,不用C语言提供的字符串数。inttt,i;tt=p-a;for(i=0;ai!=0;i+)if(i<=tt&&ai!=*|i>tt)aj+=ai;aj=0;37.程序定义了N×N的二维数组,并在主函数中自动赋值。编fun使数组右上半三角元素中的值乘以m。int i,j;for(j=0;j<N;j+)for(i=0;i<=j;i+) aij=aij*m;38.编fun,功能:计算并输出当x<0.97时下列多项式的值直到| |<0.000001为止。double s1=1.0,p=1.0,sum=0.0,s0,t=1.0;int n=1;dos0=s1;sum+=s0;t*=n;p*=(0.5-n+1)*x;s1=p/t;n+;while(fabs(s1-s0)>=le-6);return sum;39.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,编fun,功能:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。int i,j=0;double aver=0.0;for(i=0;i<N;i+)aver=aver+ai.s;aver=aver/N;for(i=0;i<N;i+)if(ai.s>=aver)*(b+j)=ai;j+;*n=j;return aver;40. 函数fun功能:将两个两位数的正整数a,b合并形成一个整数放在c中。合并方式:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。*c=a%10*1000+b/10*100+a/10*10+b%10;41. 假定输入的字符串只含字母和*号。fun将字符串中的前导*号全部移到字符串的尾部。int i=0,n=0;char *p;p=a;while(*p=*)n+;p+;while(*p)ai=*p;i+;p+;while(n!=0)ai=*;i+;n-;ai=0;42.编fun,找出一堆整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。int i;*max=a0;*d=0;for(i=0;i<n;i+)if(ai>*max)*max=ai;*d=i;43.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,编fun,功能:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。inti,c=0;double ave=0;for(i=0;i<N;i+)ave+=ai.s;for(i=0;i<N;i+)if(ai.s<ave/N)bc+=ai;*n=c;return ave/N;44.假定输入的字符串只含字母和*号。编fun,功能:使字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。j=j-i;strcpy(a,a+j);j=j-n;i=0;while(aj!=0)ai=aj;i+;j+;ai=045.假定输入的字符串只含字母和*号。编fun,功能:除了字符串前导的*号之外,将串中其它*号全部删除。int i=0;char *p=a;while(*p&&*p=*)ai=*p;i+;p+;while(*p)if(*p!=*)ai=*p;i+;p+;ai=0;47.编fun,功能:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。inti,j;int t=0;for(i=2;i<m;i+)j=2;while(j<i)if(i%j=0)xxt=i;t+;break;j+;*k=t;48.编fun,功能:求出1到m之内(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。int i,j=0;*n=0;for(i=1;i<=m;i+)if(i%7=0|i%11=0)aj=i;j+;*n=j;49.编fun,功能:计算下列级数和,和值由函数值返回。S=1+x+x2/2!+x3/3!+xn/n!.doubles=1.0,p=1.0;inti,j,t;for(i=1;i<=n;i+)t=1;for(j=1;j<=i;j+)t=t*j;p=p*x;s=s+p/t;return s;50. 函数fun功能:将两个两位数的正整数a,b合并形成一个整数放在c中。合并方式:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。*c=b/10*1000+a%10*100+b%10*10+a/10;51.编fun,功能:计算并输出下列级数和:S=1/(1*2)+1/(2*3)+1/(n+1)n。int i;double s=0。0;for(i=1;i<=n;i+)s+=1.0/(i*(i+1);return s;52.编fun,功能:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。S=1+1/(1+2)+1/(1+2+3)+1/(1+2+3+n).int i,j;double sum=0.0,t;for(i=1;i<=n;i+)t=0.0;for(j=1;j<=i;j+)t+=j;sum+=1.0/t;return sum;53.编fun功能,计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和。int i;double sum=0.0;for(i=0;i<9;i+)sum+=sqrt(xi+xi+1)/2.0);return sum;54.void fun(char a,char b,int n),功能:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。inti,j=0;for(i=0;i<LEN;i+)if(i!=n)bj=ai;j+;bj=0;55编fun,功能:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。int i;double s=0.0;for(i=1;i<n;i+)if(i%3=0&&i%7=0)s=s+i;returnsqrt(s);56.编fun,功能:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数且要求m>n. float p,t=1.0;int i;for(i=1;i<=m;i+)t=t*i;p=t;for(t=1.0,i=1;i<=n;i+)t=t*i;p=p/t;for(t=1.0,i=1;i<=m-n;i+)t=t*i;p=p/t;return p;57.规定输入的字符串中只包含字母和*号。编fun,功能:将字符串中的前导*号全部删除,中间和尾部的*号不删除。int i=0;char *p=a;while(*p&&*p=*)p+;while(*p)ai=*p;i+;p+;ai=0;58.编fun,功能:求出数组中的下标并存放在k所指的存储单元中。inti,max;max=s0;for(i=0;i<t;i+)if(max<si)max=si;*k=i;59.函数fun,功能:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。int i,k=0;for(i=0;si!=0;i+)if(i%2!=0)tk+=si;tk=0;60.将两个两位数的正整数a,b合并形成一个整数放在c中。合并方式:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。*c=b/10*1000+a/10*100+b%10*10+a%10;61.编fun,功能:计算并输出给定整数n的所有因子(不包括1与n自身)之和。规定n的值不大于1000.int i,s=0;for(i=2;i<n-1;i+)if(n%i=0)s=s+i;return s;62.编fun,功能:将大于形参m且紧靠m的k个素数存入xx所指的数组中int g=0,i,j,flag=1;for(i=m+1;i<m*m;i+)for(j=2;j<i;j+)if(i%j!=0)flag=1;elseflag=0;break;if(flag=1&&j>=i)if(k>=0)xxg+=i;k-;else break;63. 程序定义了N×N的二维数组,并在主函数中自动赋值。编fun(int aN),功能:使数组左下半三角元素中的值全部置成0.inti,j;for(i=0;i<N;i+)for(j=0;j<=i;j+) aij=0;64.编fun,功能:删除字符串中的所有空格。int i=0;char *p=str;while(*p)if(*p!=)stri=*p;i+;p+;stri=0;65.fun,对长度为7个字符的字符串,除首尾字符外,将其余5个字符按ASCII码降序排列。int i,j;char t;for(i=1;i<num-2;i+)for(j=i+1;j<num-1;j+)if(si<sj)t=si;si=sj;sj=t;66.fun,功能:比较两个字符串的长度(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。char *p,*t1=t,*s1=s;int n=0,m=0;while(*s1)n+;s1+;while(*t1)m+;t1+;if(n>=m)p=s;else p=t;return p;67.假定输入的字符串只包含字母和*号。Fun,功能:删除字符串中所有的*号。编时,不用C语言提供的字符串函数。int i=0;char *p=a;while(*p)if(*p!=*)ai=*p;i+;p+;ai=0;68.fun,功能:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全部删除;串中剩余字符所形成的一个新串放在t所指的数组中。int i,j=0,n;n=strlen(s);for(i=0;i<n;i+)if(i%2=0&&si%2=0)tj=si;j+;tj=0;69.fun,功能:从s所指的字符串中删除指定的字符。同一字母的大小写按不同字符处理。若执行时输入字符串为:turbo c and borland c+从键盘上输入字符:n,则输出后变为:turbo c and borlad c+,如果输入的字符在字符串中不存在,则字符串照原样输出。int i=0;char*p;p=s;while(*p)if(*p!=c)si=*p;i+;p+;si=0;70. 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,编fun,功能:按分数的高低排列学生的记录,高分在前。int i,j;STREC t;for(i=0;i<N-1;i+)for(j=i;j<N;j+)if(ai.s<aj.s)t=ai;ai=aj;aj=t;71Fun,功能:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。int i=1,j=0,k=0,*t=pp;for(i=0;i<=x;i+)if(i%2!=0)tj=i;j+;for(i=0;i<j;i+)if(x%ti=0)ppk=ti;k+;*n=k;72.m个人的成绩存放在score数组中,fun,功能:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组inti,j=0;doubleave=0;for(i=0;i<m;i+)ave+=scorei;ave=ave/m;for(i=0;i<m;i+)if(scorei<ave)belowj=scorei;j+;return j;73.fun,功能:实现B=A+A,即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。int i,j;at33;for(i=0;i<3;i+)for(j=0;j<3;j+)atij=atji;for(i=0;i<3;i+)for(j=0;j<3;j+)bij=aij+atij;74. 学生的记录由学号和成绩组成,N名学生的数据已在存入a结构体数组中。Fun,功能:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。int i,max;max=a0.s;for(i=0;i<N;i+)if(ai.s>max)max=ai.s;*s=ai;75.fun,功能:计算并输出3到n之间(含3和n)所有素数的平方根之和。int m,k,i;double s=0.0;for(m=3;m<=n;m+)k=sqrt(m);for(i=2;i<=k;i+)if(m%i=0)break;if(i>=k+1)s+=sqrt(m);return s;76. 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,编fun,功能:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。inti,j=0,n=0,max;max=a0.s;for(i=0;i<N;i+)if(ai.s>max)max=ai.s;for(i=0;i<N;i+)if(ai.s=max)*(b+j)=ai;j+;n+;return n;77.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。Fun,功能:求出该学生的平均分放在记录的ave成员中。double av=0.0;int i;for(i=0;i<N;i+)av+=p->si;av/=N;p->ave=av;78. fun,功能:将两个两位数的正整数a,b合并形成一个整数放在c中。合并方式:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。*c=a%10*1000+b%10*100+a/10*10+b/10;79.编函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意:主函数中用*作为结束输入的标志,函数fun中给出的语句仅供参考。)int i;char *max;max=a0;for(i=0;i<num;i+)if(strlen(max)<strlen(ai)max=ai;return max; 80.编写程序,实现矩阵(3行3列)的转置(即行列互换)。int i,j,t;for(i=0;i<3;i+)for(j=0;j<i;j+)t=arrayij;arrayij=arrayji;arrayji=t;81.FUN的功能是:将S所指字符串中下标为偶数同时ASCLL值为奇数的字符串删除,s中剩余的字符形成的新串放在t所指的数组中inti,j=0;for(i=0;si!=0;i+)if(!(i%2=0&&si%2=1)tj+=si;tj=0;82.请编写一个函数fun(char *s),是把s所指字符串的内容逆置charch;inti,m,n;i=0;m=n=strlen(s)-1;while(i<(n+1)/2)ch=si;si=sm;sm=ch;i+;m-; 83.函数FUN的功能是:将s所指字符串中ASCLL值为奇数的字符串删除,串中剩余字符形成一个新串放在t所指的数组中int i,j=0,n;n=strlen(s);for(i=0;i<n;i+)if(si%2=0)tj=si;j+;tj=0;84.函数FUN的功能是:将s所指字符串中除了下标为奇数,同时ASCLL值也为奇数的字符除外,其余的所有字符都删除,传中剩余字符所形成的一个新串放在t所指的数组中.int i,j=0,n;n=strlen(s);for(i=0;i<n;i+)if(i%2!=0&&si%2!=0)tj=si;j+;tj=0;85.请编写一个.函数FUN,功能:根据以下公式就得值(要求满足精度0.0005,即某项小于0.0005的停止迭代):/2=1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+1*2*n/(1*3*(2n+1)doubles;floatn,t,pi;t=1;pi=0;n=1;s=1.0;while(fabs(s)>=eps)pi+=s;t=n/(2*n+1);s*=t;n+;pi=pi*2;return pi;86.假定输入的字符串中只包含子母和*号,函数FUN,它的功能是;除了字符串的前导和尾部的*号之外,将串中其他*号全部删除。形参h已指向字符串中的一个字母,形参P已指向字符串中最后一个字母。在编写函数是,不得使用C语言提供的字符串函数int i=0; char *q=a;while(q<h)ai=*q;q+;i+;while(q<p)if(*q!='*')ai=*q;i+;q+;while (*q)ai=*q;i+;q+;ai=0;ai='0'87. 请编写一个函数fun,它的功能是;将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数函数)long s=0,t;inti=0,j,n=strlen(p),k,s1;if(p0=-)i+;for(j=i;j<=n-1;j+)t=pj-0;s1=10;for(k=j;k<n-1;k+)t*=s1;s+=t;if(p0=-)return s;else return s;88. 请编写一个函数FUN,功能是:实现两个字符串的连接(不得使用库函数STRCAT0,即把P2所指的字符串连接到P1所指的字符串后inti=0,n=0;char*p=p1,*q=p2;while(*p)p+;n+;i=n;while(*q)p1i=*q;q+;i+;p1=i=0;89. 函数FUN的功能是将两个两位数的正整数a,b合并形成一个整数放在c中,合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,将b数的十位和个位依次放在c数的个位和百位上*c=a/10*1000+a%10*100+b%10*10+b/10;90. 请编写一个函数FUN,它的功能是:计算并输出s=1+(1+20.5)+(1+20.5+30.5)+(1+20.5+n0.5).int i;doubles=1.0,p=1.0;for(i=2;i<=n;i+)p+=pow(i,0.5);s+=p;return s; 91.请编写函数FUN,它的功能是:求出ss所指字符串中,指定字符个数,并返回此值。int i,j=0;for(i=0;si!=0;i+)if(ssi=c)j+;return j;93.请编写一个函数unsigned fun(unsigned w),w是一个大于10的无符号整数,若w是n(n>=2)位的整数,函数求出w的低n-1位的数作为函数值返回.unsigned t,s=0,s1=1,p=0;t=w;while(t>10)if(t/10)p=t%10;s=s+p*s1;s1=s1*10;t=t/10;return s;94.请编写函数fun,其功能是:计算出下列多项式的值:Sn=1-1/2+1/3-1/4+1/(2n-1)-1/(2n).int i;double sn=0.0;for(i=1;i<=n;i+)sn+=(1.0/(2*i-1)-1.0/(2*i);return sn;95.请编写函数fun,其功能是:计算出下列多项式的值:Sn=1+1/1!+1/2!+1/n!。double t,sn=1.0;int i,j;for(i=1;i<=n;i+)t=1.0;for(j=1;j<=i;j+)t*=j;sn+=1.0/t;return sn; 96.请编写函数void fun(int ttMN),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组。二维数组中得数已在主函数中