《计算机二级C语言99套上机操作题及答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
华信电脑培训中心内部资料余超整理提供C语言上机操作题华信电脑培训中心内部资料
1.第1套填空题请补充FUN函数,FUN函数的功能是求10的阶乘。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include
2H,fun(10));)第1处填空:n>l或l 3pleaseenteranintegernumberbetween2and10000:,•);scant(n%d",&k);printf(H 4 5Theprimefactor(s)of%dis(are):H,k);for(j=2;j 6");第1处:Isprime(inln);应改为Isprime(intn)第2处:if!(n%i)应该为if(!(n%i))编程题M个人的成绩存放在scom数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below所指的数组中。例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的认输应该是4,below中的数据应我10、20、30、40。 7注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:ttinclude 8Belowtheaveragescoreare:n);out=fopen("out.dat“,);for(i=0;i 9H,below[i]);}fclose(out);)答案是:intfun(intscore[],intm,intbelow[]){intI,k=0,aver=0;for(i=0;i 10return1;elsereturn3;}第1处填空:n==0或0=n或!n第2处填空:n==l或l=n第3处填空:fun(n-l)+fun(n-2)或fun(n-2)+fun(n-l)改错题下列给定程序中,函数FUN的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串应为:aBcdeFgH。请改正程序中的错误,使程序能得出正确的结果.注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 11H,aa[k]); 12fprintf(out,n%d 13n,aa[k]);}else(printf(H%5d,H,aa[k]);fprintf(out,11%d,,aa[k]);)fclose(out);)答案是:voidfun(int*a,int*n)(inti,j=0;for(i=2;i<1000;i++)if((i%7==0lli%ll==0)&&i%77!=0)a「++]=i;*n=j;)填空题请补充函数FUN(CHAR*S),该函数的功能是把字符串中的内容逆置.例如:字符串中原有的字符串为abcde,则调用该函数后,串中的内容为edcba.请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include 14");printf(nThestringaftermodified:;puts(a);}第1处填空:n--或-n或n-=l或n=n-l第2处填空:s[i]=s[n]或*(s+i)=*(s+n)第3处填空:s[n]=t或*(s+n)=t改错题下列给定的程序中,函数fun的功能是:依次取出字符串中所以数字字符,形成新的字符串,并取代原字符串。请改正函数fun中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 15试题程序:#include 16Enterastring:••);gets(item);printf(H 17 18Thestringis:%s 19n#item);fun(item);printf(n 20 21Thestringofchangingis:%s 22n,item);)第1处:s[j]=s[i];应改为s[j++]=s[i]第2处:s[j]="/O";应改为s[j]=,\(y;编程题请编写函数voidfun(intx,intpp[],int*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回.例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15.注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:ttinclude 23Pleaseenteranintegernumber: 24H);scanf(H%dH,&x);fun(x,aa,&n);for(i=0;i 25");fun(730,aa,&n);out=fopen(nout.dat",”w");for(i=0;i 26n,aa[i]);fclose(out);}答案是:voidfun(intx,inlpp[],int*n)(inti=1,j=O,k=O,*t=pp;for(i=0;i<=x;i++)if(i%2!=0) 27(t[j]=i;j++;)for(i=0;i 28lnputn:;scanf(n%dn/&n);s=fun(n);printf(H 29 30s=%f 31",s);)第1处填空:i<=n或n>=i第2处填空:II第3处填空:1.0或(double)1改错题下列给定程序中,fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AaaaBBbl23CCccccd,则应输出结果:upper=6,lower^8请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 32main()chars[100];intupper=0,lower=0;printf(n 33Pleaseastring:*');gets(s);fun(s,&upper,&lower);printf(*' 34upper=%dlower=%d 35n,upper,lower);第第第1处:voidfun(char*s,inta,intb)应改为voidfun(char*s,int*a,int*b)2处:a++;应改为(*a)++;3处:b++;应改为(*b)++;编程题请编写一个函数voidfun(char*tt,intppn),统计在tt字符串中“a”到“z”26个字母各自出现的次数,并依次存放在pp所指数组中。例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:33322110000000000000000000注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 36Pleaseenteracharstring:H);scanf(n%sn,aa);fun(aa,bb);for(k=0;k<26;k++)printf(n%d",bb[k]);printf(H 37");fun(Habosomfriendafarbringsadistantlandnear",bb);out=fopen(1•out.dat"znw••);for(k=0;k<26;k++)fprintf(out,"%d 38n,bb[k]);fclose(out);}答案是:voidfun(char*tt,intpp[])(intI;for(i=0;i<26;i++)PP(i]=O; 39while(*tt){switch(九t)case'a':pp[O]++;break;case,b':pp[l]++;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;case4,:pp[8]++;break;case'j':pp[9]++;break;case,k\pp[10]++;break;case,r:pp[ll]++;break;case,m,:pp[12]++;break;case'n':pp[13]++;break;case*0*:pp[14]++;break;case'p':pp[15]++;break;case'q':pp[16]++;break;case,r,:pp[17]++;break;case"s9:pp[18]++;break;case,t,:pp[19]++;break;caseU:pp[20]++;break;case,':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套填空题给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之--的圆面积(注:圆面积公式为:S=成,在程序中定义的变量名要与公式的变量相同)。例如,输入圆的半径值:19.527,输出为:S=598.950017。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include 40”,fun(3));第1处填空:r*r第2处填空:&x第3处填空:x改错题假定整数数列中的数不重复,并存放在数组中。下列给顶程序中,函数fun的功能是删除数列中值为x的元素,同时将其他元素前移。N中存放的是数列中元素的个数。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 41for(i=p;i 42H);for(i=0;i 43lnputx(todelete):n);scanf(n%dH,&x);printf(''Delete:%d 44",x);n=fun(w,n,x);if(n==-1)(printf(n***Notbefound!*** 45 46");)else(printf(nThedataafterdelete: 47");for(i=0;i 48 49H);})第1处:a[i+l]=a[i];应改为a[i]=a[i+l]编程题请编写一个函数voidfun(intm,intk,intxx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。例如,若输入:17,5,则应输出:19,23,29,31,37。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 50Pleaseentertwointegers:n);scanf(n%d,%dH,&m,&n);fun(m,n,zz);for(m=0;m 51");fun(28,20,zz);out=fopen("out.dat",,'wn);for(m=0;m<20;m++)fprintf(out,1'%d 52H,zz[m]); 53fclose(out);}答案是:voidfun(intm,intk,intxx[])(intg=O,I,j,flag=l;for(i=m+1;i 54n,n);3;)main()(printf(n%f 55n,fun(50));)第1处填空:<=第2处填空:n++或n+=l或n=n+l 56第3处填空:returns或return(s)改错题下列给定程序中,函数fun的功能是:根据整型参m的值,计算如下公式的值。例如,若m中的值为5,则应输出:0.536389请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:ttinclude 57Theresultis%lf 58"zfun(n));}第1处:for(i=2;i 59n);gets(strl);printf("Enterthepositionofthestringdeleted:");scanf(“之d”,&n);fun(strl,str2,n);printf(nThenewstringis:%s 60n,str2);fun(nHelloWorld!H,str2,9);out=fopen(nout.dat",HwH);fprintf(out,n%s",str2);fclose(out);)答案是: 61voidfun(chara[],charb[],intn){intI,j=0;for(i=0;i 62Theresult: 63n);printf(nn=%ldcl=%dc2=%dc3=%d 64H,n,cl,c2,c3);)第1处填空:n%10第2处填空:break第3处填空:break改错题下列给定程序中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:ttinclude 65inti,j,t,p;for(j=0;j 66");fun(a,m);printf(HAADd°6£°•,);for(i=0;i 67");}第1处:p=j应改为p=j;第2处:p=i应改为p=j;编程题请编写一个函数intfun(int*s,intt,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单位中。例如,输入如下整数:876675896101301401980431451777则输出结果为:6,980o注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 68H,k,a[k]);out=fopen("out.dat","wH); 69fprintf(out,n%d 70%d",k,a[k]);fclose(out);}答案是:voidfun(int*s,intt,int*k)(intI,max;max=s[0];for(i=0;i 71lnputintegernumber: 72n);do(i++;printf("num[%d]=n,i);scanf(n%dnf1);max=2num[i]:max;}while(3);printf(nmax=%d 73H,max);)第1处填空:&num[i]或num+i第2处填空:maxvnum[i]?或num[i]>max?第3处填空:num[i]!=0或0!=num[i]改错题下列给定程序中,函数fun的功能是:在字符串str中找出ASCH码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为eABCDFGH请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 74试题程序:#include p)(*q=*(q-1);q--;)p[0]=max;}main()(charstr[80];printf(HEnterastring:");gets(str);printf(M 75Theoriginalstring:");puts(str);fun(str);printf( 76Thestringaftermoving:11);puts(str);printf(H 77 78n);}第1处:voidfun(char*p);应改为voidfun(char*p)第2处:p=q+I;应改为q=p+i;编程题编写函数fun,函数功能是:根据以下公式计算s,计算结果作为函数值返回;n通过型参传入由c•111S=1H1F41+21+2+31+2+3+.・・刀例如:若n的值为的时,函数的值为1.833333。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 79{}main()(intn;floats;FILE*out;printf(n 80PleaseenterN:");scanf(n%dHz&n);s=fun(n);printf(nTheresultis:%f 81u,s);s=fun(28);out=fopen(nout.datn,,,w,1);fprintf(out,**%f,*,s);fclose(out);)答案是:floatfun(intn)(inti;floats=l.O,t=l.O;for(i=2;i<=n;i++)(t=t+i;s=s+l/t;}returns;给定程序的功能是分别统计字符串中大写字母和小写字母的个数。例如,给字符串SS输入:AaaaBBbl23CCccccd,则输出结果应为:upper=5,lower=9o请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include 82intupper=0,lower=0;printf(1' 83Pleaseastring:");gets(s);fun(s,&upper,slower);printf(11 84upper=%dlower=%d 85n,3);)第1处填空:(*a)++或++(*a)或*a=*a+l或*a+=l第2处填空:(*b)++或++(*b)或*b=*b+l或*b+=l第3处填空:upper,lower改错题下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在行参aver所指的存储单元中。例如,若输入8名学生的成绩: 8680.5607290.59851.58864则低于平均分的学生人数为4(平均分为:75.5625).请改正程序中的错误,使程序能统计出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 87Pleaseenterm:");scanf(n%dn,&m);printf(n 88Pleaseenter%dmark: 8911,m);for(i=0;i 90Thenumberofstudents:%d 91n,fun(s,m,&aver));printf(nAve=%f 92H,aver);1处:t=s[k];应改为t+=s[k];2处:*aver=&ave;应改为*aver=ave;编程题编写函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。M与n为两个正整数且要求m>no(加一〃)!例如:m=12,n=8时,运行结果为495.000000注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 93H,fun(12,8));out=fopen(nout.dat,"wH);fprintf(out,n%fH,fun(12,6));fclose(out); 94)答案是:floatfun(intm,intn)(floatp,t=l.O;inti;for(i=1;i<=m;i++)t=t*i;P=t;for(t=1.0,i=l;iv=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套填空题请补充main函数,该函数的功能是:从键盘键盘输入3个整数然后找出最大的数并输出。例如,输入:124543,输出为45注意:部分源程序给出如下。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。试题程序:#include 95lnputthreenumbers: 96");scanf(n%d,%dz%dn,&a,&b,ac);printf(nThethreenumbersare:%d,%d,%d 97",a,b,c);if(a>b)1;else―2_;if(max 98n,max);}第1处填空:max=a第2处填空:max=b第3处填空:max=c改错题下列给定程序中,函数fun的功能是:将s所指字符串出现的tl所指子串全部替换成t2所指子字符串,错形成的新串放在w所指的数组中。在此处,要求tl和t2所指字符串的长度相同。例如,当s所指字符串的内容为abcdabfab,tl所指子串中的内容为ab,t2所指子串中的内容为99时,结果,在w所指的数组中的内容为99cd99f99。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:ttinclude 99inti;char*p,*r,*a;strcpy(w,s);while(*w)(P=w;r=tl;/★★★★★★★★found★★★★★★★★/while(r)if(*r==*p)(r++;P++;)else(break;)if(*r==1\01)(a=w;r=t2;while(*r)(*a=*r;a++;r++;)w+=strlen(t2);)else(W++;main()(chars[100],tl[100]zt2[100],w[100];printf(" 100Pleaseenterstrings:H);scanf(H%sH,s);printf(n 101Pleaseentersubstring11:1');scanf(,tl);printf(" 102Pleaseentersubstringt2:H);scanf(H%sn,t2);if(strlen(tl)==strlen(t2))(fun(s,tl,t2,w);printf(" 103Theresultis:%s 104",w);}.else(printf(*'Error:strlen(tl)!=strlen(t2) 105M);})第1处:voidfun(char应改为voidfun(char*s,char*tl,char*t2,char*w)第2处:while(r)应改为while(*r) 106编程题编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程式cos(x)-x=0的一个实根。X“+1=cos(X“)迭代步骤如下:(1)取xl初值为0.0;(2)x0=xl,把xl的值赋给x0;(3)xl=cos(xO),求出一个新的xl;(4)若xO-xl,的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);(5)所求xl就是方程cos(x)-x=0的一个实根,作为函数值返回。程序将输出结果Root=0.739085o注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 107",f);out=fopen(*'out.datn,MwH);fprintf(out,'1%fH,f);fclose(out);)答案是:floatfun()(floatxl=0.0,x0;do(x0=xl;xl=cos(x0);while(fabs(xO-xl)>=le-6);returnx1;第11套填空题给定程序中,涵数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedgf.注意:部分源程序给出如下。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。试题程序:#include 108n=0;for(i=0;s[i]!=•\0';i++)n++;if(n%2==0)k=n-1;elsek=n-2;c=2;for(i=k-2;i>=l;i=i-2)s[i+2]=s[i];s[1]=3;)main()(chars[80]="abodefgh";printf(H 109Theoriginalstringis:%s 110H,s);fun(s);printf(H 111Theresultis:%s 112H,s);1第1处填空:1第2处填空:s[k]或*(s+k)第3处填空:c改错题下列给定程序中,函数FUN的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位8进制数字。例如,若输入77777,则输出将是32767。请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:tfinclude 113n=*p-'o1;P++;I★*******£ound********Iwhile(*p!=0){n=n*7+*p-'o';P++;}returnn;)main(){chars[6];inti;intn;printf(nEnterastring(octaldigits):n);gets(s);if(strlen(s)>5)(printf(nError:stringtoolonger! 114 115n);exit(0);}for(i=0;s[i];i++)if(s[i]<»0,||s[i]>'7')(printf("Error:%cnotisoctaldigits! 116 117",s[i]);exit(0);)printf(nTheoriginalstring:M);puts(s);n=fun(s);printf(H 118%sisconveredtointegenumber:%d 119 120n,s,n);)一一第1处:n=*p「o<应改为n=*p-t0,;第2处:n=n*7+*p/o';应改为n=n*8+*p-40\编程题下列程序定义了NXN的而维数组,并在主函数中自动赋值。请编写函数fun(inta[][N]),该函数的功能是:使数组左下半三角元素的值会全部置成0o197238,则返回主程序后a数组中的值应为456例如:a数组中的值为097008O000注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 121n);for(i=0;i 122printf(«%4d%a[i][j]);}printf(" 123");}fun(a);printf(nTHERESULT 124");for(i=0;i 125n);}for(i=0;i 126H);)fclose(out);)答案是:intfun(intal][N])(inti,j;for(i=0;ivN;i++)for(j=0;j<=I;j++)a[i]U]=0;)第12套填空题请补充fun函数,该函数的功能是字符串tt中的大写字母都改为对应的小写字母,其它字符不变.例如,若输入"AreyoucomefromSichuan?则输出","areyoucomefromsichuan?"注意:部分源程序给出如下。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。试题程序:#include 127(chartt[81];printf(n 128Pleaseenterastring:");gets(tt);printf(H 129Theresultstringis: 130%sH,fun(tt));)第1处填空:tt[i]v=,z,或"第2处填空:32或第3处填空:tl改错题下列给定程序中函数FUN的功能是:求出在字符串中最后一次出现的子符串的地址,通过函数值返回,在主函数中输出从此开始的字符串:若未找到,则函数值为NULL。例如,当字符串中的内容为abcdabfabcdx,t中的内容为ab时,输出结果应是:abcdx,当字符串中的内容为abcdabfabcdx,t中的内容为abd时,则程序输出未找到信息:notbefound!。请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 131pleaseenterstrings:H);scant(n%s",s);printf(H 132pleaseentersubstringt:");scanf(n%sn,t);p=fun(s,t);if(p)printf(n 133theresultis:%s 134H,p);else 135printf(" 136notfound! 137n);)第1处:a=NULL;应改为a=NULL;第2处:if(r=p)应改为if(*r==*p)编程题下列程序定义了NXN的而维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s则返回主程序后s的值应为3.375.注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 138");for(i=0;i 139n);s=fun(a);printf(»•*****THERESULT***** 140n);printf("Thesumis%lf 141n,s);out=fopen(1'out.dat,"w");fprintf(out,s);fclose(out);}答案是:doublefun(intw[][N])(inti,j,k=O;doubles=0.0;for(j=O;j 142)for(j=0;j 143printf(H%s 144H,fun(k));)第1处填空:char*fun(intn)第2处填空:2第3处填空:n%i=或!(n%i)或O=n%i改错题下列给定程序中,FUN函数的功能是:根据形参M,计算如下公式的值。1111—I—HF...HT=l+234m例如,若输入5,则应输出2.283333.请改正程序中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 145pleaseenter1integernumbers: 146H);scanf(H%dn,&m);printf(*' 147 148theresultis%lf 149H,fun(m));)第1处:t+=1.0/k;应改为t+=1.0/i;第2处:应填returnt;编程题请编写一个函数voidfun(inttt[M][N]),tt提向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入PP所指的一维数组中。二维数组中的数已在主函数中赋予。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 150{19,33,45,38},{20,22,66,40}};intp[N],i,j,k;FILE*out;printf(nTheoriginaldatais: 151u);for(i=0;i 152n);}fun(t,p);printf(H 153Theresultis: 154");for(k=0;k 155");out=fopen(1'out.dat••,HwH);for(k=0;k 156n,p[k]);fclose(out);)答案是:vidfun(inttt[M][N],intpp[N])(inti,j,min;for(j=0;j 157charstr[80];printf(n 158Enterastring:',);gets(str);printf(n 159 160Thestringis:%s 161H,str);fun(str);printf(1' 162 163Thestringofchangingis:%s 164u,str);)第1处填空:*p或*p!=,\(r或*p!=0第2处填空:i++或++i或i+=l或i=i+l第3处填空:、0,或0改错题下列给定程序中,函数FUN和FUNX的功能是:用二分求方程-4丁+3x-6=0的一个根,并要求绝对误差不超过0.001。例如,若出给m输入100,给n输入90,则函数求得的一个根值为2.000。请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 165n);scanf(n%lf%lfn,&m,&n);root=fun(m,n);printf(nroot=%6.3f 166H,root);)第1处:intr;应改为doubler;第2处:while(fabs(n-m)vO.OOl)应改为while(fabs(n-m)>0.001)编程题请编写fun函数,函数的功能是求出二维数组周边的元素之和,作为函数值返回,二维数例如:若二维数组中的值为:13579299946999813570则函数为61。注意:部分源程序给出如下。 167请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 168n);for(i=0;i 169");y=fun(aa);printf(H 170Thesum:%d 171H,y);printf(n 172");out=fopen(*'out.dat",MwH);fprintf(out,n%dH,y);fclose(out);)答案是:intfun(inta[M][N])(inti,j,s=O;for(j=0;j 173Voidfun(char*str,charch){while(*str&&*str!=ch)str++;If(*ste_1_ch){str[O]=ch;_2_=0;))Main(){chars[81],c;Printf(4t 174pleaseenterastring: 175");gets(s);PrintfCAnpleaseenterthecharactertosearch:C=getchar();Fun(_3_);Printf(i4 176Theresultis%s 177M,s);第1处填空:!=第2处填空:str[ljWc*(str+l)第3处填空:s,c 178改错题下列给定程序中,函数FUN的功能是:判断字符CH是否与STR所指串中的某个字符相同:若相同,则什么也不做,若不同,则将其插在串的最后。请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:ttinclude 179Pleaseenterastring: 180H);gets(s);printf(" 181Pleaseenterthecharactertosearch:");c=getchar();fun(s,c);处处处123}第第第printf(n 182Theresultis%s 183n,s);:voidfun(charstr,charch)应改为voidfun(char*str,charch):if(*str==ch)应改为if(*str==,\O,):strUk'O';应改为str[l]='\O';或str[lJ=O编程题请编写个函数unsignedfun(unsignedw),w是一个大于10的无符号整数,若w是n(n>=2)位的整数,则函数求出w的后n-1位作为函数值返回。例如:w值为5923,则函数返回923,若w值为923,则函数返回23注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 184n,x);if(x<10)printf("Dataerror!n);elseprintf('•Theresult:%u 185M,fun(x));out=fopen("out.dat",HwH);fprintf(out,n%un,fun(28));fclose(out);) 186答案是:unsignedfun(unsignedw)(unsignedt,s=O,s1=1,p=0;t=w;while(t>10)(if(t/10)p=t%10;s=s+p*sl;s1=s1*10;t=t/10;)returns;)第16套填空题请补充fun函数,该函数的功能是:判断一个年份是否为闰年.例如,1900年不是闰年,2004是闰年.注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填如所编写的若干表达式或语句。试题程序:#include 187H,year);elseprintf(*'%disnotaleapyear. 188n,year);}第1处填空:n%100!=0或0!=n%100第2处填空:N400==0或!(n%400)或0==n%400第3处填空:flag改错题下列给定程序中的函数Creatlink的功能是:创建带头结点的单向链表,并为各结点数据域赋0到M-1的值。请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 189 190 191THELIST: 192 193HEAD”);while(p)(■printf(1'->%d",p->data);p=p->next;}printf(H 194");}main()NODE*head;head=Creatlink(8,22);outlink(head);)第1处:p・>next=NULL;应改为p=s;第2处:s->data=rand()%m;应改为s->data=rand()%(m-1)第3处:returnp;应改为returnh;编程题请编写一个函数floatfun(doubleh),函数的功能是对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)例如:若h值为&32433,则函数返回8.32,若h值为&32533,则函数返回8.33#include 195 196H,a);printf(nTheresult:%f 197n,fun(a));out=fopen(•*out.dat,,,wn); 198fprintf(out,M%fn,fun(3.141593));fclose(out);)答案是:floatfun(floath)(longt;floats;h=h*1000;t=(h+5)/10;s=(float)t/100.0;returns;第17套填空题给定程序的功能是将n个人员的考试成绩进行分段统计,考试成绩放在a数组中,各分段的人数存到b数组中:成绩为60到69的人数存到b[0]中,成绩为70到79的人数存到b[l],成绩为80到89的人数存到b[3],成绩为100的人数存到b[4],成绩为60分以下的人数存到b⑸中例如,当a数组中的数据是:93、85、77、68、59、43、94、75、98。调用该函数后,b数组中存放的数据应是1、2、1、3、0、2。注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填如所编写的若干表达式或语句。试题程序:#include 199");}第1处填空:n第2处填空:else第3处填空:a,b改错题下列给定程序中,函数FUN的功能是:计算并输出K以内最大的10个能被13或17整除的自然数之和。K的值由主函数传入,若K的值为500,则函数值为4622。 200请改正程序中的错误或在横线处境上适当的内容并把横线删除,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不耍更改程序的结构!试题程序:ttinclude 201",fun(500));第1处:if((k%13=0)ll(k%17=0))应改为if((k%13==0)ll(k%17==0))第2处:应填}编程题请编写一个函数fun(char*s)该函数的功能是把字符串中的内容逆置。例如:字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba.注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 202");printf("Thestringaftermodified:puts(a);strcpy(a,HHelloWorld!n);fun(a);out=fopen("out.dat",HwH);fprintf(out,1'%s",a);fclose(out);)答案是:voidfun(char*s)(charch; 203inti,m,n;i=0;m=n=strlen(s)-l;while(i<(n+l)/2)(ch=s[i];s[i]=s[m];s[m]=ch;i++;m—;)第18套填空题Str为一个字符序列.请补充FUN函数的功能是:查找STR中值为X的元素,返回找到值为X的元素个数,并把这些值为X的元素下标依次保存在数组BB中.例如,在“abcdefahi『中查找'A',结果为:2个4,下标依次为0、6。注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:#include 204*');gets(str);printf("*******TheOriginalstring******* 205n);puts(str);printf(••*******inputcharacter******* 206H);scanf(”%c”,&ch);n=fun(str,ch);printf(n 207Thenumberofcharacteris:%d 208H,n);printf(••*******Thesuffixofcharacter******* 209");for(i=0;i 210输出为:A=65B=60o请改正程序中的错误,使它能得出正确结果。 211注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 212n,a,b);1处:voidfun(inta,intb)应改为voidfun(int*a,int*b)2处:l=b;b=a;a=t;应改为t=*b;*b=*a;*a=t;编程题编写程序,实现矩阵(3行列)的转置(即行列互换)例如,输入如下的矩阵:100200300400500600700800900则程序输出:100400700200500800300600900注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 213”);fun(array);printf("Convertedarray: 214H);out=fopen(1•out.dat••,Hwn);for(i=0;i<3;i++)(for(j=0;j<3;j++)(printf<1•%7dH,array[i][j]);fprintf(out,11%7dnzarray[i][j]);}printf(*' 215H); 216fprintf(out," 217n);)fclose(out);)答案是:voidfun(intarray[3][3])(inti,j,temp;for(i=0;i<3;i++)for(j=0;j#include 218Belowtheaveragescoreare:for(i=0;i 219改错题下列给定程序中函数FUN的功能是:从低位开始取出长整型变量S中偶数位上的数依次构成一个新数放在T中。例如,当S中的数为7654321时,T中的数为642。请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 220Pleaseenters:n);scanf(,&s);fun(s,&t);printf(nTheresultis:%ld 221H,t);}第1处:voidfun(longs,longt)应改为voidfun(longsjong*t)第2处:while(s<0)应改为while(s>0)编程题请编写fun函数,函数的功能是:从字符串中删除指定的字符,同一字母的大,小写按不同的字母处置,例如:若程序执行时输入字符串为:turbocandBorlandc++从键盘上输入字符n,则输出后变为:turbocadborladc++如果输入的字符在字符串中不存在,则照原样输出注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 222'*,str);printf(nEaEeO»,oxd-u:H);scanf(n%cnz&ch);fun(str,ch);printf(nstr[]=%s 223",str);strcpy(strr•'turbocandborlandC++”);fun(str,•a•);out=fopen(nout.dat",HwH);fprintf(out,H%sn,str);fclose(out);)答案是: 224voidfun(chars[],intc)(inti=0;char*p;p=s;while(*p)(if(*p!=c)(s[i]=*p;i++;)p++;)s[i]=>\O,;)第20套填空题给定程序的功能是求出能整除X且不是偶数的各整数,并放在数组PP中,这些除数的个数由N返回。例如,若X的值为30,则有4个数符合要求,它们是1,3,5,15。注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:ttinclude 225Pleaseenteranintegernumber: 226n);scanf(H%dn,&x);fun(x,3);for(i=0;i 227");}第1处填空:i第2处填空:j第3处填空:aa,&n改错题N个有序整数数列已放在一维数组中,给定卜列程序中,函数FUN的功能是:利用拆半查找算法查找整数M在数组中的位置。若找到,则返回其下标值:反之,则返回拆半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low 228试题程序:#include 229",m,k);elseprintf(uNotbefound! 230n);)第1处:voidfun(inta[],intm)应改为intfun(inta[],intm)第2处:if(m>=a[mid])应改为if(m>a[mid])编程题编写函数intfun(intlim,intaa[MAX]),该函数的功能的求出小于或等于lim的所有素数,并放在aa数组中,该函数返回所求出的素数的个数注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:ttinclude 231printf(HEaEeO»,dOuEy");scanf(M%d",;sum=fun(1imit,aa);for(i=0;i 232n);printf(1•%5dn,aa[i]);}sum=fun(28,aa);out=fopen(nout.dat",nwn);for(i=0;i 233H,aa[i]);fclose(out);)答案是:intfun(intlim,intaa[MAXJ)(intk=O,Ij;for(i=lim;i>l;i—)(for(j=2;jvoidfun(char*s)(inti,j=0,k=0;chartl[80],t2[80];for(i=0;s[i]1='\0';i++)if(s[i]>='0'&&s[i]<='9')(t2[j]=s[i];1—;)else(tl[k++]=s[i];)t2[j]=0;tl[k]=0;for(i=0;i 234for(i=0;i<3;i++)s[k+i]=TTiiTT)main()(chars[80]="ba3a54j7sd567sdffsn;printf(H 235Theoriginalstringis:%s 236n,s);fun(s);printf(H 237Theresultis:%s 238H,s);)第1处填空:j++或++j或j+=l或j=j+l第2处填空:s[i]=tl[i]第3处填空:j改错题下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数FUN的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 239Themaxinlink:%d 240*',s);}NODE*creatlink(intn,intm)(NODE*h,*p,*s;inti;h=p=(NODE*)malloc(sizeof(NODE));h->data=9999;for(i=l;i<=n;i++)(s=(NODE*)malloc(sizeof(NODE));s->data=rand()%m;s->next=p->next;p->next=s;p=p->next;}p->next=NULL;returnh;}outlink(NODE*h,FILE*pf)(NODE*p;p=h->next;fprintf(pf,M 241THELIST: 242 243HEAD");while(p)('' 244fprintf(pf,11->%d",p->data);p=p->next;}fprintf(pf,n 245");}main()NODE*head;intm;head=creatlink(12z100);outlink(head,stdout);m=fun(head);printf(H 246THERESULT: 247n);outresult(m,stdout);)第1处:p=h;应改为p=h->next;第2处:p=h->next;应改为p=p->next;编程题请编写fun函数对长度为7个字符的字符串,除首,尾字符外,其他5个字符按ASCII码降序排列例如原来的字符串为,CEAecda,则排序后输出为CedcEAa注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 248%sn,s);out=fopen("out.dat",Hwn);strcpy(s,"ceaEDCA");fprintf(out,,'%sn,s);fclose(out);)答案是:voidfun(char*s,intnum)(chart;intI,j;for(i=l;i 249填空题给定给定程序中,函数FUN的功能是:在形参S所指字符串中的每个数字字符之后插入一个*号。例如,形参S所指的字符串为:def35adh3kjsdf7»执行结果为:def3*5adh3*kjsdf7*。注意:部分源程序给出如F请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:ttinclude 250Theoriginalstringis:%s 251”,s);fun(s);printf(M 252Theresultis:%s 253n,s);)第1处填空:&&第2处填空:0第3处填空:s[j]或*(s+j)改错题下列给定程序中,函数FUN的功能是:根据整型形参M,计算如下公式的值,1111y=l++++....+2*23*34*4m*m例如,若M中的值为5,则应输出:L4636H。请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 254intn=5;printf(H 255Theresultis%lf 256H,fun(n));)第1处:for(i=2;ivm;i++)应改为for(i=2;i<=m;i++)第2处:y+=l/(i*i);应改为y+=LO/(i*i);编程题N名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点,请编写函数fun,它的功能是找出学生的最高分,由函数返回。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 257printf.Of"zp->s);p=p->next;}while(p!=0);printf(H 258 259n);)main()(doubles[N]={85,76,69,85,91,72,64,87},max;STREC*h;FILE*out;h=creat(s);outlist(h);max=fun(h);printf(Hmax=%6.If 260M,max);out=fopen("out.dat“,);fprintf(out,nmax=%6.1fn,max);fclose(out);)答案是:doublefun(STREC*h)(doublemax;STREC*q=h;max=h->s;do(if(q->s>max)max=q->s;q=q->next;}while(q!=0);returnmax;)第23套填空题在主函数中从键盘输入若干个数放入数组X中,用0结束输入但不计入数组。下列给定程序中,函数FUN的功能是:输出数组元素中小于平均值的元素。例如:数组中元素的值依次为1,2,2,12,5,15,则程序的运行结果为1,2,2,5。注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:ftinclude 261average=3;for(i=0;i 262");printf(,,%d/”,x[i]);main()(intx[1000];inti=0;printf(n 263Pleaseentersomedata(endwith0):n);do(scanf(n%dH,&x[i]);}while(x[i++]!=0);fun(x,i-1);)第1处填空:intx□或int*x第2处填空:sum+=x[i]或sum=sum+x[i]第3处填空:sum/n改错题下列给定程序中,函数FUN的功能是:按以下递归公式求函数值。{10(n=l)Fun(n-l)+2(n>l)例如,当给n输入5吐函数值为18,当给n输入3时,函数值为14.请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 264 265n,fun(n));)第1处:inifun(n)应改为intfun(intn)第2处:if(n=l)应改为if(n==l) 266编程题编写函数fun,它的功能是:判断字符串是否为回文,若是,则函数返回1,主函数输出YES,否则返回0,主函数中输出NO,回文是指顺读和倒读都一样的字符串,例如,字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 267 268n);puts(s);if(fun(s))printf(1•YES 269");elseprintf(HN0 270n);out=fopen("out.dat","w”);for(i=0;i<4;i++)if(fun(test[i]))fprintf(out,HYES 271n);elsefprintf(out,”N0 272”);fclose(out);)答案是:intfun(char*str)(inti,n=0,fg=l;char*p=str;while(*p)(n++;P++;)for(i=0;i 273break;)returnfg;)第24套填空题函数FUN的功能是:从三个形参a,b,c中找出中间的那个数,作为函数值返回。例如,当a=3,b=5,c=4时,中数为4。注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:#include 274Themiddlenumberis:%d 275n,r);空空空填填填处处处123第第第):b改错题下列给定程序中,函数fun的功能是:从s所指字符串中,找出t所指子串的个数作为函数值返回,例如,当s所指字符串中的内容为abcdabfab,t所指字符串的内容为ab,则函数返回整数3。请改正程序中的错误,使它能得也正确的结果,注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 276s++;)returnn;)main()(chars[100],t[100];intm;printf(H 277Pleaseenterstrings:");scanf(H%sn,s);printf(n 278Pleaseentersubstringt:");scanf(n%sHzt);m=fun(s,t);printf(H 279Theresultis:m=%d 280",m);)第1处:if(r==p)应改为if(*r==*p)第2处:if(=,\(T)应改为if(*r=、(T)编程题编写函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言中提供的将字符串转换成整数的函数。)例如若输入字符串”一如34则函数把它转换为整数值-1234。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 281");gets(s);n=fun(s);printf(n%ld 282n,n);out=fopen("out.dat","w");for(n=0;n<4;n++)fprintf(out,,'%ld 283n,fun(test[n]));fclose(out);答案是:longfun(char*p){'longs=O,t;inti=O,j,n=strlen(p),k,sl;if(plO]==,-t)i++;for(j=I;j<=n-l;j++)(t=P叶'O'; 284sl=10;for(k=j;k 285Theoriginaldata: 286");for(i=0;i<9;i++)printf(n%4d”,b[i]);printf(H 287H);funfb,9);printf(H 288Thedataafterinvert: 289");for(i=0;i<9;i++)printf(n%4d,b[i]);printf(,, 290H);第1处填空:n/2第2处填空:i第3处填空:a[n-i-l]改错题下列给定程序中,函数fun的功能是:y计算n!.例如给n输入5,则输出120.000000.请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 291#include 292 293%d!=%lf 294 295n,n,fun(n));)第1处:ifn==0应改为if(n=0)第2处:resylt=n--;应改为result*=n—;编程题编写函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言中提供的求字符串长度的函数),函数返回较长的字符串,若两个字符串长度相同,则返回第一个字符串例如,输入beijingshanghai 296n,fun(a,b));out=fopen("out.dat","w");fprintf(out,n%s",fun(Hhunan",nchangsha"));fclose(out);)答案是:char*fun(char*s,char*t)(char*p,*tl=t,*sl=s;intn=0,m=0;while(*sl)(n++;sl++;)while(*tl) 297(m++;tl++;}if(n>=m)P=s;elsep=t;returnp;第26套填空题请补充FUN函数,该函数的功能求能整除X,且是偶数的数,把这些数保存在数组BB,并按从大到小输出。例如,当x=20时,依次输出:201042o注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include 298 299”);for(i=3;i>=0;i--)priritF(,r%T”,bb[i]);)main() 300intk=1;intbb[100];printf(*' 301PleaseinputX 302'*);scanf(n%dH,&k);fun(k,bb);:i=l:&&:-j或j-l处处处填填填空空空改错题下列给定程序中,函数fun的功能是,先从键盘上输入一个3行2列矩阵的各个元素的值,然后输出主对角线元素之和。请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。#include 303H,sum);}main()(fun();)第1处:应填sum=0第2处:scanf(“%d,”,a[i]|jD;应改为scanf(,,%d,,,,&a[i][j]);编程题编写函数fun,它的功能是:根据下列公式求4的值,(要求满足精度0.0005,即某项小于0.0005时停止迭代):三="+1*21*2*33*153*5*31*2*3*4—IF73*5*7*91*2*3*...*〃H3*5*7*...*(2〃+1)程序远行后,如果输出精度为0.0005,则输出为3.14…注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 304scanf(n%1f"z&x);printf(H 305eps=%lf,PI=%lf 306*'zx,fun(x));out=fopen("out.dat",Hw");fprintf(out,neps=%lf,PI=%lf 307",0.00003,fun(0.00003));fclose(out);)答案是:doublefun(doubleeps)(doubles;floatn,t,pi;t=1;pi=0;n=1.0;s=1.0;while((fabs(s))>=eps)(pi+=s;t=n/(2*n+l);s*=t;n++;)pi=pi*2;returnpi;第27套填空题请补充函数fun,该函数的功能是:统计所以小于等于n(n>2)的素数的个数,素数的个数作为函数值返回。注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include 308Theprimenumberbetween2to%d 309n,n);for(i=2;i<=n;i++)(for(1;j=i)(count++;printf(count%15?n%5d":n 310%5dn,i); 311returncount;main()(intn=20,r;r=fun(n);printf(H 312Thenumberofprimeis:%d 313H,r);}第第第123处处处填填填空空空:i改错题下列给定程序中,函数fun的功能是:根据以下公式求力值,并作为函数值返回,兀,11*21*2*31*2*3*41-3353573579例如,给指定精度的变量eps输入0.005时应当输出pi=3.140578c请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 314Pleaseenteraprecision:");scanf(n%1f,&x);printf(n 315eps=%lf/Pi=%lf 316 317H,x,fun(x));)第1处:t=0;应改为t=1.0;第2处:while(t<=eps)应改为while(t>=eps)编程题编写函数fun,它的功能是:求出1到m间能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数,例如,若传输给m的值为50,则程序输出:711142122283335424449注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 318for(k=0;k 319nzaa[k]);elseprintf("%4dH,aa[k]);printf(n 320");out=fopen("out.dat”,nwn);fun(100,aa,&n);for(k=0;k 321nzaa[k]);elsefprintf(out,"%4d”,aa[k]);fclose(out);}答案是:voidfun(intm,int*a,int*n)(intI,j=O;*n=O;for(i=l;i<=m;i++)if(i%7==0lli%ll=0)(a[j]=i;j++;)*n=j;)第28套填空题程序的功能是计算s=fk!。4=0注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:#include 322for(k=0;k<=n;k++)s=4;printf(n%ld 323Hzs);)第1处填空:1第2处填空:s*i或i*s第3处填空:0第4处填空:s+fun(k)或fun(k)+s改错题在字符串的最前端加入n个*号,形成新串,注意:字符串的长度允许为79。请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 324Enterastring:H);gets(s);printf(H 325Thestring%s 326n,s);printf(n 327Entern(numberof*):n);scanf(n%dH,&n);fun(s,n);printf(n 328Thestringafterinster:%s 329n,s);)第1处:s=p;应改为p=s;第2处:应填P++;或++p;或p+=l或p=p+l第3处:a[i]=。;应改为a[i]='(T;或a[i]=O;编程题 330编写函数fun,它的功能是:找出一维整数型数组元素中最大的值和它所在的下标,最大值和它的下标通过形参传回。数组元素中的值已在主函数中赋予,主函数中x是数组名,n是x中的数据个数,max存放最大值,index中存放最大值所在元素的下标。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 331");fun(x,n,&max,&index);printf(nMax=%5dzIndex=%4d 332H,max,index);out=fopen("out.dat","w");memcpy(x,"3.141592653589793238462643383279n,32);fun(x,8,&max#&index);fprintf(out,uMax=%5dzIndex=%4dn,max,index);fclose(out);)答案是:voidfun(inta[],intn,int*max,int*d){inti;*max=a[0];*d=0;for(i=0;i 333试题程序:#include 334Pleaseenternaturalnumbersn:n);scanf(n%dH#&n);}while(n<=0);printf(" 3352»3- 336",n,fun(n));}一一,第1处填空:0第2处填空:iv=x或x>=i改错题下列给定程序中,函数fun的功能是:求出两个非。正整数的最大公约数并作为函数值,例如numl和um2分别输入49和21,贝U输出的最大公约数为7,若给numl和um2分别输入27和81,则最大公约数为27。请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 337 338n,numl,num2);a=fun(numl,num2);printf(nThemaximuncommondivisoris%d 339 340H,a);)第1处:b=a;应改为a=b;第2处:return(a);应改为return(b); 341编程题请编写一个函数FUN,它的功能是:将SS所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入abc4EFg,则应输出aBc4EFg注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 342Pleaseenteranstringwithin80characters: 343H);gets(tt);printf(n 344 345Afterchanging,thestring 346%s 347",tt);fun(tt);printf(n 348becomes 349%s 350n,tt);out=fopen("out.dat","w");strcpy(tt,'•Pleaseenteranstringwithin80characters:");fun(tt);fprintf(out,n%sn,tt);fclose(out);)答案是:voidfun(char*ss)(inti,n;n=strlen(ss);for(i=l;i 351k=2;t=3;}returnt;)main()(charstr[8];printf(HEnterastringmadeupof101to191digitalcharacter: 352n);gets(str);printf("Thestringis:%s 353",str);if(strlen(str)>8)printf(nThestringistoolong!H);elseprintf(HTheresult:%lu 354",fun(str));}第1处填空:-i或i—或i==l或i=i-l第2处填空:s[i]-O第3处填空:t*10+k或k+t*10或10*t+k或k+10*t改错题下列给定程序中,函数fun的功能是:计算正整数num的各位上的数字之积,例如若输入252,则输出应该是20,若输入202,则输出应该是0.请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 355%ld 356",fun(n));)第1处:longk;应改为longk=l;第2处:num\=10;应改为num/=10;编程题请编写一个函数FUN,它的功能是:求出一个2*M整型二维数组中最大元素的值,并将最大值返回调用函数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#defineM4#include 357fun(inta[][M]))main()(intarr[2][M]={5,8,3,45,76,-4,12,82};FILE*out;printf(Hmax=%d 358",fun(arr));out=fopen(Hout.dat“,“w”);fprintf(out,nmax=%d",fun(arr));fclose(out);)答案是:intfun(inta[][M])(intI,j,max;max=a[0][0];for(i=0;i<2;i++)for(j=0;j 359H);printf(H 360strl:");gets(strl);printf(” 361str2:n);gets(str2);printf('»*******Thestringstrl&str2******* 362");puts(strl);puts(str2);fun(strl,str2);printf(»•*******Thenewstring******* 363n);puts(strl);) 364第1处填空:*(pl+i)或pl[i]或*(pl+i)!=0或pl[i]!=0第2处填空:*p2或p2[0]或*p2!=0或p2[01!=0第3处填空:*p2++改错题下列给定程序中,函数fun的功能是:将字符串tt中的小写字母都改成对应的大写字母,其他字符不变,例如输入Ab,cD,则输出AB,CD,请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 365/★★★★★★★★£ound★★★**★★★/tt[i]+=32;return(tt);)main(){chartt[81];printf(H 366Pleaseenterastring:M);gets(tt);处处12}第第printf(n 367Theresultstringis: 368%s11,fun(tt));if((tt[i]>='a')ll(tt[i]<='z'))应改为if((tt[i]>='a')&&(tt[i]v='z'))tt[i]+=32;应改为tt[i]-=32;编程题请编写函数FUN,其功能是:将S所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除:串中剩余字符所形式的一个新串放在T所指的数组中。例如,若S所指字符串中的内容为ABCDEFG123456,其中字符A的ASCII码值为奇数,因此应当删除:其中字符B的ASCII码值为偶数,但在数组中的下标为奇数:因此也应当删除:而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后T所指的数组中的内容应是246。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 369PleaseenterstringS:n);scanf(H%sH,s);fun(s,t);printf(H 370Theresultis:%s 371H,t);out=fopen("out.dat","w");strcpy(s,''PleaseenterstringS:");fun(s,t);fprintf(out,n%sn,t);fclose(out);)答案是:voidfun(char*s,chart[])(intI,j=O,n;n=strlen(s);for(i=0;i 372例如:当x[10]={15.6,19.9,16.7,15.2,18.3,12.1,155,11.0,10.0,16.0},输出结果为:avg=15.030000.注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:ttinclude 373Theoriginaldatais: 374");for(i=0;i<10;i++)printf("%6.If",x[i]);printf(" 375 376");avg=fun(x);printf("average=%f 377 378",avg);)'第1处填空:sum+=x[i]或sum=sum+x[i]第2处填空:avg*1000或1000*avg第3处填空:(avg+5)/10或(5+avg)/10改错题下列给定程序中,函数fun的功能是:s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均埴,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数下是5的倍数,多余部分忽略下计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 379/*★★★★★★★£ound********/if(i+1%5==0)(w[k]=sum/5;sum=0;k++;}}returnk;)main()(doublea[SIZE],b[SIZE/5];inti,k;k=fun(a,b);printf(••Theoriginaldata: 380n);for(i=0;i 381H);printf(n%4.Of",a[i]);)printf(H 382 383Theresult: 384n);for(i=0;i 385 386H);}第1处:if(i+l%5==0)应改为if((i+l)%5==0)编程题请编写函数FUN,其功能是:将S所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符外,其余的全都删除:串中剩余字符所形式的一个新串放在T所指的数组中。例如,若S所指字符串中的内容为ABCDEFG12345,其中字符A的ASCH码值为奇数,但所在元素的下标为偶数,因此必需删除:而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除。其他依此类推。最后T所指的数组中的内容应是135。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 387PleaseenterstringS:n);scanf(H%s",s);fun(szt);printf(M 388Theresultis:%s 389",t);out=fopen("out.dat","w");strcpy(s,"PleaseenterstringS:',);fun(szt);fprintf(out,n%s",t);fclose(out);)答案是:voidfun(char*s,chart[])( 390intI,j=O,n;n=strlen(s);for(i=0;i 391Theoriginaldata: 392");for(i=0;i 393H);fun(b,N);printf(H 394Thedataaftermoving: 395H);for(i=0;i 396H);)第1处填空:1第2处填空:i第3处填空:a[p+i]或*(a+p+i)改错题下列给定程序中,函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字(但Z转换为A,z转换为a),其他字符不变。请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序: 397#include 398Enterastringwithlength<80.: 399 400");gets(s);printf(n 401Thestring: 402 403");puts(s);fun(s);printf(M 404 405TheCords: 406 407•');puts(s);第1处:while(*s!='@')应改为while(*s)或while(*s!='\O')或while(&s!=O)第2处:(*s)++;应改为s++;编程题假定输入的字符串中只包含字母和*号。请编写函数FUN,它的功能是:使字符串中尾部的*号不得多于N个;若多于N个,则删除多余的*号;若少于或等于N个,则什么也不做,字符串中间和前面的*号不删除。例如,字符串中的内容为****A*BC*DEF*G*******,若N的值为4,删除后,字符串中的内容则应当是****a*BC*DEF*G****;若N的值为7,则字符串中的内容仍为****A*BC*DEF*G*******。N的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 408n);gets(s);printf(nEntern:••);scanf("%d”,&n);fun(s,n);printf(HThestringafterdeleted: 409H);puts(s);out=fopen("out.dat","w”);strcpy(s,”*★★*a*BC*D**EF*G*******★*”); 410fun(s,5);fprintf(out,n%s",s);fclose(out);)答案是:voidfun(char*a,intn)(inti=0,k=0;charp=t=a;while(*t)t++;t—;while(*t=='*')k++;t-;)t++;if(k>n)(while(*p&&p 411n);gets(str);printf(nthestringis: 412n); 413puts(str);fun(str,bb);for(i=0;i<5;i++)printf(*, 414%c:%d'*,ss[i],bb[i]);printf(n 415other:%d",bb[i]);)第1处填空:bb[i]=O或*(bb+i)=O第2处填空:bb[5]++或++bb[5]或bb[5]=bb[5]+l或bb[5]+=l第3处填空:p++;或++p;或p+=l;或p=p+l;改错题下列给定程序中,函数ftm的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中,高位仍在高位,低位仍在低位,当s中的数为87653142时,t中的数为753lo请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 416Pleaseenters:scanf(,&s);fun(s,&t);printf(nTheresultis:%ld 417n,t);)第1处:t=0;应改为*t=0;第2处:if(d%2==0)应改为if(d%2!=0)编程题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数FUN,它的功能是:把分数最高的学生数据放在H所指的数组中,注意:分数最高的学生可能不只一个,函数返回分数最高的学生的人数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: 418#include 419nzn);for(i=0;i 420n,h[i].num,h[i].s);printf(" 421”);out=fopen(••out.datHwn);fprintf(out,n%d 422",n);for(i=0;i 423n,h[i].s);fclose(out);)答案是:intfun(STREC*a,STREC*b)intI,j=0,n=0,max;max=a[O].s;for(i=0;i 424#include 425n);gets(str);while(str[num])num++;fun(str,&num);printf(nThenumberofwordis:%d 426 427u,num);)第1处填空:iv*num或*num>i第2处填空:n++或++n或n+=l或n=n+l第3处填空:*num=n改错题下列给定程序中,函数fun的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指由空格隔开的字符串)。例如,若输入:Iamastudenttotaketheexamination.则应输出:IaMAstudenTtOtakEthEexaminatioN.请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 428Pleaseenteranenglishsentencewithin63letters:");gets(chrstr);d=strlen(chrstr);chrstr[d+1]=11;chrstr[d+1]=0;printf(n 429 430Beforchanging:%sn,chrstr);fun(chrstr); 431printf(H 432Afterchanging: 433%s",chrstr);}一一一第1处:if(p==-)应改为if(*p=-)第2处:*p=loupper(*(p-l));应改为*(p-l)=toupper(*(p-l));编程题请编写-一个函数,用来删除字符串中的所有空格。例如,输入asdafaaz67,则输出为asdafaaz67o注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 434",str);out=fopen("out.dat",Hwn);fun(Msg);fprintf(out,"%sn,Msg);fclose(out);)答案是:voidfun(char*str)(inti=0;char*p=str;while(*p){if(*p!='')(str[i]=*p;i++;)P++;)str[I]=,\O';第36套填空题Str是全部由数字和字母字符组成的字符串,由num传入字符串的长度,请补充fun函数,该函数的功能是把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。例如:st="Abcl23e456hui7890”,结果为:1234567890注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include 435for(i=0;i 436'*);gets(str);while(str[num])num++;n=fun(str,bb,num);printf(H 437bb=");for(i=0;i 438H,xl,x2,x3);j=fun(xlrx2,x3);printf(HTheminimalcommonmultipleis:%d 439n,j);)第1处:j=l;应改为j=0;第2处:while(t!=0&&m!=0&&n!=0)应改为while(t!=0lln!=0)编程题假定输入的字符串中只包含字母和*号。请编写函数FUN,它的功能是:使字符串中前导*号全部移到字符串的尾部。例如,若字符串中的内容为*******A*BC*DEF*G****,移动后,字符串中的内容应当是A*BC*DEF*G***********。在编写函数时,不得使用C语言提供的字符串函数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 440voidfun(char*a)}main()(chars[81],*p;FILE*out;chartest[4][80]={,•*******a*BC*DEF*G****n,”a******b*cd**ef*g*11“★★★★A****g*”f“★d**b**a**e*”}jinti;printf(HEnterastring: 441n);gets(s);fun(s);printf(nThestringaftermoveing: 442");puts(s);out=fopen("out.dat“,);for(i=0;i<4;i++)(fun(test[i]);fprintf(out,"%s 443H,test[i]);}'fclose(out);)答案是:voidfun(char*a)(inti=0,n=0;char*p;P=a;while(*p=='*')(n++;P++;)while(*p)(a[i]=*p;i++;P++;)while(n!=0)(a[i]='*';i++;n-;)a[i]=,\(T;)第37套填空题从键盘输入一组无符号整数并保存在数组xx[N]中,以整数0结束输入,要求这些数的最大位数不超过4位,其元素的个数通过变量num传入dun函数,该函数的功能是:从数组xx中找出个位和十位的数字之和大于5的所以无符号整数,结果保存在数组yy,中其个数由fun函数返回。例如:当xx[8]={123,11,23,222,42,333,14,5451}时,bb[3]={42,333,5451)注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填如所编写的若干表达式或语句。试题程序:#include 444}return3;)main()(intxx[N];intyy[N];intnum=0,n=0,i=0;printf(nInputnumber: 445u);do(scanf(•,%uH,&xx[num]);}while(xx[num++]!=0);n=fun(xx,yy,num);printf(*' 446yy=*');for(i=0;i 447Pleaseenterstringa:");gets(a);printf(n 448Pleaseentersubstringb:");gets(b);m=fun(a,b); 449m=printf(n 450Theresultis:m=%d 451H,m);)第1处:*r=t;应改为r=t;或r=&t[OJ;第2处:应填r=t;或r=&t[O];编程题某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数FUN,它的功能是:求出该学生的平均分并放在记录的AVE成员中。请自己定义正确的形参。例如,若学生的成绩是85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应当是78.875。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 452"rs.num);for(i=0;i 453",s.s[i]);printf(n 454ave=%7.3f 455n,s.ave);out=fopen("out.dat",Hwn);fprintf(out,nThe%s'sstudentdata: 456n,s.num);for(i=0;i 457H,s.s[i]);fprintf(out," 458ave=%7.3f 459n,s.ave);fclose(out);)答案是:voidfun(STREC*p)(doubleav=0.0;inti;for(i=0;ivN;i++)av+=p->s[i];av/=N;p->ave=av;)第38套填空题请补充fun函数,该函数的功能是判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回“yes!",是否返回“no!”.注意:部分源程序给出如卜一请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:ttinclude 460intg,s,b;g=n%10;s=n/10%10;b=1;if((g+b)==s)return2;elsereturn3;}main()(intnum=0;printf("******Inputdata******* 461");scanf(H%dnr&num);printf(n 462 463 464H);printf(«******Theresult******* 465*,);printf(n 466 467 468%sn,fun(num));)第1处填空:n/100%10第2处填空:"yes!”第3处填空:"no!”改错题卜列给定程序中,函数fun的功能是:通过某种方式实现两个变量值的交换,规定下允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b的值为8。请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 469",a,b);b=fun(&a,b);printf(n%d%d 470n,a,b);)第1处:t=x;x=y;应改为仁*x;*x=y;第2处:retum(y);应改为retum(t);或returnt;编程题请编写函数FUN,它的功能是:求出SS所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符1,则输出3。注意:部分源程序给出如下。 471请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 472Pleaseenterastring:H);gets(a);printf(n 473Pleaseenterachar:n);ch=getchar();printf(H 474Thenumberofthecharis:%d 475n,fun(a,ch));out=fopen(••out.dat",nwn);strcpy(a,"Thenumberofthecharis:1');fprintf(out,n%dn,fun(a,1'));fclose(out);)答案是:intfun(char*ss,charc)(intn=0;while(*ss)(if(*ss==c)n++;SS4-+;)returnn;第39套填空题请补充main函数,该函数的功能是:从一个字符串中截取前面若干个给定字符数的子字符串。其冲,strl指向原字符串,截取后的字符串存放在str2所指的字符数组中,n中存放预截取的字符个数。例如,当strl="abcdefg”,然后输入3,则str2=,,abcM.注意:部分源程序给出如下仅在横线上填入所编写的若干表达式或语句,请勿改动函数中的任何内容。试题程序:#include 476n);gets(strl);printf(HEnterthepositionofthestringdeleted:11);scanf(1);for(i=0;i 477str2[i]='\01;printf("Thenewstringis:%s 478",3);)第1处填空:"%d'',&n第2处填空:str2[i]=strl[i]第3处填空:str2改错题下列给定程序中,函数fun的功能是,将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中,例如,当s所指这字符串为ABCD时,则t所指字符串中的内容应为ABCDDCBAo请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 479PleaseenterstringS:n);scanf(n%s",s);fun(s,t);printf(n 480Theresultis:%s 481H,t);)第1处:voidfun(chars,chart)应改为voidfun(char*s;char*t)第2处:t[2*d"]='\(r;应改为t[2*d]='\0';或t[d+i]='\O';或t[2*d]=0;或t[d+i]=O;编程题请编写函数FUN,该函数的功能是:移动•维数组中的内容;若数组中有N个整数,要求把F标从0到P(P小于等于N-1)的数组元素平移到数组的最后。例如,■-维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10;P的值为3。移动后,一维数组中的内容应为:5,6,7,8,9,10,1,2,3,4。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:ftinclude 482inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};inti,p,n=15;FILE*out;inttest[N]={1,1,2,3,5,8,13,21,34,55,89,144};printf(nTheoriginaldata: 483H);for(i=0;i 484 485Enterp:");scanf(n%dH,&p);fun(a,p,n);printf(n 486Thedataaftermoving: 487");for(i=0;i 488 489n);out=fopen("out.dat•',”w");fun(test,6,12);for(i=0;i<12;i++)fprintf(out,”岩d 490”,test[i]);fclose(out);)答案是:voidfun(int*w,intp,intn)(intb[N],I,j=0;for(i=0;i<=p;i++)b[i]=w[i];for(i=p+1;i 491charstrl[LEN],str2[LEN];char*pl=strl,*p2=str2;inti=0,j=0;printf(nEnterthestring: 492n);scanf(1);printf(»•******theorigialstring******** 493n);while(*(pl+j))(■printf("2",*(pl+j));j++;}for(i=0;i 494Thenewstringis:%s 495H,3);)第1处填空:“%s”,strl第2处填空:%c第3处填空:str2改错题下列给定程序中,函数fun的功能是:将n个无序整数从小到大排序。请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 496*');}printf(" 497");main() 498intaa[20]={9,3,0,4,1,2,5,6,8Z10,7},n=11;printf(" 499 500Beforesorting%dnumbers: 501H,n);putarr(n,aa);fun(n,aa);printf(H 502Aftersorting%dnumbers: 503H,n);putarr(n,aa);}第1处:for(i=j+l;iivn-l;i++)应改为for(i=j+l;i 504H);puts(a);printf(H 505 506Enterm:••);scanf(,&m);fun(a,m);printf(" 507Thestringaftermoving: 508H);puts(a);printf(,, 509 510n);out=fopen(Hout.dat",Hw'*);fun(a,strlen(a)-m);fun(a,3);fprintf(out,n%sH,a);fclose(out);)答案是:voidfun(char*w,intm)(charb[N];intI,j=0;for(i=0;i 511b[j]=w[i];j++;)for(i=0;i 512'*);scanf(1);printf(H******theorigialdata******** 513");if(n<0)—2―printf(H 514 515H);printf(-3_);)第二题:改错题下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include 516returnsum;)NODE*creatlink(intn)(NODE*h,*p,*s;inti;h=p=(NODE*)malIoc(sizeof(NODE));for(i=l;i 517 518THELIST: 519 520HEAD");while(p)(printf("->%d",p->data);p=p->next;)printf(', 521,');)main()(NODE*head;intsum;head=creatlink(lO);outlink(head);sum=fun(head);printf(,' 522SUM=%dH,sum);)第三题:编程题请编写函数fun,该函数的功能是;将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,若二维数组中的数据为:WWWWSSSSHHHH则字符串中的内容应是WSHWSHWSHo请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include 523(chara[l00],w[M][N]={{},{'S',S?S',S},{;inti,j;FILE*out;printf("Thematrix: 524");for(i=0;i 525H);)fun(w,a);printf("TheAstring: 526");puts(a);printf(" 527 528");out=fopen("out.dat","w");fprintf(out,"%s",a);fclose(out);)答案:第一题:第1处填空:“%Id”,&n第2处填空:n=-n;或n*=-l第3处填空:"%ld",n第二题:第1处:while(p->next)应改为while(p!=NULL)第2处:p=h->next;应改为p=p->next;第42套填空题请补充main函数,该函数的功能是:从字符串str中取出所有数字字符,并分别计数,并把结果保存在数组b中并输出,把其它字符保存在b[10]中.例如:当str="del23456789abc0908”时,结果为:0:21:12:13:14:15:16:17:18:29:2othercharacter:5.仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其它任何内容.#include 529");puts(str);for(i=0;i 530case2:b⑵++;break;case3:b[3]++;break;case'4':b[4]++;break;case5:b[5]++;break;case'6':b[6]++;break;case'7’:b⑺++;break;case8:b[8]++;break;case9:b[9]++;break;default:b[10]44-;break;}P++;)printf(H******theresult******** 531n);for(i=0;i<10;i++)printf(u 532%d:%dM,i,b[i]);printf(n 533othercharacter:%d'\b[i]);)改错题下列给定程序中,函数fun的功能是:将字符串s中位于奇数位置的字符或ASCII码为偶数的字符依次放入字符串中.例如,字符串的数据为AABBCCDDEEFF,则输出应当是ABBCDDEFF.请改正函数fun中的错误,使它能得出正确的结果.注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include 534Pleaseentherstrings:");gets(s); 535fun(s,t);printf(" 536Theresultis:%s 537",t);)程序题下列程序定义了N*N的二维数组,并在主函数中自动赋值,请编写函数fun(inta[][N],intn),该函数的功能是:使数组右上半三角元素中的值乘以m.例如:若m的值为2,a数组中的值为197a=238456则返回主程序后a数组中的值为2181426164512请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句.#include 538n);for(i=0;i 539M,m);fun(a,m);printf("THERESULTS);for(i=0;i 540");}out=fopen(Mout.datH,nwM);for(i=0;i 541for(j=0;j 542n);)fclose(out);第43套第43题的填空题请补充fun函数,该函数的功能是:按'0'到9统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。注意:不能使用字符串库函数。例如:输入:“x=1123.456+0.909*bc“,结果为:1=23=1,5=1,7=0,9=2.请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达或语句。#include 543Pleaseenteracharstring:");gets(str);printf(" 544*******Theoriginalstring****** 545");puts(str);fun(str,num);printf(" 546*******Thenumberofletter****** 547");for(k=0;k<5;k++)(printf(" 548");printf("%d=%d",2*k+l,num[k]);)printf(" 549");)第43题的改错题下列给定程序中,函数fun的功能是:找出100至n(不大于1000)之间三个位上的数字都相等的所有整数,把这些整数放在s所指数组中,个数作为函数值返回。请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include 550*奉*****found********/b=k%10;c=k/10;if(a==b&&a==c)s[j++]=i;}returnj;)main()(inta[N],n,num=0,i;do{printf(n 551Entern(<=1000):“);scanf("%d",&n);}while(n>1000);num=fun(a,n);printf(u 552 553Theresult: 554H);for(i=0;i 555 556H);)第43题的编程题编写一个函数,从传入的num个字符串中找出最长的一个字符串,传回该串地址(用****作为结束输入的标志)。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中秘编写的若干语句。#include 557max=%s 558,',max);out=fopen("out.dat",”w");strcpy(ss[O],MOh,M);strcpy(ss[l],"you1');strcpy(ss[2],"want'1);strcpy(ss[3],"some");strcpy(ss[4],Mtoo?!?M);fprintf(out,M%sH,fun(ss,5));fclose(out);)答案 559第一题*p或*p!=0或0!=*pbb[*p-'0']++或bb[*p-'0']+=lnum[j]=bb[i]第二题k=n;改为k=I;b=k/10;改为b=k%10;第三题char*fun(char(*a)[81],intnum){inti;char*max;max=a[O];for(i=0;i<=num;i++)if(strlen(max) 560列的二维数组中存放如下所示的数据,由main()函数输出。例如,若输入21若输入4则输出:121则输出:1123424124681369121481216请改正程序的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改持续的结构!#include 561”);)}3编程题编写一个函数,该函数可以统计一个长度为2的字符串在一个字符串的次数。例如,假定输入的字符串为:asdasasdfgasdaszx67asdmklo,子字符串为as,则应输出6o请勿改动主函数main和其他函数中的的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include 562charstr[81],substr[3];intn;FILE*out;printf("输入主字符串:”);gets(str);printf("输入子字符串:”);gets(substr);puts(str);puts(substr);n=fun(str,substr);printf(nn=%d 563n,n);out=fopen("out.dat“,"w");strcpy(str,"asdasasdfgasdaszx67asdmklo,');strcpy(substr,nasM);fprintf(out,H%dM,fun(str,substr));(close(out);第45套第一题:填空题请补充fun函数,该函数的功能是:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到I串的后面。例如:s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDE。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。#include 564Pleaseenterstrings:n);scanf(n%sn,s);fun(s,t);printf(nTheresultis:%s 565",t);)参考答案:1:sl-MgJcsl-l-i2:2*sl或si*2第二题:改错题下列给定程序中,函数fun的功能是:将s所指字符串中最后一次出现的tl所指子串替换成t2所指子串,所形成的新串放在w所指的数据中。在此处,要求tl和t2所指字符串的长度相同。例如,当s所指字符串中的内容为abcdabfabc,tl所指子串的内容为ab,t2所指子串中的内容为99时,结果,在w所指的数组中的内容为abcdabf99c。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include 566strcpy(w,s);/****************/while(w){p=w;r=tl;while(*r)if(*r==*p){r++;P++;}else(break;}if(*r==\0')a=w;w++;}r=t2;while(*r){*a=*r;a++;r++;})main()(chars[100],tl[100],t2[100],w[100];printf(" 567PleaseenterstringS:");scanf(n%sM,s);printf(n 568Pleaseentersubstringtl:M);scanfC^sMl);printf(n 569Pleaseentersubstringt2:");scanf(”%s",t2);if(strlen(tl)==strlen(t2))fun(s,tl,t2,w);printf(n 570Theresultis:%s 571K,w);elseprintf(H 572Error:strlen(tl)!=strlen(t2) 573");))参考答案:l:voidfun(char*s,tl,t2,w)应改为voidfun(char*s,char*tl,char*t2,char*w)2:while(w)应改为while(*w)第三题:编程题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是A*BC*DEF*G。请勿改动主函数main和其他函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。参考答案: