c语言题库(6).docx
1:第1题m个人的成绩存放在SCOre数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。答案:intfun(intscore,intm,intbelow)(inti,k=0,aver=O;for(i=0;i<m;i+)aver+=scorei;aver=m;for(i=0;i<m;i+)if(scorei<aver)(belowk=scorei;k+;)returnk;2:第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。答案:voidfun(int*a,int*n)(inti,j=0;for(i=2;i<1000;i+)if(i%7=0I,i=0)&&iw!=0)aj+=i;*n=j;)3:第3题请编写函数VOidfun(intx,intpp,int*n),它的功能是:求出能整除X且不是偶数的各整数,并按从小到大的顺序放在PP所指的数组中,这些除数的个数通过形参n返回。答案:voidfun(intx,intpp,int*n)inti=l,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;)4:第4题请编写一个函数Voidfun(char*tt,intpp),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在PP所指的数组中。答案:voidfun(char*tt,intpp)(inti;for(i=0;i<26;i+)ppi=;while(*tt)(switch(*tt)(case匕':ppO+;break;case'b':ppl+;break;caseicf:pp2+;break;casetd,:pp3+;break;case'e':pp4+;break;case'f':pp5+;break;case,g':pp6+;break;case,h':pp7+;break;case'i':pp8+;break;case'j':pp9+;break;case:pp10+;break;case*1,:ppll+;break;caseim,:pp12+;break;casein,:pp12+;break;caseiof:pp14+;break;caseip,:pp15+;break;case'q':pp16+;break;case*r,:pp17+;break;case飞':pp18+;break;case气':pp19+;break;caseiu,:pp20+;break;casefv,:pp21+;break;case4w,:pp22+;break;case'x':pp23+;break;casety,:pp24+;break;caselz,:pp25+;break;)tt+;)5:第5题请编写一个函数VOidfun(intm,intk,intxx),该函数的功能是:将大于整数m且紧靠m的k各素数存入XX所指的数组中。答案:voidfun(intm,intk,intxx)(intg=0,1,j,fIag=I;for(i=m+l;i<m*m;i+)(for(j=0;j<I;j+)(if(i%j!=O)flag=l;elsefIag=O;break;)if(flag=l&&j>=i)(if(k>=0)(xxg+=i;k一一;)elsebreak;)6:第6题请编写一个函数Voidfun(chara,char,intn),其功能是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。答案:voidfun(chara,charb,intn)(intI,j=0;for(i=O;iVLEN;i+)if(i!=n)(bj=ai;J+;)bj=<0,;)7:第7题请编写一个函数intfun(int*s,intt,int*k),用来求除数组的最大元素在数组中的下标并存放在k所指的储存单元中。答案:voidfun(int*s,intt,int*k)intI,max;max=s0;for(i=0;i<t;i+)if(si>max)(max=si;*k=I;)8:第8题编写函数fun,功能是:根据以下攻势计算s,计算结果作为函数值返回;n通过形参传入。S=l+1(1+2)+1/(1+2+3)+.+1/(1+2+3+4+n)答案:floatfun(intn)(inti;floats=l.0,t=l.0;for(i=2;i<=n;i+)(t=t+i;s=s+lt;)returns;)9:第9题编写一个函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。M与n为两个正整数,且要求m>n。p=m!n!(m-n)!答案:floatfun(intm,intn)(floatp,t=l.0;intI;for(i=l;i<=m;i+)t=t*I;p=t;for(t=l.0,i=l;i<=n;i+)t=t*I;p=pt;for(t=l.0,i=l;i<=m-n;i+)t=t*I;p=pt;returnp;)10:第10题编写函数fun,它的功能是:利用以下的简单迭代方法求方程COS(X)-X=O的一个实根。迭代步骤如下:(1)取Xl初值为0.0;(2)x0=xl,把Xl的值赋各x;(3)xl=cos(x),求出一个新的xl;(4)若xO-xl的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);(5)所求xl就是方程COS(X)-X=O的一个实根,作为函数值返回。程序将输出root=0.739085o答案:floatfun()(floatxl=0.0,x;do(x=xl;xl=cos(x);)while(fabs(x-l)>le-6);returnxl;)