《2011年计算机二级C语言99套上机操作题及答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
C语言上机操作题湖南安全技术职业学院计算机系信息管理教研室2008年3月20日
1.第1套填空题请补充FUN函数,FUN函数的功能是求10的阶乘。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:♦include
2"zfun(10));}第1处填空:n>!或! 3pleaseenteranintegernumberbetween2and10000:");scanf("%d",&k);printf(" 4 5Theprimefactor(s)of%dis(are):"zk);for(j=2;j 6M);第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。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:♦include 7intfun(intscore[]rintm,intbelow[])main()(inti,n,below[9];intscore[9]={10,20,30,40,50,60,70,80,90);FILE*out;n=fun(score,9,below);printf(""Belowtheaveragescoreareout=fopen(nout.datn,"w");for(i=0;i 8M,below[i]);}fclose(out);}答案是:intfun(intscore[],intm,intbelow[]){intI,k=0,aver=0;for(i=0;i 9 10",aa[k]);fprintf(out,"%d 11",aa[k]);elseprintf("%5d,",aa[k]);fprintf(out,"%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;) 12填空题请补充函数FUN(CHAR*S),该函数的功能是把字符串中的内容逆置.例如:字符串中原有的字符串为abcde,则调用该函数后,串中的内容为edcba.请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include 13n);printf("Thestringaftermodified:11);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函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 14Enterastring:n);gets(item);printf(f, 15 16Thestringis:茗s 17",item);fun(item);printf(M 18 19Thestringofchangingis:吿s 20",item);}第!处:s[j]=s[i];应改为s[j++]=s[i]第2处:应改为s[j]='、〇'; 21编程题请编写函数voidfun(intx,intpp[],int*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回.例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15.注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 22Pleaseenteranintegernumber: 23n);scanf(M%dH,&x);fun(x,aa,&n);for(i=0;i 24");fun(730,aa,&n);out=fopen("out・dat","w");for(i=0;i 25",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)(t[j]=i;j++;)for(i=0;i 26main()(intn;doubles;printf(M 27lnputn:n);scanf("%d",&n);s=fun(n);printf(M 28 29s=%f 30H,s);}第1处填空:iv=n或n>=i第2处填空:II第3处填空:1.0或(double)1改错题下列给定程序中,fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AaaaBBbl23CCccccd,则应输出结果:upper=6,lower=8请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 31Pleaseastring:n);gets(s);fun(s,&upper,Slower);printf(H 32upper=%dlower=%d 33",upper,lower);1处:voidfun(char*s,inta,intb)应改为voidfun(char*s,int*a,int*b)2处:a++;应改为(*a)++;3处:b++;应改为(*b)++;编程题请编写ー个函数voidfun(char*tt,intppロ),统计在tt字符串中"a"到'‘z"26个字母各自出现的次数,并依次存放在pp所指数组中。例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:33322110000000000000000000注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 34Pleaseenteracharstring:n);scanf(H%sn,aa); 35fun(aa,bb);for(k=0;k<26;k++)printf(n%dH,bb[k]);printf(" 36");fun(nabosomfriendafarbringsadistantlandnear",bb);out=fopen(nout.datn,MwM;for(k=0;k<26;k++)fprintf(out,n%d 37M,bb[k]);fclose(out);}答案是:voidfun(char*tt,intpp[])(intI;for(i=0;i<26;i++)pp[i]=O;while(*tt){switch(九t)case'a':pp[O]++;break;case,b':pp[l]++;break;case,c,:pp[2]++;break;case'd':pp[3]++ホreak;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,F:pp[ll]++;break;case,m,:pp[12]++;break;case'n':pp[13]++;break;case’〇':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]+4-;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套填空题给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之・的圆面积(注:圆面积公式为:S=ttR,在程序中定义的变量名要与公式的变量相同)。例如,输入圆的半径值:19.527,输出为:S=598.95001フ。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include 38”,fun(3));第1处填空:r*r第2处填空:&x第3处填空:x改错题假定整数数列中的数不重复,并存放在数组中。下列给顶程序中,函数fun的功能是删除数列中值为x的元素,同时将其他元素前移。N中存放的是数列中元素的个数。 39请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 40n);for(i=0;i 41lnputx(todelete):n);scanf(M%dM,&x);printf("Delete:%d 42",x);n=fun(w,n,x);if(n==-1)(printf("***Notbefound!*** 43 44");}else(printf("Thedataafterdelete: 45");for(i=0;i 46 47");}}第!处:a[i+l]=aH;应改为a[i]=a[i+l]编程题请编写ー一个函数voidfun(intm,intk,intxx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。例如,若输入:17,5,则应输出:19,23,29,31,37。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 48Pleaseentertwointegers:n);scanf("%d,%dn,&m,&n);fun(m,n,zz);for(m=0;m 49");fun(28,20,zz);out=fopen("out.dat","w");for(m=0;m<20;m++)fprintf(out,"%d 50",zz[m]);fclose(out);} 51答案是:voidfun(intm,intk,intxx[])(intg=O,I,j,flag=l;for(i=m+1;i 52n,n);3;}main()(printf(H%f 53n,fun(50));}第1处填空:〈二第2处填空:n++或n+=l或n=n+l第3处填空:returns或return(s)改错题下列给定程序中,函数fun的功能是:根据整型参m的值,计算如下公式的值。例如,若m中的值为5,则应输出:0.536389 54请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 55Theresultis%lf 56",fun(n));}第1处:for(i=2;i 57n);gets(strl);printf(MEnterthepositionofthestringdeleted:M);scanf("%d",&n);fun(strl,str2,n);printf(HThenewstringis:%s 58n,str2);fun("HelloWorld!H,str2,9);out=fopen("out.datn,"w");fprintf(out,"%s",str2);fclose(out);}答案是:voidfun(chara[],charb[],intn){intI,j=0;for(i=0;i 59第7套填空题函数fun的功能是:统计长整数n的各个位上出现数字1,2,3的次数,并通过外部(全局)变量cl,c2,c3返回主函数。例如,当=123114350时,结果应该为:cl=3,c2=l,c3=2.注意:部分源程序给出如ド。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序如ド:#include 60Theresult: 61");printf(Hn=%ldcl=%dc2=%dc3=%d 62nfn,cl,c2,c3);)第1处填空:n%10第2处填空:break第3处填空:break改错题下列给定程序中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 63");fun(a,m);printf(HAADd06£°H;for(i=0;i 64M);}第1处:p=j应改为p=j;第2处:p=i应改为p=j;编程题请编写ー•个函数intfun(int*s,intt,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单位中。例如,输入如下整数:876675896101301401980431451777 65则输出结果为:6,980o注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 66",k,a[k]);out=fopen(Mout.datM,HwH;fprintf(out,M%d 67%dn,k,a[k]);fclose(out);}答案是:voidfun(int*s,intt,int*k)(intI,max;max=s[0];for(i=0;ivt:i++)if(s[i]>max)max=s[i]; 68*k=I;))填空题请补充main函数,该函数的功能是:从键盘输入ー组整数,使用条件表达式找出最大的整数。当输入的整数为0时结束。例如,输入123540时,最大的数为5。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include 69lnputintegernumber: 70M;do{i++;printf(Hnum[%d]=",i);scanfじ%d”,1);max=2num[i]:max;}while(3一);printf(Mmax=%d 71nzmax);}第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函数,不得增行或删行,也不得更改程序的结构!试题程序:♦include 72while(q>p){*q=*(q-1);q——;}p[0]=max;}main()charstr[80];printf(HEnterastring:");gets(str);printf(n 73Theoriginalstring:n);puts(str);fun(str);printf(H 74Thestringaftermoving:M;puts(str);printf(n 75 76M);1处:voidfun(char*p);应改为voidfun(char*p)2处:p=q+I;应改为q=p+i;编程题编写函数fun,函数功能是:根据以下公式计算s,计算结果作为函数值返回;n通过型参传入っ111S=l+++…ハ+1+21+2+31+2+3+…例如:若n的值为11时,函数的值为1.833333。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 77PleaseenterN:n);scanfじ%d”,&n);s=fun(n);printf(nTheresultis:%f 78Mfs);s=fun(28);out=fopen("out.dat","w");fprintf(out,"%f"zs);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; 79给定程序的功能是分别统计字符串中大写字母和小写字母的个数。例如,给字符串SS输入:AaaaBBbl23CCccccd,则输出结果应为:upper=5,lower=9〇请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include 80Pleaseastring:");gets(s);fun(s,Supper,Slower);printf(n 81upper=%dlower=%d 82M,3);}第1处填空:(*a)++或++(*a)或*a二・a+1或・a+=l第2处填空:(*b)++或++(*b)或*b=*b+l或*b+=l第3处填空:upper,lower改错题下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在行参aver所指的存储单元中。例如,若输入8名学生的成绩:80.5607290.59851.58864则低于平均分的学生人数为4(平均分为:75.5625).请改正程序中的错误,使程序能统计出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 83printf(M 84Pleaseenterm:");scanf("%d",&m);printf(M 85Pleaseenter%dmark: 86",m);for(i=0;i 87Thenumberofstudents:%d 88",fun(s,m,&aver));printf("Ave=%f 89",aver);}第!处:t=s[k];应改为t+=s[kj;第2处:*aver=&ave;应改为*aver=ave;编程题编写函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。M与n为两个正整数且要求m>n.〃!(由一〃)!例如:m=12,n=8时,运行结果为495.000000注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 90",fun(12,8));out=fopen(Uout.datn,HwM;fprintf(out,M%f",fun(12,6));fclose(out);}答案是: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;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套填空题请补充main函数,该函数的功能是:从键盘键盘输入3个整数然后找出最大的数并输出。例如,输入:124543,输出为45注意:部分源程序给出如下。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。试题程序:#include 91lnputthreenumbers: 92M);scanf("%d,%d,%d",&a,&b,&c); 93printf(HThethreenumbersare:%d,%d,%d 94H,a,b,c);if(a>b)1;else2;if(max 95”,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函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 96}main()(chars[100],tl[100],t2[100],w[100];printf(M 97Pleaseenterstrings:H);scanf("吿s",s);printf(n 98Pleaseentersubstring11:n);scanfド%s”,tl);printf(M 99Pleaseentersubstringt2:n);scanf("吿s”,t2);if(strlen(tl)==strlen(t2))(fun(s,tl,t2,w);printf(n 100Theresultis:吿s 101”,w);}else(printf("Error:strlen(t1)!=strlen(t2) 102");})第1处:voidfun(char应改为voidfun(char*s,char*tl,char*t2,char*w)第2处:while(r)应改为while(*r)编程题编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程式cos(x)-x=0的ー个实根。Xn+i=cos(X.)迭代步骤如下:(1)取xl初值为〇。;(2)xO=xl,把xl的值赋给xO;(3)xl=cos(xO),求出ー个新的xl;(4)若xO-xl,的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);(5)所求xl就是方程cos(x)-x=0的ー个实根,作为函数值返回。程序将输出结果Root=0.739085o注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 103"zf);out=fopen("out.dat","w");fprintf(outz"%f"zf);fclose(out);)答案是:floatfun()(floatxl=0.0,x0;do(x0=xl; 104xl=cos(x0);while(fabs(xO-xl)>=le-6);returnx1;第11套填空题给定程序中,涵数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下ー个奇数位置,最右边被移出字符串的字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)例如,形参s所指的字符串为:abcdefgh,执行结果为:ahcbedgf.注意:部分源程序给出如下。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。试题程序:#include 105Theoriginalstringis:%s 106",s);fun(s);printf(M 107Theresultis:%s 108",s);)第1处填空:1第2处填空:s[k]或・(s+k)第3处填空:c改错题下列给定程序中,函数FUN的功能是:将一个由ハ进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位8进制数字。例如,若输入77777,则输出将是32767。请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 109I★★★★★★★★found*★★★★★★★! 110n=*p-I〇,;P++;while(*p!=0)(n=n*7+*p-'0';P++;}returnn;}main()(chars[6];inti;intn;printf("Enterastring(octaldigits):");gets(s);if(strlen(s)>5){printf("Error:stringtoolonger! 111 112");exit(0);)for(i=0;s[i];i++)if(s[i]<'0'IIs[i]>'7')(printf("Error:%cnotisoctaldigits! 113 114",s[i]);exit(0);)printf("Theoriginalstring:");puts(s);n=fun(s);printf(" 115%sisconveredtointegenumber:%d 116 117",s,n);)第1处:n=*p」〇,;应改为n=*p-'O';第2处:n=n*7+*p」(f;应改为n=n*8+*p」0';编程题下列程序定义了NXN的而维数组,并在主函数中自动赋值。请编写函数fun(inta[][N]),该函数的功能是:使数组左下半三角元素的值会全部置成0。197238,则返回主程序后a数组中的值应为456例如:a数组中的值为097008000注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 118M); 119for(i=O;i 120H);}fun(a);printf(HTHERESULT 121n);for(i=0;i 122");}for(i=0;i 123");}fclose(out);)答案是:intfun(inta[][N])(inti,j;for(i=0;i 124Pleaseenterastring:M;gets(tt);printf(M 125Theresultstringis: 126%s”,fun(tt));)第!处填空:tt[i]<='z'或'z'>=tt[i]第2处填空:32或’a'/A‘第3处填空:tt改错题 127下列给定程序中函数FUN的功能是:求出在字符串中最后一次出现的子符串的地址,通过函数值返回,在主函数中输出从此开始的字符串:若未找到,则函数值为NULL。例如,当字符串中的内容为abcdabfabcdx,t中的内容为ab时,输出结果应是:abcdx»当字符串中的内容为abcdabfabcdx,t中的内容为abd时,则程序输出未找到信息:notbefound!=请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 128as++;s;}returna;}main()(chars[100]zt[100]f*p;printf(M 129pleaseenterstrings:H;scanf(f,%sM,s);printf(H 130pleaseentersubstringt:n);scanf(”%s",t);p=fun(s,t);if(p)printf(M 131theresultis:%s 132",p);elseprintf(n 133notfound! 134n);)第1处:a=NULL;应改为a=NULL;第2处:if(r=p)应改为if(*r==*p)编程题下列程序定义了NXN的而维数组,并在主函数中自动赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s则返回主程序后s的值应为3.375.注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 135M);for(i=0;i 136n);}s=fun(a);printf(H*****THERESULT***** 137M);printf(MThesumis%lf 138nzs);out=fopen("〇ut・dat",HwM;fprintf(out,"%lf”,s);fclose(out);}答案是:doublefun(intw[][N])( 139inti,j,k=O;doubles=0.0;for(j=0;j 140"rfun(k));)第1处填空:char*fun(intn)第2处填空:2第3处填空:n%i=或!(n%i)或0=n%i 141改错题下列给定程序中,FUN函数的功能是:根据形参M,计算如下公式的值。丄T=l+2例如,若输入5,则应输出2.283333.请改正程序中的错误或在横线处填上适当的内容并把横线删除,使它能计算出正确的结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 142pleaseenter1integernumbers: 143");scanf("%d",&m);printf(" 144 145theresultis%lf 146",fun(m));)第1处:t+=1.0/k;应改为t+=1.0/i;第2处:应填returnt;编程题请编写ー个函数voidfun(inttt[M][N]),tt提向ー个M行N列的二维数组,求出ニ维数组每列中最小元素,并依次放入pp所指的ー维数组中。二维数组中的数已在主函数中赋予。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 147");for(i=0;i 148M);}fun(t,p);printf(H 149Theresultis: 150n);for(k=0;k 151n);out=fopen("out.datM,"w");for(k=0;k 152",p[k]);fclose(out);) 153答案是:vidfun(inttt[M][N],intpp[N])(inti,j,min;for(j=0;j 154Enterastring:n);gets(str);printf(M 155 156Thestringis:%s 157”,str);fun(str);printf(M 158 159Thestringofchangingis:%s 160n,str);)第1处填空:*p或・p!='\〇’或・p!=0第2处填空:i++或++i或i+=l或i=i+l第3处填空:‘、〇’或〇改错题下列给定程序中,函数FUN和FUNX的功能是:用二分求方程2ピー4ピ+3x-6=0的ー个根,并要求绝对误差不超过。.001。例如,若出给m输入100,给n输入90,则函数求得的一个根值为2.00〇。请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 161}doublefun(doublem,doublen)(/★★★★★★★★found********/intr;r=(m+n)/2;I★★★★★★★★found★★★★★★★よZwhile(fabs(n-m)<0.001)if(funx(r)*funx(n)<0)m=r;elsen=r;r=(m+n)/2;}returnr;}main()(doublem,n,root;printf(MEntermn: 162H;scanf(M%lf%lfn,&m,&n);root=fun(m,n);printf("root=%6.3f 163",root);)第1处:intr;应改为doubler;第2处:while(fabs(n-m)vO.OOl)应改为while(fabs(n-m)>0.001)编程题请编写fun函数,函数的功能是求出二维数组周边的元素之和,作为函数值返回,二维数例如:若二维数组中的值为:13579299946999813570则函数为61。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:♦include 164M);for(i=0;i 165M);y=fun(aa);printf(H 166Thesum:%d 167",y);printf(M 168n);out=fopen(Mout.datn,HwH; 169fprintf(out,n%dn,y);fclose(out);}答案是:intfun(inta[M][N])(inti,j,s=O;for(j=0;j 170pleaseenterastring: 171,,);gets(s);PrintfCAnpleaseenterthecharactertosearch:");C=getchar();Fun(_3_);Printf(" 172Theresultis%s 173M,s);第1处填空:!=第2处填空:str[ljWc*(str+l)第3处填空:s,c 174改错题下列给定程序中,函数FUN的功能是:判断字符CH是否与STR所指串中的某个字符相同:若相同,则什么也不做,若不同,则将其插在串的最后。请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 175Pleaseenterastring: 176n);gets(s);printf(M 177Pleaseenterthecharactertosearch:n);c=getchar();fun(s,c);处处处}第第第printf(H 178Theresultis%s 179",s);:voidfun(charstr,charch)应改为voidfun(char*str,charch):if(*str==ch)应改为if(*str==,\O,):str[l]=’〇';应改为str[l]='、〇';或str[lJ=O编程题请编写个函数unsignedfun(unsignedw),w是一个大于10的无符号整数,若w是n(n>=2)位的整数,则函数求出w的后n-1位作为函数值返回。例如:w值为5923,则函数返回923,若w值为923,则函数返回23注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:♦include 180"zx);if(x<10)printf("Dataerror!");elseprintf("Theresult:%u 181",fun(x));out=fopen("out.dat","w");fprintf(out,"%u",fun(28));fclose(out);)答案是:unsignedfun(unsignedw)(unsignedt,s=O,sl=l,p=O;t=w;while(t>10)( 182if(t/10)p=t%10;s=s+p*s1;s1=s1*10;t=t/10;)returns;)第16套填空题请补充fun函数,该函数的功能是:判断一个年份是否为闰年.例如,1900年不是闰年,2004是闰年.注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填如所编写的若干表达式或语句。试题程序:#include 183"zyear);elseprintf(n%disnotaleapyear.'n",year);}第1处填空:n%100!=0或0!=n%100第2处填空:N400==0或!(n%400)或0==n%400第3处填空:flag改错题下列给定程序中的函数C但atlink的功能是:创建带头结点的单向链表,并为各结点数据域赋〇到M-I的值。请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 184 185THELIST: 186 187HEAD”);while(p)(printf(H->%d”,p->data);p=p->next; 188}printf(”ヽn”);}main()NODE*head; 189head=Creatlink(8Z22);outlink(head);处处处第第第p->next=NULL;应改为p=s;s->data=rand()%m;应改为s->data=rand()%(m-1)returnp;应改为returnh;编程题请编写ー个函数floatfun(doubleh),函数的功能是对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)例如:若h值为&32433,则函数返回8.32,若h值为8.32533,则函数返回8.33♦include 190 191",a);printf("Theresult:%f 192"zfun(a));out=fopen("out.dat"z"w");fprintf(outzn%fn,fun(3.141593));fclose(out);)答案是:floatfun(floath)(longt;floats;h=h*lOOO;t=(h+5)/10;s=(float)t/100.0;returns;第17套填空题给定程序的功能是将n个人员的考试成绩进行分段统计,考试成绩放在a数组中,各分段的人数存到b数组中:成绩为60到69的人数存到b[〇]中,成绩为70到?9的人数存到b[l],成绩为80到89的人数存到b[3],成绩为100的人数存到b[4]成绩为60分以下的人数存到b⑸中例如,当a数组中的数据是:93、85、77、68、59、43、94、75、980调用该函数后,b数组中存放的数据应是1、2、1、3、〇、2〇注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填如所编写的若干表达式或语句。试题程序:♦include 193b[i]=0;for(i=0;i<1;i++)if(a[i]<60)b[5]++;2b[(a[i]-60)/10]++;}main()(inti,a[100]={93,85,77,68,59,43,94,75,98},b[6];fun(3,9);printf(Htheresultis:for(i=0;i<6;i++)printf(n%d”,b[i]);printf(M 194n);}第1处填空:n第2处填空:else第3处填空:a,b改错题下列给定程序中,函数FUN的功能是:计算并输出K以内最大的10个能被13或17整除的自然数之和。K的值由主函数传入,若K的值为500,则函数值为4622。请改正程序中的错误或在横线处境上适当的内容并把横线删除,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不耍更改程序的结构!试题程序:#include 195n,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 196♦defineN81voidfun(char*s)main()(chara[N];FILE*out;printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);fun(a);printf(" 197");printf("Thestringaftermodified:");puts(a);strcpy(a,"HelloWorld!");fun(a);out=fopen("out.dat","w");fprintf(out,"%s",a);fclose(out);)答案是:voidfun(char*s)(charch;inti,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—;) 198第18套填空题Str为ー个字符序列.请补充FUN函数的功能是:查找STR中值为X的元素,返回找到值为X的元素个数,并把这些值为X的元素下标依次保存在数组BB中.例如,在“abcdefahiア中查找‘A',结果为:2个‘A',下标依次为〇、6〇注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:#include 199gets(str);printf(»»*******TheOriginalstring******* 200n);puts(str);printf(H*******inputcharacter******* 201M);scanf("%c",&ch);n=fun(str,ch);printf(H 202Thenumberofcharacteris:%d 203n,n);printf(H*******Thesuffixofcharacter******* 204n);for(i=0;i 205",a,b);} 206第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 207");fun(array);printf(^Convertedarray: 208n);out=fopen(nout.datnrHwn;for(i=0;i<3;i++){for(j=0;j<3;j++){printf(“吿フd”,array[i][j]);fprintf(outfM%7dnrarray[i][j]);}printf(" 209");fprintf(out,11 210M);)fclose(out);)答案是:voidfun(intarray[3][3])(inti,j,temp;for(i=0;i<3;i++)for(j=0;j 211第19套填空题给定程序的功能是计算SCORE中M个人的平均成绩AVER,将低于AVER的成绩放在BELOW中,通过函数名返回人数。例如,当SCORE={10,20,30,40,50,60,70,80,90},M=9时,函数返回人数应该是4,BELOW={10,20,30,40}〇注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:#include 212Belowtheaveragescoreare:H;for(i=0;i 213Pleaseenters:H);scanf("%ld",&s);fun(s,&t);printf(MTheresultis:%ld 214n,t);)第1处:voidfun(longs,longt)应改为voidfun(longs,long*t) 215第2处:while(s<0)应改为while(s>0)编程题请编写fun函数,函数的功能是:从字符串中删除指定的字符,同一字母的大,小写按不同的字母处置,例如:若程序执行时输入字符串为:turbocandborlandc++从键盘上输入字符n,则输出后变为:turbocadborladc++如果输入的字符在字符串中不存在,则照原样输出注意:部分源程序给出如下.请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 216",str);printf("EaEeO»,dxb-u:");scanf("%c",&ch);fun(strzch);printf("str[]=%s 217"zstr);strcpy(strz"turbocandborlandC++");fun(strz*a*);out=fopen("out.dat"z"w");fprintf(outz"%s"zstr);fclose(out);)答案是:voidfun(chars[],intc)(inti=0;char*p;p=s;while(*p)(if(*p!=c)(s[i]=*p;i++;)P++;)s[i]=‘ゝ〇';)第20套填空题给定程序的功能是求出能整除X且不是偶数的各整数,并放在数组PP中,这些除数的个数由N返回。例如,若X的值为30,则有4个数符合要求,它们是1,3,5,15。注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:#include 218intizj=0;for(i=l;i<=x;i+=2)if((x%i)==0)pp[j++]=1;*n=2;}main()(intx,aa[1000],n,i;printf(M 219Pleaseenteranintegernumber: 220n);scanf("%d",&x);fun(xz3);for(i=0;i 221n);}第1处填空:i第2处填空:j第3处填空:aa,&n改错题N个有序整数数列已放在ー维数组中,给定ド列程序中,函数FUN的功能是:利用拆半查找算法查找整数M在数组中的位置。若找到,则返回其下标值:反之,则返回ー1。拆半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low 222Hzm,k);elseprintf(MNotbefound! 223n);)第1处:voidfun(inta[],intm)应改为intfun(inta[],intm)第2处:if(m>=a[mid])应改为if(m>a[mid]) 224编程题编写函数intfun(intlim,intaa[MAX]),该函数的功能的求出小于或等于!im的所有素数,并放在aa数组中,该函数返回所求出的素数的个数注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 225",aa[i]);fclose(out);)答案是:intfun(intlim,intaa[MAXJ)(intk=O,Ij;for(i=lim;i>l;i—)(for(j=2;j=i)aa[k]=i;k++;))returnk++;第21套填空题给定程序中,函数FUN的功能是:将S所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符原有的先后次序。例如,形参S所指的字符串为:def35adh3kjsdf7.执行结果为:defadhkjsdf3537.注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达 226式或语句。试题程序:#include 227Theoriginalstringis:%s 228",s);fun(s);printf(H 229Theresultis:%s 230”,s);)第1处填空:j++或++j或j+=l或j=j+l第2处填空:s口]=tlロ]第3处填空:j改错题下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数FUN的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 231Themaxinlink:%d'n",s);}NODE*creatlink(intn,intm)(NODE*hr*pz*s; 232inti;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,” 233THELIST: 234 235HEAD”);while(p){fprintf(pfz"ー>%d",p->data);p=p->next;}fprintf(pf,”ヽn”);main()NODE*head;intm;head=creatlink(12,100);outlink(head,stdout);m=fun(head);printf(M 236THERESULT: 237n);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 238%s”,s);out=fopen(nout.datn,"w");strcpy(s,"ceaEDCA”);fprintf(out,"%s”,s);fclose(out);)答案是:voidfun(char*s,intnum)(chart;intI,j; 239for(i=l;i 240Theoriginalstringis:%s 241n,s);fun(s);printf(M 242Theresultis:%s 243",s);}第1处填空:&&第2处填空:〇第3处填空:s(j]或*G+j)改错题下列给定程序中,函数FUN的功能是:根据整型形参M,计算如下公式的值,1111y=l++++…・+2*23*34*4加・团例如,若M中的值为的则应输出:1.463611。请改正程序中的错误,使它能得出正确结果。注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!试题程序:#include 244main()(intn=5;printf(M 245Theresultis%lf 246n,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 247 248n);}main()( 249doubles[N]={85,76,69,85,91,72,64,87},max;STREC*h;FILE*out;h=creat(s);outlist(h);max=fun(h);printf("max=%6・1f 250”,max);out=fopen("out.dat","w");fprintf(out,"max=%6.If",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!=O);returnmax;)第23套填空题在主函数中从键盘输入若干个数放入数组X中,用。结束输入但不计入数组。下列给定程序中,函数FUN的功能是:输出数组元素中小于平均值的元素。例如:数组中元素的值依次为1,2,2,12,5,15,则程序的运行结果为1,2,2,5〇注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:#include 251n);printf(M%dr",x[i]);main()(intx[1000]; 252inti=0;printf(" 253Pleaseentersomedata(endwith0):");do(scanf("%d",&x[i]);}while(x[i++]!=0);fun(x,i-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 254 255",fun(n));)第1处:inifun(n)应改为intfun(intn)第2处:if(n=l)应改为if(n==l)编程题编写函数fun,它的功能是:判断字符串是否为回文,若是,则函数返回!,主函数输出YES,否则返回0,主函数中输出NOo回文是指顺读和倒读都一样的字符串,例如,字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 256”); 257puts(s);if(fun(s))printf(nYES 258”);elseprintf(nNO 259”);out=fopen(nout.datn,”w”);for(i=0;i<4;i++)if(fun(test[i]))fprintf(out,”YES 260”);elsefprintf(out,”NO 261”);fclose(out);)答案是:intfun(char*str)(inti,n=O,fg=l;char*p=str;while(*p)(n++;P++;)for(i=0;i 262break;)returnfg;)第24套填空题函数FUN的功能是:从三个形参a,b,c中找出中间的那个数,作为函数值返回。例如,当a=3,b=5,c=4时,中数为4。注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:#include 263Themiddlenumberis:%d 264",r);空空空填直ハ其处处处第第第):b改错题下列给定程序中,函数ftin的功能是:从s所指字符串中,找出t所指子串的个数作为函数值返回,例如,当s所指字符串中的内容为abcdabfab,t所指字符串的内容为ab,则函数返回整数3。请改正程序中的错误,使它能得也正确的结果,注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:♦include 265)/★★★★★★★★£ound********/if(r==1\0f)n++;s++;}returnn;}main()(chars[100]zt[100];intm;printf(M 266Pleaseenterstrings:M);scanf(n%sM,s);printf(H 267Pleaseentersubstringt:n);scanfド%s”,t);m=fun(s,t);printf(M 268Theresultis:m=%d 269",m);)第!处:if(r==p)应改为if(*r==*p)第2处:if(匸=、(T)应改为if(*r=ヽ(T)编程题编写函数fun,它的功能是:将一个数字字符串转换为ー个整数(不得调用C语言中提供的将字符串转换成整数的函数。)例如若输入字符串“-1234则函数把它转换为整数值ー1234。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 270n);gets(s);n=fun(s);printf(M%ld 271M,n);out=fopen(Mout.datn,”w”);for(n=0;n<4;n++)fprintf(out,”茗ld 272”,fun(test[n]));fclose(out);答案是:longfun(char*p){'longs=O,t;inti=O,j,n=strlen(p),k,sl;if(p[0]=='J)i++;for(j=I;j<=n-l;j++)(t=P叶’0’;sl=10;for(k=j;k 273s+=t;)if(p[O]==^-^)return-s;elsereturns;)第25套填空题函数FUN的功能是:逆置数组元素中的值。形参N给出数组中的数据的个数。例如:若A所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1〇注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:#include 274Theoriginaldata: 275n);for(i=0;i<9;i++)printf(n%4d”,b[i]);printf(M 276n);fun(b,9);printf(H 277Thedataafterinvert: 278n);for(i=0;i<9;i++)printf(n%4d”,b[i]);printf(n 279n);第1处填空:n/2第2处填空:i第3处填空:a[n-i-l]改错题下列给定程序中,函数fun的功能是:y计算n!.例如给n输入5,则输出120.00000〇.请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 280intn;printf(HInputN:");scanf("%d",&n);printf(n 281 282%d!=%lf 283 284H,n,fun(n));)第1处:ifn==0应改为if(n=0)第2处:resylt=n--;应改为result*=n—;编程题编写函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言中提供的求字符串长度的函数),函数返回较长的字符串,若两个字符串长度相同,则返回第一个字符串例如,输入beijingshanghai 285”,fun(azb));out=fopen(Mout.datH,nwH);fprintf(out,"%s",fun("hunan","changsha"));fclose(out);)答案是:char*fun(char*s,char*t)(char*p,*tl=t,*sl=s;intn=0,m=0;while(*sl)(n++;sl++;)while(*tl)(m++;tl++;}if(n>=m)P=s;elsep=t;returnp;第26套 286填空题请补充FUN函数,该函数的功能求能整除X,且是偶数的数,把这些数保存在数组BB,并按从大到小输出。例如,当x=20时,依次输出:201042o注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include 287 288n);for(i=3;i>=0;i―)printf(M%d”,bb[i]);main() 289intk=1;intbb[100];printf(M 290PleaseinputX 291n);scanfド%d”,&k);fun(k,处处处空空空i=l&&-j或j-1改错题下列给定程序中,函数fun的功能是,先从键盘上输入ー个3行2列矩阵的各个元素的值,然后输出主对角线元素之和。请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。♦include 292”,sum);}main()(fun();)第1处:应填sum=0第2处:scanf(“%d,”,a[i皿);应改为scanf(“%d,”,&a[i][j]);编程题编写函数fun,它的功能是:根据下列公式求ア的值,(要求满足精度0.0005,即某项小于0.0005时停止迭代):生=1+丄+]*2]*2*31*2*3*411F3*53*5*73*5*7*91*2*3*...*/?3*5*7*...*(2〃+1)程序远行后,如果输出精度为0.0005,则输出为3.14…注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:♦include 293main()(doublex;FILE*out;printf(HInputeps:n);scanf("%1£",&x);printf(M 294eps=%lfzPI=%lf 295n,x,fun(x));out=fopen(nout.datn,nwn);fprintf(out,neps=%lfzPI=%lf 296H,0.00003,fun(0.00003));fclose(out);)答案是:doublefun(doubleeps)(doubles;floatn,t,pi;t=l;pi=O;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 297Theprimenumberbetween2to%d 298ntn);for(i=2;i<=n;i++)(for(1;j=i){count++;printf(count%15?n%5dM:" 299%5d",i); 300returncount;main()(intn=20,r;r=fun(n);printf(H 301Thenumberofprimeis:吿d 302”,r);123处处处空空空:i改错题下列给定程序中,函数fun的功能是:根据以下公式求だ值,并作为函数值返回,n,11*21*2*31*2*3*42-3353573579例如,给指定精度的变量eps输入0.005时应当输出pi=3.140578c请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 303Pleaseenteraprecision:n);scanf("%lf”,&x);printf(" 304eps=%lf,Pi=%エf 305 306",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 307M,aa[k]);elseprintf(n%4dH,aa[k]);printf(n 308n);out=fopen(nout.datH,nwM; 309fun(100,aa,&n);for(k=0;k 310n,aa[k]);elsefprintf(out,H%4dn,aa[k]);fclose(out);}答案是:voidfun(intm,int*a,int*n)(intl,j=O;*n=O;for(i=1;i<=m;i++)if(i%7==0lli%ll=0)(a[j]=i;j++;)*n=j;)第28套填空题程序的功能是计算s=fk!。k=0注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:#include 311*\s);)第1处填空:1第2处填空:s*i或i*s第3处填空:〇第4处填空:s+fun(k)或fun(k)+s改错题在字符串的最前端加入n个・号,形成新串,注意:字符串的长度允许为79。请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:♦include 312inti;!********found********/a[i]=*p;i++;/★★★★★★★★found★★★★★★米・/tie,6}while(*p);/★★★★★★★★found★★★★★★★★/a[i]=,〇,strcpy(s,a);}main()(intn;chars[80];printf(M 313Enterastring:H);gets(s);printf(M 314Thestring%s 315",s);printf(n 316Entern(numberof*):");scanf(M%dM,&n);fun(s,n);printf(f, 317Thestringafterinster:%s 318H,s);)第1处:s=p;应改为p=s;第2处:应填P++;或++P;或p+=l或p=p+l第3处:a[i]=O;应改为a[i]='\(T;或a[i]=O;编程题编写函数fun,它的功能是:找出ー维整数型数组元素中最大的值和它所在的下标,最大值和它的下标通过形参传回。数组元素中的值已在主函数中赋予,主函数中x是数组名,n是x中的数据个数,max存放最大值,index中存放最大值所在元素的下标。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 319M);fun(x,n,&max,&index); 320printf(HMax=%5d,Index=%4d 321n,max,index);out=fopen("out.dat","w");memcpy(x,"3.141592653589793238462643383279",32);fun(x,8,&max,Sindex);fprintf(out,"Max=%5d,Index=%4d",max,index);fclose(out);)答案是:voidfun(inta[],intn,int*max,int*d){inti;*max=a[0];*d=0;for(i=0;i 322Pleaseenternaturalnumbersn:H);scanf(0%dnr&n);}while(n<=0);printf(M 3232»3-,1y>05,,xOE»Ey%dpA>vA^Eyd®01Ia%d 324M,n,fun(n));}第1处填空:0第2处填空:i<=x或x>=i改错题下列给定程序中,函数fun的功能是:求出两个非。正整数的最大公约数并作为函数值,例如num1和um2分别输入49和21,则输出的最大公约数为7,若给num1和um2分别输入27和81,则最大公约数为27。请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:♦include 325I★★★★★★★★,ound"*'****'*'*'*return(a);main()(intnuml,num2,a;printf(HInputnumlnum2:M;scanf("%d%d”,&numl,&num2);printf(Mnuml=%dnum2=%d 326 327",numl,num2);a=fun(numlrnum2);printf(HThemaximuncommondivisoris%d 328 329",a);)第1处:b=a;应改为a=b;第2处:return(a);应改为return(b);编程题请编写ー个函数FUN,它的功能是:将SS所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入abc4EFg,则应输出aBc4EFg注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若 330Pleaseenteranstringwithin80characters: 331M);gets(tt);printf(M 332 333Afterchanging,thestring 334%s 335",tt);fun(tt);printf(H 336becomes 337%s 338",tt);out=fopen(nout.datM,nwM;strcpy(ttz"Pleaseenteranstringwithin80characters:");fun(tt);fprintf(out,"%s",tt);fclose(out);)答案是:voidfun(char*ss)inti,n;n=strlen(ss);for(i=l;i 339♦include 340"zstr);if(strlen(str)>8)printf("Thestringistoolong!");elseprintf("Theresult:%lu 341",fun(str));)第1处填空:一i或iー或i==l或i=i-l第2处填空:s[iド。第3处填空:t*10+k或k+t*10或10*t+k或k+10*t改错题下列给定程序中,函数fun的功能是:计算正整数num的各位上的数字之积,例如若输入252.则输出应该是20,若输入202,则输出应该是〇。请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:♦include 342%ld 343nzfun(n));)第1处:longk;应改为!ongk=l;第2处:num\=10;应改为num/=10;编程题请编写ー个函数FUN,它的功能是:求出ー个2*M整型二维数组中最大元素的值,并将最大值返冋调用函数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写 344的若干语句。试题程序:♦defineM4♦include 345H,fun(arr));out=fopen("out・dat","w");fprintf(outz"max=%d"tfun(arr));fclose(out);答案是:intfun(inta[][M])intI,j,max;max=a[0][0];for(i=0;i<2;i++)for(j=0;j 346M;printf(" 347strl:H);gets(strl);printf(H 348str2:M);gets(str2);printf(»»*******Thestringstrl&str2******* 349n);puts(strl);puts(str2);fun(strlrstr2);printf(«*******Thenewstring******* 350M);puts(strl);)第1处填空:*(pl+i)或pl[i]或・(pl+i)!=0或pl[i]!=0第2处填空:*p2或p2[〇]或・p2!=0或p2[0]!=0 351第3处填空:*p2++改错题下列给定程序中,函数fun的功能是:将字符串tt中的小写字母都改成对应的大写字母,其他字符不变,例如输入Ab,cD,则输出AB,CD,请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:♦include 352/********found********/tt[i]+=32;return(tt);}main()(chartt[81];printf(H 353Pleaseenterastring:H);gets(tt);处处}第第printf(H 354Theresultstringis: 355%sn,fun(tt));if((tt国ゴz'))应改为if((tt[i]>=,a,)&&(tt[i]<=,z,))叩]+=32;应改为tt[i]-=32;编程题请编写函数FUN,其功能是:将S所指字符串中除了下标为偶数、同时ASCI!值也为偶数的字符外,其余的全都删除:串中剩余字符所形式的一个新串放在T所指的数组中。例如,若S所指字符串中的内容为ABCDEFG123456,其中字符A的ASCII码值为奇数,因此应当删除:其中字符B的ASCH码值为偶数,但在数组中的下标为奇数:因此也应当删除:而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后T所指的数组中的内容应是246。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 356PleaseenterstringS:H);scanf(M%sn,s);fun(s,t);printf(H 357Theresultis:%s 358",t);out=fopen("〇ut・dat","w");strcpy(sf"PleaseenterstringS:M;fun(s,t);fprintf(out,“吿s",t);fclose(out);)答案是:voidfun(char*s,chart[])(intI,j=O,n;n=strlen(s);for(i=0;i 35915.030000.注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include 360Theoriginaldatais: 361n);for(i=0;i<10;i++)printf(n%6.1fn,x[i]);printf(n 362 363n);avg=fun(x);printf(Haverage=%f 364 365H,avg);}第1处填空:sum+=x[i]或sum=sum+x[i]第2处填空:avg*1000或1000*avg第3处填空:(avg+5)/10或(5+avg)“〇改错题下列给定程序中,函数fun的功能是:s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均埴,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数下是5的倍数,多余部分忽略下计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:♦include 366(sum+=s[i];/★★★★★★★★found★★・夫・★★★/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(HTheoriginaldata: 367n);for(i=0;i 368 369Theresult: 370H);for(i=0;i 371 372H);}第1处:if(i+l%5==0)应改为if((i+l)%5==0)编程题请编写函数FUN,其功能是:将S所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符外,其余的全都删除:串中剩余字符所形式的一个新串放在T所指的数组中。例如,若S所指字符串中的内容为ABCDEFG12345,其中字符A的ASCII码值为奇数,但所在元素的下标为偶数,因此必需删除:而字符1的ASCI!码值为奇数,所在数组中的下标也为奇数,因此不应当删除。其他依此类推。最后T所指的数组中的内容应是135。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:♦include 373PleaseenterstringS:H);scanf(”%s”,s);fun(szt);printf(M 374Theresultis:%s 375n,t);out=fopen(nout.dat","w");strcpy(s,"PleaseenterstringS:n);fun(s,t);fprintf(out,"%s",t);fclose(out); 376)答案是:voidfun(char*s,chart[])(intI,j=O,n;n=strlen(s);for(i=0;i 377Theoriginaldata: 378n);for(i=0;i 379n);fun(b,N);printf(H 380Thedataaftermoving: 381n);for(i=0;i 382n);)第1处填空:1第2处填空:i第3处填空:a[p+i]或・(a+p+i)改错题下列给定程序中,函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字(但Z转换为A,z转换为a),其他字符不变。请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序: 383♦include 384Enterastringwithlength<80.: 385 386”);gets(s);printf(M 387Thestring: 388 389n);puts(s);fun(s);printf(M 390 391TheCords: 392 393”);puts(s);第1处:while(*s!='@')应改为while(*s)或while(*s!=へ〇')或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 394n;gets(s);printf(HEntern:");scanf("%d",&n);fun(s,n);printf(HThestringafterdeleted: 395n);puts(s);out=fopen("〇ut・dat","w");strcpy(s,n****A*BC*D**EF*G*********n);fun(sz5);fprintf(outz"%s",s);fclose(out);) 396答案是: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 397inti;intbb[6];printf(MInputastring: 398n;gets(str);printf(wthestringis: 399M);puts(str);fun(str,bb);for(i=0;i<5;i++)printf(" 400%c:%d”,ss[i],bb[i]);printf(n 401other:%dn,bb[i]);)第!处填空: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;改错题下列给定程序中,函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中,高位仍在高位,低位仍在低位,当s中的数为87653142时,t中的数为7531。请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:♦include 402Pleaseenters:");scanf(M%ldnz&s);fun(s,&t);printf(HTheresultis:%ld 403nft);)第1处:t=0;应改为・t=0;第2处:if(d%2==0)应改为if(d%2!=0)编程题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组S中,请编写函数FUN,它的功能是:把分数最高的学生数据放在H所指的数组中,注意:分数最高的学生可能不只一个,函数返回分数最高的学生的人数。 404注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:♦include 405",n);for(i=0;i 406",h[i].num,h[i].s);printf(" 407");out=fopen("out.dat","w");fprintf(out,"%d 408",n);for(i=0;i 409",h[i].s);fclose(out);)答案是:intfun(STREC*a,STREC*b)intI,j=0,n=0,max;max=a[O].s;for(i=0;i 410for(i=0;1;i++)if(s[i]>=,a,&&sは]<='z,&&s[i+l]==*1||s[i+1]==,\0*)2;3;)main()(charstr[N];intnum=0;printf(HEnterastring: 411n);gets(str);while(str[num])num++;fun(str,&num);printf(MThenumberofwordis:%d 412 413n,num);)第!处填空:iv*num或・num>i第2处填空:n++或++n或n+=l或n=n+l第3处填空:*num=n改错题下列给定程序中,函数fun的功能是:将p所指字符串中每个单词的最后ー个字母改成大写(这里的“单词”是指由空格隔开的字符串)。例如,若输入:Iamastudenttotaketheexamination.则应输出:IaMAstudenTtOtakEthEexaminatioN.请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:♦include 414Pleaseenteranenglishsentencewithin63letters:H;gets(chrstr);d=strlen(chrstr);chrstr[d+1]=11;chrstr[d+1]=0;printf(H 415 416Beforchanging:%sn,chrstr);fun(chrstr);printf(M 417Afterchanging: 418%s”,chrstr);)第!处:if(p==-)应改为if(*p=-)第2处:*p=loupper(*(p-l));应改为・(p-l)=toupper(*(p-l));编程题请编写ー一个函数,用来删除字符串中的所有空格。例如,输入asdafaaz67,则输出为asdafaaz67〇 419注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:♦include 420”,str);out=fopen("〇ut.dat",;fun(Msg);fprintf(out,“告s",Msg);fclose(out);)答案是:voidfun(char*str)(inti=0;char*p=str;while(*p)(iffヤ!ゴ’)(str[i]=*p;i++;)P++;1str[I]=,\O,;第36套填空题Str是全部由数字和字母字符组成的字符串,由num传入字符串的长度,请补充fun函数,该函数的功能是把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。例如:st匚“Abcl23e456hui7890”,结果为:1234567890注意:部分源程序给出如下请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include 421n++;)return3;main()charstr[N];intnum=0,n,i;printf(HEnterastring: 422M;gets(str);while(str[num])num++;n=fun(str,bb,num);printf(M 423bb=n);for(i=0;i 424”,xl,x2,x3);j=fun(xl,x2,x3);printf(HTheminimalcommonmultipleis:%d 425n,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 426voidfun(char*a)main()(chars[81]r*p;FILE*out;chartest[4][80]={n*******A*BC*DEF*G****nzHA******B*CD**EF*G*n,”****A***;inti;printf(HEnterastring: 427n);gets(s);fun(s);printf(MThestringaftermoveing: 428n);puts(s);out=fopen("out・dat”,nwH;for(i=0;i<4;i++)(fun(test[i]);fprintf(outz"%s 429”ztest[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++;第37套填空题从键盘输入ー・组无符号整数并保存在数组xx[N]中,以整数O结束输入,要求这些数的最大位数不超过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 430intxx[N];intyy[N];intnum=0,n=0,i=0;printf(HInputnumber: 431n);do(scanf(n%un,&xx[num]);}while(xx[num++]!=0);n=fun(xx,yy,num);printf(n 432yy=n);for(i=0;i 433Pleaseenterstringa:n);gets(a);printf(M 434Pleaseentersubstringb:M);gets(b);m=fun(a,b);m=printf(M 435Theresultis:m=%d 436n,m);)第1处:*r=t;应改为r=t;或r=&t[OJ;第2处:应填匚t;或r=&t[O];编程题某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数FUN,它的功能是:求出该学生的平均分并放在记录的AVE成员中。请自己定义正确的形参。例如,若学生的成绩是85576,69.5,85,91,72,64.5,87.5,则他的平均分应当是78.875〇 437注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include 438M,s.num);for(i=0;i 439n,s.s[i]);printf(M 440ave=%7.3f 441n,s.ave);out=fopen("out.dat","w");fprintf(out,"The%s1sstudentdata: 442",s.num);for(i=0;i 443",s.s[i]);fprintf(out," 444ave=%7.3f 445",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函数的横线上填入所编写的若干表达式或语句。试题程序:#include 446n);scanf(H%dw,&num);printf(M 447 448 449H);printf(f,******Theresult******* 450n); 451printf(" 452 453 454%s”,fun(num));)第1处填空:n/100%10第2处填空:'‘yes!”第3处填空:"no!”改错题ド列给定程序中,函数fun的功能是:通过某种方式实现两个变量值的交换,规定下允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b的值为8。请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:♦include 455",a,b);b=fun(&a,b);printf(H%d%d 456”,a,b);)第1处:t=x;x=y;应改为仁*x;*x=y;第2处:retum(y);应改为return①;或returnt;编程题请编写函数FUN,它的功能是:求出SS所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符1,则输出3。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:♦include 457Pleaseenterastring:M);gets(a);printf(M 458Pleaseenterachar:H);ch=getchar();printf(n 459Thenumberofthecharis:吿d 460",fun(azch));out=fopen(nout.datn,HwM;strcpy(az"Thenumberofthecharis:");fprintf(outz"%d"zfun(az**));fclose(out); 461)答案是:intfun(char*ss,charc)(intn=0;while(*ss)(if(*ss==c)n++;SS4-+;)returnn;第39套填空题请补充main函数,该函数的功能是:从ー个字符串中截取前面若干个给定字符数的子字符串。其冲,strl指向原字符串,截取后的字符串存放在str2所指的字符数组中,n中存放预截取的字符个数。例如,当strlゴabcdefg”,然后输入3,则str2ゴabc”.注意:部分源程序给出如下仅在横线上填入所编写的若干表达式或语句,请勿改动函数中的任何内容。试题程序:♦include 462");gets(strl);printf("Enterthepositionofthestringdeleted:");scanf(1);for(i=0;i 463",3);)第1处填空:"%d'',&n第2处填空:str2[i]=strl[i]第3处填空:str2改错题下列给定程序中,函数fun的功能是,将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中,例如,当s所指这字符串为ABCD时,则t所指字符串中的内容应为ABCDDCBAo请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include 464(inti,d;d=strlen(s);for(i=0;i 465PleaseenterstringS:");scanf("%s"zs);fun(szt);printf(" 466Theresultis:%s 467"zt);)“第1处:voidfun(chars,chart)应改为voidfun(char*s;char*t)第2处:t[2*d"]='\(r;应改为t[2*d]='\0'減t[d+i]ゴ、〇';或t[2*d]=0;或t[d+i]=O;编程题请编写函数FUN,该函数的功能是:移动・维数组中的内容;若数组中有N个整数,要求把ド标从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的花括号中填入所编写的若干语句。试题程序:#include 468n);for(i=0;i 469 470Enterp:");scanf(”%d”,&p);fun(a,p,n);printf(M 471Thedataaftermoving: 472n);for(i=0;i 473");out=fopen("out.datM,"w");fun(test,6,12);for(i=0;i<12;i++)fprintf(out,"%d 474”,test[i]);fclose(out);)答案是:voidfun(int*w,intp,intn)(intb[N],I,j=O; 475for(i=0;i<=p;i++)b[i]=w[i];for(i=p+1;i 476n);scanf(1);printf(»»******theorigialstring******** 477n);while(*(pl+j))(printf(n2”,*(pl+j));j++;}for(i=0;i 478Thenewstringis:%s 479M,3);)第!处填空:“%s”,strl第2处填空:%c第3处填空:str2改错题下列给定程序中,函数fun的功能是:将n个无序整数从小到大排序。请改正程序中的错误,使其能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:♦include 480found********/t=i;if(p!=j)(t=a[j];a[j]=a[p];a[p]=t;)}}putarr(intn,int*z)(inti;for(i=l;i<=n;i++,z++){printf(M%4dM,*z);if(!(i%10))printf(n 481M);}printf(M 482n);main()(intaa[20]={9,3,〇,4,1,2,5,6,8,10,7},n=11;printf(M 483 484Beforesorting%dnumbers: 485n,n);putarr(n,aa);fun(n,aa);printf(M 486Aftersorting%dnumbers: 487n,n);putarr(n,aa);)第1处:for(i=j+l;iivn-l;i++)应改为for(i=j+l;i 488n);puts(a);printf(M 489 490Enterm:");scanfド%d”,&m);fun(a,m);printf(M 491Thestringaftermoving: 492n);puts(a);printf(M 493 494H);out=fopen("out.dat","w");fun(a,strlen(a)-m);fun(a,3);fprintf(out,H%sM,a);fclose(out); 495)答案是:voidfun(char*w,intm)(charb[N];intI,j=0;for(i=0;i 496'*);scanf(1);printf(H******theorigialdata******** 497");if(n<0)—2―printf(H 498 499H);printf(-3_);)第二题:改错题下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将単向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include 500NODE*p;p=h->next;/********砧und********/while(p->next)if(p->data%2=0)sum+=p->data;/********found********/p=h->next;}returnsum;)NODE*creatlink(intn)(NODE*h,*p,*s;inti;h=p=(NODE*)malIoc(sizeof(NODE));for(i=l;i 501 502THELIST: 503 504HEAD");while(p)(printf("->%d",p->data);p=p->next;)printf(" 505");)main()(NODE*head;intsum;head=creatlink(lO);outlink(head);sum=fun(head);printf(" 506SUM=%d",sum);)第三题:编程题请编写函数fun.该函数的功能是;将M行N列的二维数组中的字符数据,按列的顺序依次放到ー个字符串中。例如,若二维数组中的数据为:WWWWSSSSHHHH则字符串中的内容应是WSHWSHWSHo请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include 507#defineN4voidfun(char(*s)[NJ,char*b)main()(chara[l00],w[M][N]={{},{'S',S?S',S},{}};inti,j;FILE*out;printf("Thematrix: 508");for(i=0;i 509H);)fun(w,a);printf("TheAstring: 510");puts(a);printf(" 511 512");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 513");puts(str);for(i=0;i 514b[O]++;break;caseT:b[l]++;break;case2:b[2]++;break;case3:b[3]++;break;case'4':b[4]++;break;case'51:b[5]++;break;case'6':b[6]++;break;case7:b[7]++;break;case'8f:b[8]++;break;case9:b[9]++;break;default:b[10]++;break;}P++;)printf(H******theresult******** 515n);for(i=0;i<10;i++)printf(u 516%d:%dM,i,b[i]);printf(n 517othercharacter:%d'\b[i]);)改错题下列给定程序中,函数fun的功能是:将字符串s中位于奇数位置的字符或ASCII码为偶数的字符依次放入字符串中.例如,字符串的数据为AABBCCDDEEFF,则输出应当是ABBCDDEFF.请改正函数fun中的错误,使它能得出正确的结果.注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include 518main()(chars[N],t[N];printf(" 519Pleaseentherstrings:");gets(s);fun(s,t);printf(" 520Theresultis:%s 521",t);)程序题下列程序定义了N*N的二维数组,并在主函数中自动赋值,请编写函数fun(inta[][N],加n),该函数的功能是:使数组右上半三角元素中的值乘以m.例如:若m的值为2,a数组中的值为197a=238则返回主程序后a数组中的值为2181436164512请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句.#include 522n);for(i=0;ivN;i++)(for(j=0;j 523");)m=rand()%4;printf(,,m=%4d 524M,m);fun(a,m);printf("THERESULTS");for(i=0;i 525for(j=0;j 526n);)fclose(out);第43套第43题的填空题请补充fun函数,该函数的功能是:按‘〇'到9统计ー个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。注意:不能使用字符串库函数。例如:输入:"x=1123.456+0.909*bc",结果为:1=2,3=1,5=1,7=0,9=2.请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达或语句。#include 527Pleaseenteracharstring:");gets(str);printf(" 528*******Theoriginalstring****** 529");puts(str);fun(str,num);printf(" 530*******Thenumberofletter****** 531");for(k=0;k<5;k++)(printf(" 532");printf("%d=%d",2*k+l,num[k]);)printf(" 533");)第43题的改错题下列给定程序中,函数fun的功能是:找出100至n(不大于1000)之间三个位上的数字都相等的所有整数,把这些整数放在s所指数组中,个数作为函数值返回。请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 534#include 535Entern(<=1000):");scanf("%d",&n);}while(n>1000);num=fun(a,n);printf(" 536 537Theresultヘバ);for(i=0;i 538 539H);)第43题的编程题编写一个函数,从传入的num个字符串中找出最长的ー个字符串,传回该串地址(用****作为结束输入的标志)。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中秘编写的若干语句。#include 540max=fun(ss,n);printf(,' 541max=%s 542,',max);out=fopen("out.daビ,“w");strcpy(ss[O],MOh,M);strcpy(ss[l],MyouM);strcpy(ss[2],"want'1);strcpy(ss[3],"some");strcpy(ss[4],"too?!?");fprintf(out,"%s",fun(ss,5));fclose(out);)答案第一题*p或・p!=0或0!=*pbbドp「0」++或bb[*p-tO,]+=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) 543fun(a,b,c);printf("Thestringa:");puts(a);printf("Thestringb:");puts(b);printf("Theresult:");puts(c);)2改错题下列给出程序中,函数fun的功能是:根据形参m的值(2(=m〈=9〉,在m行m列的二维数组中存放如下所示的数据,由main〇函数输出。例如,若输入21若输入4则输出:12!则输出:1123424124681369121481216请改正程序的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改持续的结构!#include 544”);)}3编程题编写ー个函数,该函数可以统计ー个长度为2的字符串在ー个字符串的次数。例如,假定输入的字符串为:asdasasdfgasdaszx67asdmklo,子字符串为as,则应输出6〇请勿改动主函数main和其他函数中的的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include 545n=0;while(*str)(p=str;r=substr;while(打)if(*r==*p)(r++;p++;)elsebreak;if(*r=二へ〇')}n++;str++;}returnn;}main(){charstr[81],substr[3];intn;FILE*out;printf("输入主字符串:");gets(str);printf("输入子字符串:");gets(substr);puts(str);puts(substr);n=fun(str,substr);printf(nn=%d 546n,n);out=fopen("out.dat”,”w”);strcpy(str,"asdasasdfgasdaszx67asdmklo");strcpy(substr,”as”);fprintf(out,”%d”,fun(str,substr));(close(out);第45套第一题:填空题请补充fun函数,该函数的功能是:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到I串的后面。例如:s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDE。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。#include 547Pleaseenterstrings:”);scanf(”%s”,s);fun(s,t);printf(nTheresultis:%s 548",t);)参考答案:1:sl・i・l或sl・l・i 5492:2*s!或si*2第二题:改错题下列给定程序中,函数fun的功能是:将s所指字符串中最后一次出现的tl所指子串替换成t2所指子串,所形成的新串放在w所指的数据中。在此处,要求tl和t2所指字符串的长度相同。例如,当s所指字符串中的内容为abcdabfabc,tl所指子串的内容为ab,t2所指子串中的内容为99时,结果,在w所指的数组中的内容为abcdabf99c。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include 550PleaseenterstringS:");scanf(n%sM,s);printf(n 551Pleaseentersubstringtl:M);scanf("%s”,tl);printf("ヽnPleaseentersubstringt2:");scanf(”%s”,t2);if(strlen(tl)==strlen(t2))fun(s,tl,t2,w);printf(n 552Theresultis:%s 553",w);else 554printf(H 555Error:strlen(tl)!=strlen(t2)