1、1 2013 年计算机二级考试C 语言上机题库类型一:调整一个数的个、十、百、千位1.请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。合并的方式是:将a 数的十位和个位数依次放在c 数的千位和十位上,b数的十位和个位数依次放在c 数的百位和个位上。例如,当 a=45,b=12,调用该函数后c=4152。*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);填空:STYPE FILE Fp 改错:for(i=0;i=sl;i+)把 s后字母改为小写L t2*sl=0;2.请编写函数fun,其功能是:将两个两位数的正整数a、b 合
2、并形成一个整数放在c 中。合并的方式是:将a数的十位和个位数依次放在c 数的个位和百位上,b数的十位和个位数依次放在c 数的千位和十位上。例如,当 a=45,b=12,调用该函数后c=1524。*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);填空:*fw str str 改错:void fun(long s,long*t)sl=sl*10;3.请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。合并的方式是:将a 数的十位和个位数依次放在c 数的个位和百位上,b数的十位和个位数依次放在c 数的十位和千位上。例如,当 a=45
3、,b=12,调用该函数后c=2514。*c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);填空:fp fclose(fp)fname 改错:for(i=j+1;iscorei a改错:char*fun(char(*sq)M)return sp;7.请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。合并的方式是:将a 数的十位和个位数依次放在c 数的百位和个位上,b数的十位和个位数依次放在c 数的千位和十位上。例如,当 a=45,b=12,调用该函数后c=1425。*c=(b/10)*1000+(a/10)*100+(b%10)
4、*10+(a%10);填空:0 x t+改错:int i,s1;s后面是小写的Lti=ssl-i-1;8.请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。合并的方式是:将a数的十位和个位数依次放在c 数的千位和十位上,b数的十位和个位数依次放在c 数的个位和百位上。例如,当 a=45,b=12,调用该函数后c=4251。*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);填空:1 s i*10 改错:int fun(int n,int xxM)printf(%d,xxij);类型二:与*号有关的操作9.请编写函数fun,它的
5、功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。删除前导*号int j=0;char*p=a;while(*p=*)p+;while(*p)aj+=*p;p+;aj=0;填空:N tij tji 改错:#define FU(m,n)(m)/(n)return(value);10.请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参 p已指向字符串中最后的一个字母。除尾部*号,其余*删除char*q=a;int j=0;while(*q&qp)if(*q!=*)aj+=*q;q+;while(*p)aj+=*p+;aj=0;填空:tN i=0;i am
6、id)2 11.请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。只删除中间*号int j=0;char*q=a;while(*q&q h)aj+=*q+;while(*h&*p&h 0.001)12.请编写函数fun,它的功能是:删除字符串中所有的*号。删除串中所有*号int j=0;char*p=a;while(*p)if(*p!=*)aj+=*p;p+;aj=0;填空:1 j+j 改错:t=a;a=b;b=t;return(b);13.请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。删除串尾*号char*p=a;whi
7、le(*p)p+;p-;while(*p=*)p-;p+;*p=0;填空:N i -1 改错:a2=k/10;return i;14.请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。除前导*外其他删除*int i=0,k;while(ai=*)i+;k=i;while(ai!=0)if(ai!=*)ak+=ai;i+;ak=0;填空:N k ssi 改错:int k=0;while(*p|*q)15.请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。删除前导和尾部*char*p=a;int j=0,len=0;while(*
8、p)p+;len+;while(jlen-h-e)aj=ah+j;j+;aj=0;填空:N substr 0改错:fun(int x,int y,int z)return j;16.请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n 个串尾部*号不多于 n 个char*p=a;int j=0;while(*p)p+;p-;while(*p=*)p-;p+;while(jn)i=n;j=k;for(;aj!=0;j+)ai+=aj;ai=0;填空:M N 0改错:t=1;return(2*s);18.请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。串前*移至串尾
9、char*p,*q;int n=0;p=a;while(*p=*)n+;p+;q=a;while(*p)*q=*p;p+;q+;for(;n0;n-)*q+=*;*q=0;填空:a b.name scorei改错:sj+=si;sj=0;3 19.编写一个函数,从传入的num 个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址(用*作为结束输入的标志)。int i,k=0,maxlen;maxlen=strlen(ak);for(i=1;i maxlen)maxlen=strlen(ai);k=i;*max=ak;填空:N i i+1改错:aai=m%k;printf(%d,aa
10、i-1);类型三:与下标或ASCII 码有关20.请编写一个函数fun,它的功能是:将 ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。下标奇数位置子母改大写 int i;for(i=1;i=a&ssitj+1)21.请编写 个函数void fun(char*ss),其功能是:将字符串ss 中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。下标奇数位置子母改大写char*p=ss;int i=0;while(*p)if(i%2)&(*p=a&*p=z)*p-=32;p+;i+;return ss;填空:NULL n head,ch改错
11、:for(i=0,t=0;pi;i+)ct=0;22.请编写函数fun,其功能是:将 s 所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。下标为偶数字符删除 int i,j=0;for(i=1;istrlen(s);i+=2)tj+=si;tj=0;填空:data next head改错:while(*r)*a=*r;a+;r+;23.编写函数fun,对长度为7 个字符的字符串,除首、尾字符外,将其余 5 个字符按 ASCII 码降序排列。除首尾外其余ASCII 码降序char ch;int i,j;for(i=1;i 6;i+)for(j=i+1;j 6;j+)if
12、(*(s+i)*(s+j)ch=*(s+j);*(s+j)=*(s+i);*(s+i)=ch;填空:ssi n+j 1改错:if(*p=)*(p-1)=toupper(*(p-1);24.请编写函数fun,其功能是:将 s 所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t 所指的数组中。ASCII 码值为偶数删除 int i,j=0;for(i=0;i strlen(s);i+)if(si%2)tj+=si;tj=0;填空:STU stdi.num stdi改错:r+;p+;if(*r=0)25.请编写函数fun,其功能是:将s 所指字符串中ASCII 值为奇数的字符删
13、除,串中剩余字符形成一个新串放在t 所指的数组中。ASCII 值为奇数删除int i,j=0;for(i=0;i strlen(s);i+)if(si%2=0)tj+=si;tj=0;填空:si k 0改错:while(*w)if(*r=*p)4 26.请编写函数fun,其功能是:将 s 所指字符串中除了下标为偶数、同时ASCII 值也为偶数的字符外,其余的全都删除除下标偶数同时ASCII码值偶数之外其余全部删除int i,j=0;for(i=0;i strlen(s);i+=2)if(si%2=0)tj+=si;tj=0;填空:*n next head改错:a=NULL;if(*r=*p)2
14、7.请编写函数fun,其功能是:将 s 所指字符串中除了下标为奇数、同时ASCII 值也为奇数的字符之外,其余的所有字符都删除除下标奇数同时ASCII 码也为奇数外其余字符删除int i,j=0;for(i=1;i strlen(s);i+=2)if(si%2)tj+=si;tj=0;填空:0 i+2.0*i改错:void fun(char*s,char*t)t2*d=0;28.请编写函数fun,其功能是:将 s 所指字符串中下标为偶数同时ASCII 值为奇数的字符删除,s 中剩余的字符形成的新串放在t 所指的数组中。将下标为偶数同时ASCII 码为奇数删除int i,j=0;for(i=0;
15、i strlen(s);i+)if(!(i%2)=0&(si%2)tj+=si;tj=0;填空:j k p改错:while(ij)if(*a)103.请编写函数fun,函数的功能是查找x 在 s 所指数组中下标的位置作为函数值返回,若 x 不存在,则返回-1 int i;for(i=0;iN;i+)if(x=si)return i;return-1;填空:i%5 n ai 改错:return t;for(i=0;iN;i+)ti=xi;xi+1=findmid(a,b,c);类型四:数组和矩阵操作29.请编写函数fun,该函数的功能是:移动一维数组中的内容;若数组中有n 个整数,要求把下标从0
16、 到 p(p小于等于n-1)的数组元素平移到数组的最后。下标 0-p 移到数组最后int i,j=0,bN;for(i=p+1;i n;i+)bj+=wi;for(i=0;i=p;i+)bj+=wi;for(i=0;i next q p-next改错:while(*s)s+;30.请编写函数fun,该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。删除一维数组相同的数int i,j=1,k=a0;for(i=1;i n;i+)if(k!=ai)aj+=ai;k=ai;aj=0;return j;填空:FILE*fclose(fp)fp改错:t=(STU*)calloc(sizeof(S
17、TU),m);tk=bj;31.请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。找出一维数组最大值及其下标int i;*max=a0;*d=0;for(i=1;i n;i+)if(*max ai)*max=ai;*d=i;填空:1 2*i (-1)改错:k+;if(m=k)32请编写一个函数int fun(int*s,int t,int*k),用来求出数组的最大元素在数组中的下标并存放在k 所指的存储单元中。求数组最大元素及下标int i,pos=0,max=*s;for(i=1;i t;i+)if(max *(s+i)max
18、=*(s+i);pos=i;*k=pos;填空:n+0 s+改错:t+=sk;*ave=ave;5 33.请编写函数fun(intaN,int n),该函数的功能是:使数组左下半三角元素中的值乘以n。左下三角元素乘nint i,j;for(i=0;i N;i+)for(j=0;j 0)else if(k=0)34.请编写函数fun(int aN,int n),该函数的功能是:使数组右上半三角元素中的值乘以m。右上三角元素同乘m int i,j;for(i=0;i N;i+)for(j=i;j N;j+)aij*=m;填空:*av i xj改错:float fun(int n)for(i=2;i
19、=n;i+)35请编写函数fun(int aN),该函数的功能是:使数组左下半三角元素中的值全部置成0。左下三角元素置0 int i,j;for(i=0;i N;i+)for(j=0;j=i;j+)aij=0;填空:*std PERSON std改错:int k,q,i;pti=strki;36请编一个函数求出二维数组每列中最小元素,并依次放入pp 所指一维数组中。二维数组每列最小元素int i,j,min,k;for(i=0;i N;i+)min=tt0i;k=0;for(j=1;j ttji)min=ttji;k=j;ppi=ttki;填空:*std stdi.age max.name改错
20、:void fun(int*a,int*b)t=*b;*b=*a;*a=t;37.请编写一个函数fun,它的功能是:求出 个 2 M整型二维数组中最大元素的值,并将此值返回调用函数。求二维数组中最大元素的值int i,j,max=a00;for(i=0;i2;i+)for(j=0;jM;j+)if(max 2*i+1改错:double fun(int n)s=s+(double)a/b;38.编写程序,实现矩阵(3 行 3 列)的转置(即行列互换)。矩阵转置int i,j,arr33;memcpy(arr,array,9*sizeof(int);for(i=0;i 3;i+)for(j=0;j
21、 3;j+)arrayij=arrji;填空:N break n改错:sum=0;scanf(%d,&aij);39.请编写函数fun,该函数的功能是:将 M 行 N 列的二维数组中的数据,按列的顺序依次放到一维数组中。按列顺序 33 44 55 33 44 55int i,j,np=0;for(i=0;i nn;i+)for(j=0;j mm;j+)bnp=sji;np=i*mm+j+1;*n=np;填空:NODE*next r改错:if(i%2|si%2=0)tj=?0?;40.请编写函数fun,该函数的功能是:将 M 行 N 列的二维数组中的数据,按行的顺序依次放到一维数组中。按行顺序
22、33 33 33 33 44 44 44 44int i,j,k;for(i=0;i mm;i+)for(j=0;j next p-next 改错:p=h-next;p=p-next;6 41.请编写函数fun,该函数的功能是:将 M 行 N 列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。按列顺序 wshwshwshfor(j=0;j M;j+)bn=sji;n=i*M+j+1;填空:FILE*fp ch改错:sj+=si;sj=0;.42请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。数组周边元素的平均值int i,j,n=0;double
23、 sum=0;for(i=0;iN;i+)sum+=w0i+wN-1i;n+=2;for(i=1;iN-1;i+)sum+=wi0+wiN-1;n+=2;return sum/n;填空:s/N j+-1改错:#include upfst(char*p)43请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组周边元素之和int tot=0,i,j;for(i=0;i N;i+)tot+=a0i;tot+=aM-1i;for(i=1;i M-1;i+)tot+=ai0;tot+=aiN-1;return tot;填空:xi/N j+i+改错:numk=0;switch(
24、*s)44.请编写函数fun,该函数的功能是:实现 B=A+A,即把矩阵 A 加上矩阵A 的转置,存放在矩阵B 中。B=A+A?int c33;int i,j;for(i=0;i 3;i+)for(j=0;j 3;j+)cij=aji;bij=aij+cij;填空:&0 sj改错:for(i=2;i=m;i+)y+=1.0/(i*i);类型五:学生分数操作45.请编写一个函数fun,它的功能是:计算 n 门课程的平均分,计算结果作为函数值返回。例如:若有 5 门课程的成绩是:90.5,72,80,61.5,55,则函数的值为71.80。n 门课程平均分71.8 int i;float ave=
25、0.0;for(i=0;inext;double av=0.0;int n=0;while(p!=NULL)av=av+p-s;p=p-next;n+;av/=n;return av;填空:char ch=9 0改错:bk=*p;bk+=,?;47.某学生的记录由学号、8 门课程成绩和平均分组成,学号和 8 门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的 ave 成员中。8 门课程平均分78.875int i;for(i=0;i ave=a-ave+a-si;a-ave/=N;填空:ai aj aj改错:switch(g)case 1:case 2:r
26、eturn 1;48.请编写函数fun,该函数的功能是:找出成绩最高的学生记录。找出成绩最高学生纪录(规定只有一个最高分)int i,max=a0.s,j=0;for(i=1;i N;i+)if(max ai.s)j=i;max=ai.s;*s=aj;填空:stdi.year stdi n改错:IsPrime(int n)if(!(n%i))7 49.请编写函数fun,它的功能是:把低于平均分的学生数据放在b 所指的数组中。低于平均分的学生数据int i;double ave=0.0;*n=0;for(i=0;i N;i+)ave=ave+ai.s;ave/=N;for(i=0;i N;i+)
27、if(ai.s ave)b*n=ai;(*n)+;return ave;填空:*a 2 i+1改错:sum=0.0;if(i+1)%5=0)50.请编写函数fun,它的功能是:把分数最高的学生数据放在 b所指的数组中,注意:分数最高的学生可能不只一个,函数返回分数最高的学生的人数。把分数最高学生数据放在b 所指数组中,分数最高的学生可能不只一个int i,max=a0.s,n=0;for(i=1;i N;i+)if(max ai.s)max=ai.s;for(i=0;i N;i+)if(max=ai.s)bn+=ai;return n;填空:1 i ap+i改错:float k;if(*as;
28、STREC*p;p=h-next;while(p)if(p-smax)max=p-s;p=p-next;return max;填空:fp =fp改错:n=strlen(aa);ch=aai;52请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。低于平均分的人作为函数值返回float av=0.0;int i,j=0;for(i=0;im;i+)av+=scorei;av/=m;for(i=0;iscorei)belowj+=scorei;return j;填空:j 0 i+改错:for(i=2;i=m;i+)y-=1.0/(i*i);
29、53.请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b 所指的数组中,高于等于平均分的学生人数通过形参n 传回,平均分通过函数值返回。高于等于平均分的学生数据double t=0;int i;*n=0;for(i=0;i N;i+)t=t+ai.s;t=t/N;for(i=0;i t)b(*n)+=ai;return t;填空:-sno -name&t改错:double fun(double a,double x0)if(fabs(x1-x0)0.00001)54.请编写函数fun,它的功能是:把分数最低的学生数据放在 b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分
30、数最低的学生的人数。分数最低学生数据放在b 所指数组int i,j=0,min=a0.s;for(i=0;i ai.s)j=0;bj+=ai;min=ai.s;else if(min=ai.s)bj+=ai;return j;填空:struct student a.name a.scorei改错:if(p=n)return-1;ai=ai+1;55.请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。找出成绩最低学生纪录int i,min=a0.s,j=0;for(i=1;i ai.s)j=i;min=ai.s;*s=aj;填空:0 xi/N j
31、+改错:double fun(int m)for(i=100;i=m;i+=100)56 请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。按分数高低排列学生纪录,高分在前STREC tmp;int i,j;for(i=0;i N;i+)for(j=i+1;j N;j+)if(ai.s 0)8 57.请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。返回指定学号学生数据STREC c;int i;c.num0=0;c.s=-1;for(i=0;i N;i+)if(strcmp(ai.num,b)=0)strcpy(c.num,ai.num);
32、c.s=ai.s;break;return c;填空:n/2 i an-i-1改错:n=*p-0;n=n*8+*p-0;58.请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b 所指的数组中,分数范围内的学生人数由函数值返回。指定分数范围内的数据int i,j=0;for(i=0;i=l&ai.s p)类型六:字符和字符串操作59.请编写一个函数fun,它的功能是:比较两个字符串的长度,返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。返回较长字符串int i;char*p=s,*q=t;for(i=0;*p&*q;i+)p+;q+;if(*p=0&*q=0)return
33、 s;if(*p)return s;else return t;填空:next t-data t改错:fun(char*a)printf(%c,*a);60.编写函数 fun,该函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。删除给定的字符char*p=s;int i=0;while(*p)if(*p!=c)si+=*p;p+;si=0;填空:k len ssij改错:result*=n-;result61.请编写函数 fun,它的功能是:求出 ss所指字符串中指定字符的个数,并返回此值。求 ss指定字符个数int cnt=0;char*p=ss;while(*p)i
34、f(*p=c)cnt+;p+;return cnt;填空:j+si=t1i j改错:for(j=i+1;j 6;j+)*(pstr+i)=*(pstr+j);62 请编写一个函数void fun(char*tt,int pp),统计在字符串中 a到z26 个字母各自出现的次数,并依次放在 pp 所指数组中。统计 26 个字母出现次数char*p=tt;int i;for(i=0;i=a&*p=num)t=s/n;64.请编写函数fun,该函数的功能是:统计一行字符串中单词的个数,作为函数值返回。统计一行串中单词个数int k=1;while(*s)if(*s=)k+;s+;return k;填
35、空:filename fp fp改错:p=(NODE*)malloc(sizeof(NODE);return h;9 65.请编写函数fun,该函数的功能是:将放在字符串数组中的 M 个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。M 个字符串合并成新串int i;*b=0;for(i=0;i M;i+)strcat(b,ai);填空:next 0 r改错:r=t;if(*r=0)66.请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出YES,否则返回 0,主函数中输出N0。回文int i,j=strlen(str);for(i=0;i nex
36、t;p=p-next;67.编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把 p2 所指的字符串连接到 p1 所指的字符串后。实现两个字符串连接char*p=p1;while(*p)p+;while(*p2)*p+=*p2+;*p=0;填空:0 10*x n/10改错:*t=0;if(d%2!=0)68.请编写一个函数,用来删除字符串中的所有空格。删除字符串中所有空格char*p=str;int i=0;while(*p)if(*p!=)stri+=*p;p+;stri=0;填空:0|1改错:t-=1.0/i;return t;69请编一个函数fun(ch
37、ar*s),该函数的功能是把字符串中的内容逆置。字符串逆置strrev(s);填空:i+1 k=j t改错:void fun(char*str,char ch)if(*str!=ch)str1=0;70.请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数-1234 数字字符串转换为整数int i,len,t;long x=0;len=strlen(p);if(p0=-)t=-1;len-;p+;else t=1;while(*p)x=x*10-48+(*p+);填空:10 0 x改错:if(n=0)result*=n-;71 功能是:移动字符串中的内容,移动的规则如下:把第 1
38、到第 m 个字符,平移到字符串的最后,把第 m+1到最后的字符移到字符串的前部。1 第 m 个字符移到串后int i,j;char t;for(i=1;i=0&*p=9)n+;p+;return n;填空:bk N/2 改错:int tN,i,num=0;tnum+=bi;for(i=0;idata p-next 改错:int i,one=0,zero=0;switch(si)case 0:zero+;break;10 104 请编函数fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。可调strlen 函数求字符串长度。例如:在键盘输入字符串2345210,函数返回长整型数234
39、5210。数字字符串转换为整数int len,t;long x=0;len=strlen(s);if(s0=-)t=-1;len-;s+;else t=1;while(*s)x=x*10-48+(*s+);return x*t;填空:0 t(t-1)*(t+2)/2 改错:bi=0;bai-a+;if(bmax bi)类型七:套用公式计算型73编写函数fun,函数的功能是:根据以下公式计算s,计 算结 果作 为函 数值返回;n 通 过形 参传入。s=1+1/(1+2)+1/(1+2+3)+.+1/(1+2+3+4+.+n),若n 的 值 为 11 时,函 数 的 值 为1.833333。int
40、 i,j,t;float s=0;for(i=1;i=n;i+)t=0;for(j=1;j0.000001);return x1;填空:i+m m改错:while(high=2)&(n 10)yes=0;break;75.若 m 的值为20,则 fun 函数值为6.506583。double s=0.0;int i;for(i=1;i=m;i+)s+=log(1.0*i);s=sqrt(s);return s;填空:0 j-j改错:double f(double x)return s;76.请编写函数fun,其功能是:计算并输出下列多项式值:Sn=1+1/1!+1/2!+1/3!+1/4!+1
41、/n!若主函数从键盘给n 输入 15,则输出为 s=2.718282。double s=1;long t=1;int i;for(i=1;i=n;i+)t=t*i;s+=1./t;return s;填空:1 -1 t改错:for(i=1;i=0&k=6)77.请编写函数fun,其功能是:计算并输出当x0.97时下列多项式的值,直到 Sn-S(n-1)1e-6);return sum;填空:x n fabs(t)改错:for(i=1;i1&n=100)for(i=1;i=n;i+)sum+=1.0/(2*i-1)-1.0/(2*i);return sum;填空:j=2 i j改错:sum=j=0
42、;if(sum%4=2)11 79.请编写函数fun,其功能是:计算并输出S=1+(1+20.5)+(1+20.5+30.5)+(1+20.5+30.5+n0.5)输入 20 后,则输出为 s=534.188884。int i;double fac=1.0;double sum=1.0;for(i=2;in。p=m!/n!(m-n)!。m=12,n=8,运行结果为495.000000。float p;p=1.0*jc(m)/jc(n)/jc(m-n);return p;填空:*s s+n改错:int j,c=0;float xa=0.;if(xj)=xa)81.编写函数fun,它的功能是:计算
43、并输出下列级数和:S=1/1*2+1/2*3+.+1/n(n+1)n=10 时,函数值为 0.909091。double s=0.0;int i;for(i=1;i=n;i+)s=s+1.0/(i*(i+1);return s;填空:*s 1 kn改错:double fun(int k)return s;82.请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。S=1+x+!22x+!33x+!nxn当 n=10,x=0.3 时,函数值为1.349859。double s=1.0,y=x;int i;for(i=1;i=eps)pi+=s;t=n/(2*n+1);s*=t;n+;pi
44、=pi*2;return pi;填空:0 n t*t改错:for(i=0;stri;i+)if(substrk+1=0)84.请编写函数fun,其功能是:计算并输出下列多项式值:s=1+1/(1*2)+1/(1*2*3)+.1/(1*2*3.*50)例如,若主函数从键盘给n 输入50 后,则输出为S=1.718282。double t,sn=1.0;int i,j;for(i=1;in;i+)t=1.0;for(j=1;j=i;j+)t*=j;sn+=1.0/t;return sn;填空:n%10 break break改错:if(t=0)*zero=count;类型八:求整除85 请编写函数
45、fun,它的功能是:求出 1 到 1000 之内能被 7 或 11 整除、但不能同时被7 和 11 整除的所有整数能被 7 或 11 整除,但不能同时被7 和11 整除int i;*n=0;for(i=7;i 1000;i+)if(i%7)=0|(i%11)=0)&(i%77)!=0)a(*n)+=i;填空:si 9 *t=n改错:t=*x;*x=y;return(t);86.请编写一个函数fun,它的功能是:求出 1到 m 之内(含 m)能被 7 或 11 整除的所有整数放在数组a中,通过 n 返回这些数的个数。能被 7 或 11 整除int i;*n=0;for(i=7;i=m;i+)if
46、(i%7=0)|(i%11=0)a(*n)+=i;填空:q next next改错:p=j;p=i;12 87.编写函数fun,它的功能是:求 n 以内(不包括 n)同时能被 3 与 7 整除的所有自然数之和的平方根s,并作为函数值返回。例如,若n 为1000 时,函数值应为s=153.909064。同时能被 3 与 7整除的所有自然数之和的平方根double sum=0.0;int i;for(i=21;i=n;i+)if(i%3=0)&(i%7=0)sum+=i;return sqrt(sum);填空:0 s+sum改错:if(k%13=0)|(k%17=0)88请编写函数void fun
47、(int x,int pp,int*n),它的功能是:求出能整除 x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参 n 返回。能整除形参 x 且不是偶数的各整数int i;*n=0;for(i=1;i=x;i+)if(x%i=0)&(i%2)pp(*n)+=i;填空:t,s si 0改错:if(i%k=0)if(k=i)89.请编写函数fun,它的功能是:计算并输出n(包括 n)以内能被5 或 9 整除的所有自然数的倒数之和。N 以内能被 5或 9 整除的所有自然数倒数之和int i;double sum=0.0;for(i=1;i2)。8.687500
48、 double max,min,pjz;int i;max=min=a0;for(i=1;in;i+)if(maxai)min=ai;for(i=0,pjz=0;in;i+)pjz+=ai;return(pjz-max-min)/(n-2);填空:ai m%10 m/10 改错:bi=ai0;for(j=1;jaij)类型九:其它各类计算90.请编写函数fun,它的功能是:求 Fibonacci 数列中大于 t 的最小的一个数,结果由函数返回。fibonacciint f0=0,f1=1,f;do f=f0+f1;f0=f1;f1=f;while(f t);return f;填空:N N-1
49、0改错:s=s+(n+1.0)/n;return t;91.请编写函数fun,其功能是:将所有大于1 小于整数m 的非素数存入xx 所指数组中,非素数的个数通过k传回。大于 1 小于 m 的非素数int i,j;*k=0;for(i=2;im;i+)for(j=2;ji;j+)if(i%j=0)xx(*k)+=i;break;填空:M =?a?)&(tti=z)tti-=32;92.请编写函数fun,其功能是:计算并输出3 到 n之间所有素数的平方根之和。sum=148.874270。3 到 n 之间所有素数平方根之和int i,j=0;double s=0;for(i=3;i=n;i+)fo
50、r(j=2;ji;j+)if(i%j=0)break;if(j=i)s=s+sqrt(i);return s;填空:i t+count改错:int fun(int a,int b,int c)else retrun 1;93.编写函数int fun(int lim,int aaMAX),该函数的功能是求出小于或等于lim 的所有素数并放在aa数组中小于或等于 lim 所有素数int i,j,k=0;for(i=2;i=lim;i+)for(j=2;j (i/2)aak+=i;return k;填空:a0i x,y改错:int fun(int*x,int*y)t=*x;*x=*y;*y=t;13