9月上机题库1:第1题m个人的成绩寄存在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。答案:intfun(intscore[],intm,intbelow[]){inti,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];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==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}3:第3题请编写函数voidfun(intx,intpp[],int*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的次序放在pp所指的数组中,这些除数的个数通过形参n返回。答案:voidfun(intx,intpp[],int*n){inti=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];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++)pp[i]=0;while(*tt){switch(*tt){case‘a’:pp[0]++;break;case‘b’:pp[1]++;break;case‘c’:pp[2]++;break;case‘d’:pp[3]++;break;case‘e’:pp[4]++;break;case‘f’:pp[5]++;break;case‘g’:pp[6]++;break;case‘h’:pp[7]++;break;case‘i’:pp[8]++;break;case‘j’:pp[9]++;break;case‘k’:pp[10]++;break;case‘l’:pp[11]++;break;case‘m’:pp[12]++;break;case‘n’:pp[12]++;break;case‘o’:pp[14]++;break;case‘p’:pp[15]++;break;case‘q’:pp[16]++;break;case‘r’:pp[17]++;break;case‘s’:pp[18]++;break;case‘t’:pp[19]++;break;case‘u’:pp[20]++;break;case‘v’:pp[21]++;break;case‘w’:pp[22]++;break;case‘x’:pp[23]++;break;case‘y’:pp[24]++;break;case‘z’:pp[25]++;break;}tt++;}}5:第5题请编写一种函数voidfun(intm,intk,intxx[]),该函数的功能是:将不小于整数m且紧靠m的k各素数存入xx所指的数组中。答案:voidfun(intm,intk,intxx[]){intg=0,I,j,flag=1;for(i=m+1;i<m*m;i++){for(j=0;j<I;j++){if(i%j!=0)flag=1;else{flag=0;break;}}if(flag==1&&j>=i){if(k>=0){xx[g++]=i;k--;}elsebreak;}}}6:第6题请编写一种函数voidfun(chara[],char[],intn),其功能是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串寄存在b所指的数组中,n中寄存指定的下标。答案:voidfun(chara[],charb[],intn){intI,j=0;for(i=0;i<LEN;i++)if(i!=n){b[j]=a[i];j++;}b[j]=‘\0’;}7:第7题请编写一种函数intfun(int*s,intt,int*k),用来求除数组的最大元素在数组中的下标并寄存在k所指的储存单元中。答案:voidfun(int*s,intt,int*k){intI,max;max=s[0];for(i=0;i<t;i++)if(s[i]>max){max=s[i];*k=I;}}8:第8题编写函数fun,功能是:根据如下攻势计算s,计算成果作为函数值返回;n通过形参传入。S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n)答案:floatfun(intn){inti;floats=1.0,t=1.0;for(i=2;i<=n;i++){t=t+i;s=s+1/t;}returns;}9:第9题编写一种函数fun,它的功能是:根据如下公式求p的值,成果由函数值带回。M与n为两个正整数,且规定m>n。p=m!/n!(m-n)!答案:floatfun(intm,intn){floatp,t=1.0;intI;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;returnp;}10:第10题编写函数fun,它的功能是:运用如下的简朴迭代措施求方程cos(x)-x=0的一种实根。迭代环节如下:(1)取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的一种实根,作为函数值返回。程序将输出root=0.739085。答案:floatfun(){floatx1=0.0,x0;do{x0=x1;...