版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
201I年计算机等级考试二级C语言注意:不要改动main函数,不上机题库(51)/*♦**♦**♦**found**********/得增行或删行,也不得更改程序的填空题:给定程序中,函数fun的一3一;结构!功能是:找出100至x(xW9我)之)给定源程序:间各位上的数字之returnn;0include和为15的所有整数,然后输出;}#include符合条件的整数个数作为函数值返main()voidfun(char*s,char*t)回。{intx=-l;{例如,当n值为500时,各位while(x>999||x<0)数字之和为15的整数有:159、{printf("Please/************found************/168、177、186、input(0<x<=999):?);=""inti;195、249、258、267、276、scanf(?%d?,=""&x);}<=""si=strlen(s);285、294、339、348、357、366、p=""X/x<=999):>for(i=0;i<="">375、384、393、printf("\nTheresult429、438、447、456、465、is:%d\n",fun(x));/************found************/474、483、492〇共有26个。}t[i]=s[sl-i];请在程序的下划线处填入正确解题答案:for(i=0;i<="">的内容并把下划线删除,使程序得/**********found**********/t[sl+i]=s[i];出正确的结n=0;t[2*sl]=,、〇';果。/*♦**♦**♦**found**********/)注意:源程序存放在考生文件while(t<=x)mainO夹下的BLANK1.C中。/**********found**********/{chars[100],t[100];不得增行或删行,也不得更改t++;printf("\nPleaseenter程序的结构!strings:"):scanf("%s",s);给定源程序:*******************************fun(s,t);#include***********printf("Theresultintfun(intx)改错题:给定程序MODIl.C中函数is:%s\n",t);{intn,si,s2,s3,t;fun的功能是:先将s所指字符串)/**********found**********/中的字符按逆序存放解题答案:n=_l_;到t所指字符串中,然后把St=100;所指串中的字符按正序连接到t所/************found************//**********found**********/指串的后面。inti,si;while(t<=2)例如:当s所指的字符串为:{sl=t%10;s2=(t/10)%10;"ABCDE"时,/************「ound************/s3=t/100;则t所指的字符串应为:t[i]=s[sl-i-l];if(sl+s2+s3==15)"EDCBAABCDE"o{printf(*%d",t);请改正程序中的错误,使它能*******************************n++;得出正确的结果。程序题:函数fun的功能是:将a、b中的两个两位正整数合并形成ー个新的整数放在,中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。例如,当a=45,b=12a调用该函数后,c=1425o注意:部分源程序存在文件PR0G1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:^includevoidfun(inta,intb,long*c)()mainO/・主函数・/{inta,b;longc;voidNONO0;printf(*Inputa,b:");scanf(*%d%d*,&a,&b);fun(a,b,&c);printf《Theresultis:%ld\n*,c):NONO();}voidNONO()(/・本函数用「打开文件,输入数据,调川函数,输出数据,关闭文件。*/FILE*rf,*wf;inti,a,b;longc;rf=fopen(*in.dat*,*r*);wf=fopen(*out.dat*,*w*);for(i=0;i<10;i++){fscanf(rf,"%d,%d",&a,&b);fun(a,b,&c);fprintf(wf,"a=%d,b=%d,c=%ld\n”,a,b,c);)fclose(rf);fclose(wf);}参考答案:voidfun(inta,intb,long♦c)(*c=(b/10)*1000+(a/10)*100+(b%10)*10+(a机。);)201I年计算机等级考试二级C语言
上机题库(52)一、填空题:给定程序中,函数fun的功能是:找出10〇〜999之间(含100和999)所有整数中各位上数字之和为x(x为ー正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。例如,当x值为5时,10〇〜999之间各位上数字之和为5的整数有:104>113、122、131、140、203、212、221、230、302、311、320、401、410、500〇共有15个。当x值为27时,各位数字之和为27的整数是:999〇只有1个。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!给定源程序:#includeintfun(intx){intn,si,s2,s3,t;n=0;t=100;/♦♦********found**********/while(t<=—1—){/**********found**********/sl=t%10;s2=(_2_)%10;s3=t/100;/**********found**********/if(sl+s2+s3==3―){printf(*%d",t);n++;)t++;)returnn;}mainO{intx=-l;while(x<0){printf("Pleaseinput(x>0):");scanf("%d",&x);)printf("\nTheresultis:%d\n",fun(x));)解题答案:/**********第一空*t=s%10*sl+*t;typedefstructwhile(t<=999){/**********第二空**********/sl=t%10;s2=(t/10)%10;s3=t/100;/**********第三空**********/if(sl+s2+s3=x)二、改错题:给定程序M0DI1.C中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。髙位仍在髙位,低位仍在低位。例如,当s中的数为:7654321时,t中的数为:642〇请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:^include/************found************/voidfun(longs,longt){longsl=10;s/=10;♦t=s%10;/************found************/while(s<0){s=s/100;si=si*10;})mainO{longs,t;printf(*\nPleaseenters:");scanf("%ld",&s);fun(s,&t);printf(*Theresultis:%ld\n*,t);}解题答案:^include/************foiind************/voidfundongs,long*t)/************found************/while(s>0)三、程序题:学生的记录由学号和成绩组成,、名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:按分数的髙低排列学生的记录,高分在前。注意:部分源程序在文件PR0G1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:^include0defineN16{charnum[10];ints;)STREC;voidfun(STRECa口)()mainO{STRECs[N]=({*GA005*.85],ドGA003”,76),{*GA002*,69},{*GA004*,85},(*GAO01*.91},{"GA007*,72}»{*GA008",64},{“GA006”,87},{“GA015”,85},{"GA013”,91},{“GA012”,64},("GA014*,91},{*GA0ir,66},{*GA017*,64},{“GA018”,64},{"GA016”,72}};inti;FILE*out;fun(s);printf(*Thedataaftersorted:\n");for(i=0;iく-"p="">{if((i)%4==0)printf("\n");printf("%s%4d",s[i].num,s[i].s);)printf("\n");out=fopen("out.dat","w");for(i=0;i<=""p="">{if((i)%4==0&&i)fprintf(out,"\n");fprintf(out,"%4d",s[i].s);}fprintf(out,"\n");fclose(out);)参考答案:^include^defineN16typedefstruct{charnum[10];ints;}STREC;intfun(STRECa[])(STRECtmp;inti,j;for(i=0;i<N;i++)for(j=i+1;j<N;j++)if(a[i].s<a[j].s){tmp=a[i];a[i]=a[j];a[j]=tmp;))201I年计算机等级考试二级C语言
上机题库(53)ー、填空题:给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。例如,从主函数输入ー个整数:27638496,函数返回值为:26846.请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:^includeunsignedlongfun(unsignedlongn){unsignedlongx=0,s,i;intt;s=n;/**********found**********/i=_l_;/**********「ound**********/while(_2_){t=s%10;if(t%2==0){/**********found**********/x=x+t*i;i=_3_;}s=s/10;)returnx;}mainO{unsignedlongn=-l;while(n>99999999||n<0){printf("Pleaseinput(0<n</nprintf("\nTheresultis:%ld\n",fun(n));)解题答案:/**********第一空**********/i=l;/**********第二空*********/while(s)/**********第三空x=x+t*i;i=i*10;二、改错题:给定程序M0DI1.C中函数fun的功能是:饰出M行M列整数方阵,然后求两条对角线上元素之利,返回此和数。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include^defineM5/************found************/intfun(intn,intxx[][]){inti,j,sum=0;printf("\nThe%dx%dmatrix:\n",M,M);for(i=0;i<M;i++){for(j=0;j<M;j++)/************found************/printf("%f",xx[i][j]);printf("\n*);1for(i=0;i<n;i++)sum+=xx[i][i]+xx[i][n-i-1]:return(sum);)mainO{intaa[M][M]={{1.2,3,4,5},{4,3,2,1,0},(6,7,8,9,0),(9,8,7,6,5},{3,4,5,6,71);printf(*\nThesumofal1elementson2diagnalsis%d.*,fun(M,aa));)解题答案:rf=fopen(in.dat*,r);例如,从主函数输入ー个整/************found************/wf=fopen(*out.dat","w");数:27638496,函数返回值为:intfun(intn,intxx[][M])for(i=0;i<10;i++){26846。fscanf(rf,"%d,%d",&a,&b):请在程序的下划线处填入正确/************found************/fun(a,b,&c);的内容并把下划线删除,使程序得printf(*%4d*,xx[i][j]);fprintf(wf,出正确的结果。"a=%d,b=%d,c=%ld\n",a,b,c);注意:源程序存放在考生文件*******************************)夹的BLANK1.C中。***********fclose(rf);不得增行或删行,也不得更改三.程序题:函数fun的功能是:将fclose(wf);程序的结构!a、b中的两个两位正整数合并形成)给定源程序:ー个新的整数放在Cmain()#include中。合并的方式是:将a中的十{inta,b;longc;voidNONOunsignedlongfun(unsigned位和个位数依次放在变量c的千位0;longn)和十位上,b中的printf("Inputa,b:");{unsignedlongx=0,s,i;十位和个位数依次放在变量cscanf("%d%d",&a,&b);intt;的个位和百位上。fun(a,b,&c);s=n;例如,当a二例,b=12,调用该printf("Theresult/**********found**********/函数后,c=425Eis:%ld\n",c);i=_l_;注意:部分源程序存在文件NONO();/**********found**********/PR0GLC中。数据文件IN.DAT中的)while(2)数据不得修改。参考答案:{t=s%10;请勿改动主函数main和其它函voidfun(inta,intb,longif(t%2==0){数中的任何内容,仅在函数fun的*c)/*♦**♦**♦**found**********/花括号中填入(x=x+t*i;i=_3_;你编写的若干语句。)给定源程序:*c=(a/10)*1000+(b%10)*100+(a%10s=s/10:^include)*10+(b/10);)voidfun(inta,intb,long)returnx;*c)201I年计算机等级考试二级C语言)(上机题库(53)mainO)一、填空题:给定程序中,函数{unsignedlongn=-l;voidNONO()fun的功能是:将形参口中,各位while(n>99999999||n<0){/・本函数用于打开文件,输上为偶数的数取出,并按原来从髙{printf("Please入数据,调用函数,输出数据,关位到低位的顺序组成一个新的数,input(0<n</n闭文件。*/并作为函数值返回。printf("\nTheresultFILE*rf,*wf;is:%ld\n*»fun(n));inti,a,b;longc;
解题答案:sum+=xx[i][i]+xx[i][n-i-请勿改动主函数main和其它函/**********第一空1];数中的任何内容,仅在函数fun的**********/return(sum);花括号中填入1=1;)你编写的若干语句。/**********第二空*********/main()给定源程序:while(s){int#include/**********第三空aa[M][M]={{1,2,3,4,5},{4,3,2,1,voidfun(inta,intb,long**********/0},{6,7,8,9,0),*c)x=x+t*i;i=i*10;(9,8,7,6,5),(3,4,5,6,7));(printf(*\nThesumofal1)*******************************elementson2diagnalsvoidNONO0***********is%d.*,fun(M,aa));{/・本函数用于打开文件,愉二、改错题:给定程序MODILC中)入数据,调用函数,输出数据,关函数fun的功能是:输出M行M列解题答案:闭文件。・/整数方阵,然后求两条对角线上无FILE*rf,*wf;素之和,返回此和数。/************found************/inti,a,b;longc;请改正程序中的错误,使它能intfun(intn,intxx[][M])rf=fopen("in.dat","r");得出正确的结果。wf=fopen(*out.dat*,*w*);注意:不要改动main函数,不/************found************/for(i=0;i<10;i++){得增行或删行,也不得更改程序的printf(*%4d”,xx[i][j]);fscanf(rf,飞d,%d",&a,&b)结构!fun(a,b,&c);给定源程序:***************************料**fprintf(wf,^include***********"a=%d,b=%d,c=%ld\n*,a,b,c);#defineM5三.程序题:函数「un的功能是:将)a、b中的两个两位正整数合并形成fclose(rf);/************f()ur)d************/ー个新的整数放在Cfclose(wf);intfun(intn,intxx[][])中。合并的方式是:将a中的十){inti,j,sum=0;位和个位数依次放在变量c的千位main()printf(*\nThe%dx%d和十位上,b中的{inta,b;longc;voidNONOmatrix:\n,M,M);十位和个位数依次放在变量c0;for(i=0;i<M:i++)的个位和百位上。printf(*Inputa,b:");{for(j=0;j<M;j++)例如,当a=45,b=12o调用该scanf(*%d%d*,&a,&b);函数后,¢=4251。fun(a,b,&c);/************found************/注意:部分源程序存在文件printf(*Theresultprintf(*%f*,xx[i][j]);PR0G1.C中。数据文件IN.DAT中的is:%ld\n*,c);printf('\n");数据不得修改。NONO();))for(i=0;i<n;i++)参考答案:voidfun(inta,intb,long*c)(*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);)201I年计算机等级考试二级C语言
上机题库(54)一、填空题:给定程序中,函数fun的功能是:将形参口中,各位上为偶数的数取出,并按原来从髙位到低位相反的顺序组成一个新的数,并作为函数值返回。例如,输入ー个整数:27638496,函数返回值为:64862。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下BLANKLC中。不得增行或删行,也不得更改程序的结构!给定源程序:#includeunsignedlongfun(unsignedlongn){unsignedlongx=0;intt;while(n){t=n%10;/**********found**********/if(t%2==_l_)/**********found**********/x=_2_+t;/**********found**********/n二_3一;)returnx;)mainO{unsignedlongn=T;while(n>9999999911nく〇){printf("Pleaseinput(0<n</nprintf("\nTheresultis:%ld\n",fun(n));)解题答案:/**********第一空if(t%2==0)/**********第二空**********/x=10*x+t;/**********第三空*********/n=n/10;***********二、改错题:给定程序M0D11.C中函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。髙位仍在髙位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:7531.请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#includevoidfun(longs,long*t){intd;longsl=l;/************found************/t=〇;while(s>0){d=s%10;/科**********found************/if(d%2=0){*t=d*si+*t;si*=10;)s/=10;))mainO{longs,t;printf(*\nPleaseenters:*);scanf(*%ld*,&s);fun(s,&t);printf(*Theresultis:%ld\n*,t);)解题答案:/************found************/*t=0;/************found************/if(d%2!=0)三、程序题:编写ー个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到P!所指的字符串后。例如,分别输入下面两个字符FILE*rf,*wf;不得增行或删行,也不得更改串:charsi[80],s2[40];程序的结构!FirstString-rf=fopen("in.dat","r");给定源程序:SecondStringwf=fopen(*out.dat,w");#include程序输出:for(i=0;i<10;i++){voidfun(unsignedlong*n)FirstString-SecondStringfscanf(rf,"%s",si);{unsignedlongx=0,i;int注意:部分源程序在文件fscanf(rf,“*s”,s2);t;PR0GLC文件中。fun(sl,s2);i=l;请勿改动主函数main和其它函fprintf(wf,"%s\n”,si);while(*n)数中的任何内容,仅在函数fun的}/**********found**********/花括号中填入fclose(rf);{t=*n% 1你编写的若干语句。fclose(wf);/*♦**♦**♦**found**********/给定源程序:}if(t%2!=_2_)^include参考答案:{x=x+t*i;i=i*10;}voidfun(charpl[],charvoidfun(charpl[],char*n=*n/10;p2[])P2[]))((/**********found**********/)char*p=pl;*n=_3_;mainOwhile(*p)p++;){charsi[80],s2[40];voidwhile(*p2)*p++=*p2++;mainONONO();*p=0;{unsignedlongn=-l;printf(*Entersiand}while(n>99999999||n<0)s2:\n*);201I年计算机等级考试二级C语言{printf("Pleasescanf(*%s%s*,si,s2);上机题库(55)input(0<n</nprintf(*sl=%s\n*,si);一、填空题:给定程序中,函数fun(&n);printf(*s2=%s\n*,s2);fun的功能是:将形参n所指变量printf("\nTheresultprintf(*Invoke中,各位上为偶数的数去除,剰余的is:%ld\n*,n);fun(si,s2):\n*);数按原来从髙位到低位的顺序组成)fun(sl,s2);ー个新的数,并通过形参指针n传解题答案:printf(*Afterinvoking:\n*);回所指变量。/**********第一空printf(*%s\n*,si);例如,输入ー个数:**********/NONOO;27638496,新的数:为739。{t=*n%10;}请在程序的下划线处填入正确/**********第一:空*********/voidNONO()的内容并把下划线删除,使程序得if(t%2!=0)(/・本函数用T打开文件,输出正确的结果。/**********第三空*********/入测试数据,调用fun函数,输出注意:源程序存放在考生文件*n=x;数据,关闭文件。*/夹下BLANKLC中。inti二、改错题:给定程序MODU.C中函数fun的功能是:计算n!。例如,给n输入5,则输出120.000000〇请改正程序中的错误,使程序能输Hl正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:^includedoublefun(intn){doubleresult=1.0;/************found************/ifn==0return1.0;while(n>1&&n<170)/************foiind************/result*=n-returnresult;)main(){intn;printf(*InputN:*);scanf("%d",&n);printf(*\n\n%d!=%lf\n\n*,n,fun(n));}解题答案:/************found************/if(n==0)/************found************/result*=n-;三、程序题:请编写ー个函数fun,它的功能是:将一个数字字符串转换为ー个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串”-1234”,则函数把它转换为整数值ー1234»函数fun中给出的语句仅供参考。注意:部分源程序存在文件PR0GLC文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:^include#includelongfun(char*p)()mainO/・主函数・/{chars[6];voidNONO();longn;printf(*Enterastring:\n");gets(s);n=fun(s);printf("%ld\n*,n);NONO0;)voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;inti;chars[20];longn;fp=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(fp,"%s",s);n=fun(s);fprintf(wf,"%ld\n",n);)fclose(fp);fclose(wf);}参考答案:#include#includelongfun(char*p)(/・以下代码仅供参考・/inti,len,t;/*len为串长,t为正负标识*/longx=0;len=strlen(p);if(p[0]==){t=-l;len-;p++;}elset=l;/・以下完成数字字符串转换为一个数字*/while(*p)x=x*10-48+(*p++);returnx*t;)ー、填空题:给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如,当形参n的值为10时,函数返回:9.612558c请在程序的下划线处壊入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:^includedoublefun(intn){inti;doubles,t;/**********found**********/s=_l_:/♦♦********found**********/for(i=l;i<=_2_;i++){t=2.0*i;/**********found**********/s=s+(2.0*i-1)*(2.0*i+l)/_3_;)returns;)main()(intn=-l;while(n<0){printf("Pleaseinput(n>0):");scanf("%d",&n);}printf("\nTheresultis:%f\n",fun(n));)解题答案:/**********第一•空s=0;/**********第二空**********/for(i=l;i<=n;i++)/**********第三空s=s+(2.0*i-1)*(2.O*i+l)/(t*t);***********二、改错题:给定程序M0DI1.C中函数fun的功能是:统计substr所指子字符串在str所指字符串中出现的次数。例如,若字符串为aaasIkaaas,子字符串为as,则应输出请改正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#includeintfun(char*str,char♦substr){inti,j,k,num=0;/************fourid************/for(i=0,str[i],i++)for(j=i,k=0:substr[k]==str[j];k++,j++)/************found************/If(substr[k+l]=‘、〇'){num++;break;)returnnum;)mainO(charstr[80],substr[80];printf("Inputastring:");gets(str);printf("Inputasubstring:");gets(substr);printf("%d\n",fun(str,substr));)解题答案:/************found************/for(i=0;str[i];i++)/************found************/if(substr[k+l]=>\0')***********三、程序题:请编写ー个函数fun,它的功能是:根据以下公式求/的值(要求满足精度0.0005«即某项小J-0.0005时停止迭代):程序运行后,如果输入精度0.0005»则程序输出为3.14-%注意:部分源程序存在文件PR0G1.C文件中.请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:while((fabs(s))>=eps)〃精度}#include判断returns;^includef)doublefun(doubleeps)pi+=s;//pi存放累加和mainO(t=n/(2*n+l):〃每ー项{intn="l;)s*=t:〃累枳while(n<0)mainOn++;{printf(*Pleaseinput(n>0):{doublex:voidNONO();)");scanf(*%d*,&n);)printf(*Inputeps:");pi=pi*2:〃求得又值printf(*\nTheresultscanf("%1f",&x);returnpi;is:%f\n”,fun(n));printf("\neps=%lf,PI=%lf\n",ij)x,fun(x));201I年计算机等级考试二级C语言解题答案:NONOO;上机题库(57)/**********第一空)一、填空题:给定程序中,函数♦**♦**♦**♦/voidNONO()fun的功能是:计算下式前n项的k=l;{/・本函数用于打开文件,输和作为函数值返回。/**********第二空入数据,调用函数,输出数据,关例如,当形参n的值为10时,**********/闭文件。*/函数返回:-0.204491〇t=2*i;FILE*fp,*wf;请在程序的下划线处填入正确/**********第三空*********/inti;的内容并把下划线删除,使程序得出k=k*(-l);doublex;正确的结果。fp=fopen("in.dat","r");注意:源程序存放在考生文件*******************************wf=fopen("out.dat","w");夹下BLANK1.C中。***********for(i=0:i<10;i++){不得增行或删行,也不得更改二、改错题:给定程序MOD".C中fscanf(fp,"%lf",&x);程序的结构!函数fun的功能是:判断ー个整数fprintf(wf,"%1f\n",给定源程序:是否是素数,若是返fun(x));#include回1,否则返回〇。)doublefun(intn)在main。函数中,若fun返回fclose(fp);{inti,k;doubles,t;1输出YES,若fun返回〇输出fclose(wf);s=0;N0!。)/**********found**********/请改正程序中的错误,使它能解题答案:k=_l_;得出正确的结果。(for(i=l;i<=n;i++){注意:不要改动main函数。不doubles;/**********found**********/得增行或删行,也不得更改程序的floatn,t,pi;t=_2_:结构!t=l;pi=0;n=l.0;s=l.0;s=s+k*(2*i-l)*(2*i+l)/(t*t);给定源程序:〃对各个累加项,累加积等赋/**********±ound**********/0include初始化值k=k*_3_:intfun(intm)
{intk=2:值,index存放最大值所在元素的下fun(x,n,&max,&index):while(k<=m&&(儼k))标。fprintf(wf,注意:部分源程序存在文件*Max=%d,Index=%d\n*,max,/************found************/PROG1.C文件中。index);k++请勿改动主函数main和其它函}数中的任何内容,仅在函数fun的fclose(fp);/************found************/花括号中填入fclose(wf);if(m=k)你编写的若干语句。)return1;给定源程序:参考答案:elsereturn0;#includevoidfun(inta口,intn,)#includeint*max,int*d)main()voidfun(inta[],intn,((intn;int*max,int*d)inti;printf(*\nPleaseentern:(*max=a[0];*d=0;/・把数*);scanf&n);)组的第1个元素值赋值给最大值变if(fun(n))main()量*max*/printf("YES'n");{inti,x[20],max,index,for(i=1;i<n;i++)elseprintf("N0!\n");n=10;voidNONO();if(*maxくa[i])(/・判断)for(i=0;i<n;i++){x[i]=♦max是否小广当前值・/解题答案:rand()%50;printf(飞4d”,x[i]);}♦max=a[i];/♦重新把最大printf(*\n*);值赋值给♦max♦//************founcl************/fun(x,n,&max,&index);*d=i;/♦记住下标♦/k++;printf(*Max=%5d,Index)』4d\n”,max,index);)/************f()und************/N0N00;201I年计算机等级考试二级C语言if(m==k)}上机题库(58)voidNONO()一、填空题:给定程序中,函数*******************************{/・本函数用于打开文件,输fun的功能是计算下式例如:若形***********入数据,调用函数,输出数据,关参e的值为le-3,函数的返回值为三、程序题:请编写ー个函数闭文件。*/0.5516900fun,它的功能是:找出ー维整型数FILE*fp,*wf;请在程序的下划线处填入正确组元素中最大的值和它所在的下inti,x[20],max,index,的内容并把下划线删除,使程序得出标,最大的值和它所在的下标通过n=10,j;正确的结果。形参传回。数组元素中的值已在主fp=fopen("in.dat","r");注意:源程序存放在考生文件函数中赋予。wf=fopen(*out.dat*,*w*);夹下BLANK1.C中。主函数中x是数组名,n是xfor(i=0;i<10;i++){不得增行或删行,也不得更改中的数据个数,max存放最大for(j=0;j<n;j++)程序的结构!fscanf(fp,*%d,*»&x[j]);给定源程序:
tfinclude23581321doublefun(doublee) , , ,*******************************{inti,k;doubles,t,x:--,--, ***********s=0;k=l;i=2;1235813三、程序题:请编写ー个函数/**********found**********/例如,若n=5,则应输出:fun»它的功能是:求出ー个2XMx=_l_/4;8.391667。整型二维数组中最大元素的值,并将/**********found**********/请改正程序中的错误,使它能此值返回调用函数。while(x—2_e)计算出正确的结果。注意:部分源程序存在文件{s=s+k*x;注意:不要改动main函数,不PR0G1.C文件中。k=k*(-1);得增行或删行,也不得更改程序的请勿改动主函数main和其它函t=2*i;结构!数中的任何内容,仅在函数fun的/**********found**5*1*******/给定源程序:花括号中填入你编写的若干语句。x=3/(t*t);#include给定源程序:i++;#include)/************found************/^defineM4returns;voidfun(intn)intfun(inta[][M])}{inta,b,c,k;doubles;(main()s—0.0;a=2jb=1;){doublee=le-3;for(k=1;k<=n;k++){mainOprintf(*\nTheresult{intis:%f\n*,fun(e));/************found************/arr[2][M]={5,8,3,45,76,-)s=s+(Double)a/b;4,12,82};voidNONO();解题答案:c=a;a=a+b;b=c;printf(*max=%d\n,/**********第一空)fun(arr));**********/returns;N0N0O;x=3./4;})/**********第:空*********/mainOvoidNONO0while(x>e){intn=5;{/・本函数用于打开文件,愉/**********第三空*********/printf(*\nThevalueof入数据,调用函数,输出数据,关x=(2*i+l)/(t*t):functionis:%lf\n*,fun(n));闭文件。・/)FILE*wf:************************—*解题答案:intarr[][M]={5,8,3,90,76,-***********4,12,82);二、改错题:给定程序M0DI1.C中/************found************/wf=fopen("out.dat","w");函数fun的功能是:求出以下分数doublefun(intn)fprintf(wf,"max=%d\n,序列的前n项之和。和fun(arr));值通过函数值返回到main函/**♦**♦**♦**♦found************/fclose(wf);数。s=s+(doub1e)a/b;参考答案:fun(inta[][M])(inti,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<=<*>if(maxreturnmax;)201I年计算机等级考试二级C语言
上机题库(59)一、填空题:给定程序中,函数fun的功能是计算下式例如,若形参e的值为le-3,函数的返回值2.735678。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下BLANKLC中。不得增行或删行,也不得更改程序的结构!给定源程序:#includedoublefun(doublee){inti;doubles,x;/**********found**********/s=0;i=_1—;x=1.0;while(x>e){/**♦*****♦♦found**********/—2_:/**********found**********/x=(2.0*i-D/((_3_)*⑵0*i));s=s+x;)returns;mainO{doublee=le-3;printf(*\nTheresultis:%f\n*,fun(e));}解题答案:/**********第一空**********/s=0;i=0;/**********第二空i++;/**********第三空**********/x=(2.0*i-l)/((2.0*i)*(2.0*i));二、改错题:给定程序MODI1.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在I所指的数组中。例如,当s所指字符串为:"ABCD”时,则t所指字符串中的内容应为:*ABCDDCBA\请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:0include#include/************found************/voidfun(chars,chart)(inti,d;d=strlen(s);for(i=0;ifor(i=0;i/************found************/t[2*d-l]=’、〇';)mainO(chars[100],t[100];printf(*\nPleaseenterstringS:*);scanf(*%s*»s);fun(s,t);printf(*\nTheresultis:%s\n*,t);)解题答案:/************found************/voidfun(char*s,char*t)/************found************/t[2*d]='、〇’;***********三、程序题:函数fun的功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若s所指字符串中的内容为:"ABCDEFG12345”,其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必需刪除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是:*135\注意:部分源程序存在文件PR0GLC中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:nclude#includevoidfun(char*s,chart[])()mainO{chars[100],t[100];voidNONO();printf(*\nPleaseenterstringS:*);scanfs);fun(s,t);printf(*\nTheresultis:%s\n*»t);NONO();)voidNONO(){/・本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/chars[100],t[100];FILE*rf,*wf;inti;rf=fopen("in.dat","r");wf=fopen("out.dat,"w");for(i=0;i<10;i++){fscanf(rf»飞s*,s);fun(s,t);fprintf(wf,*%s\n*,t);)fclose(rf);fclose(wf);)参考答案:voidfun(char*s,chart[])finti,j=0;for(i=1;i<strlen(s);i+=2)if(s[i]%2)t[j++]=s[i];t[j]=0;I201I年计算机等级考试二级C语言
上机题库(60)一、填空题:给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asdl23fgh543df,处理后新字符串为:asdfghdf123543。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下BLANK1.C中。不得増行或删行,也不得更改程序的结构!给定源程序:#include^include#includechar*fun(char*s){inti,j,k,n;char*p,n=strlen(s)+l;t=(char*)mal1oc(n*sizeof(char));p=(char*)malloc(n*sizeof(char));j=0;k=0;for(i=0;i<=**p=".>{if(((s[i]>=a)&&(s[i]<=,z'))|I((s[i]>-A*)&&(s[i]<=*Z*))){/**********found**********/j++;}else{p[k]=s[i]:k++;})/**********found**********/for(i=0;i<_2_;i++)t[j+i]=p[i];/**********found**********/t[j+k]=__3_;returnt;}mainO{chars[80];printf(*Pleaseinput:つ;scanf(*%s*,s);printf(*\nTheresultis:%s\n*»fun(s));)解题答案:/**********第一空♦♦****♦***/t[j]=s[i];j++;)/**********第二空for(i=0;i/**********第三空**********/t[j+k]=0:二、改错题:给定程序M0DU.C中函数fun的功能是:将s所指字符串中最后一次出现的与tl所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。在此处,要求tl和t2所指字符串的长度相同。例如,当s所指字符串中的内容为:*abcdabfabc*»tl所指子串中的内容为:"ab”,t2所指子串中的内容为:“99”时,结果,在w所指的数组中的内容应为:"abcdabf99c\请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include#includevoidfun(char*s,char*t1,char*t2,char*w)(char*p,*r,*a=s:strcpy(w,s);/************found************/while(w){p=w;r=tl;while(*r)/************found************/IF(*r=*p){r++;p++;}elsebreak;if(*r='ゝ〇')a=w;w++;)r=t2;while(*r){*a=*r;a++;r++;})mainO(chars[100],tl[100],t2[100],w[100];printf(*\nPleaseenterstringS:*);scanf(*%s*,s);printf(*\nPleaseentersubstringtl:");scanf(*%s",tl);printf("\nPleaseentersubstringt2:");scanf("%s",t2);if(strlen(tl)==strlen(t2)){fun(s,tl,t2,w);printf("\nTheresultis:%s\n*,w);)elseprintf("\nError:strlen(tl)!=strlen(t2)\n");)解题答案:/************found************/while(*w)/************found************/if(*r==*p)三、程序题:函数fun的功能是:将s所指字符串中ASCI!值为奇数的字符删除,串中剰余字符形成一个新串放在t所指的数组中。例如,若s所指字符串中的内容为:"ABCDEFG12345",其中字符A的ASCI!码值为奇数、…、字符I的ASCII码值也为奇数、…都应当删除,其它依此类推。最t所指的数组中的内容应是:"BDF24"o注意:部分源程序存在文件PR0G1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include#includevoidfun(char*s,chart[])()mainO(chars[100],t[100];voidNONO0;printf(*\nPleaseenterstringS:");scanf("%s",s);fun(s,t);printf("\nTheresultis:%s\n",t);)123543asdfgh㈱df。printf(*Pleaseinput:"):voidNONO()请在程序的下划线处填入正确scanf(*%s*,s):{/・本函数用于打开文件,愉的内容并把下划线删除,使程序得出printf("\nTheresult入数据,调用函数,输出数据,关正确的结果。is:%s\n",fun(s));闭文件。*/注意:源程序存放在考生文件}chars[100],t[100];夹下BLANK1.C中。解题答案:FILE*rf,*wf;不得增行或删行,也不得更改/**********tf5ー空inti;程序的结构!**********/rf=fopen(*in.dat*,*r*);给定源程序:p[j]=s[i];j++;)wf=fopen(*out.dat*,*w*);#include/**********第二空for(i=0:i<10;i++){^include**********/fscanf(rf,"%s",s):#includefor(i=0;ifun(s,t);^include/**********第三空fprintf(wf,*%s\n*,t);char*fun(char*s)**********/){inti,j,k,n;char*p,returnp;fclose(rf);♦t;fclose(wf);n=strlen(s)+l;*******************************)***********参考答案:t=(char*)mal1oc(n*sizeof(char));二、改错题:给定程序MODIl.C中voidfun(char*s,chart[])函数fun的功能是:首先把b所指(p=(char*)malloc(n*sizeof(char));字符串中的字符按逆序存放,然后inti,j=0;j=0;k=0;将a所指字符串中的字符和b所指for(i=0:i<strlen(s);for(i=0;iくゴ“尸”“〉字符串中的字符,按排列的顺序交i++)if(s[i]%2==0)t[j++]={if(isdigit(s[i])){叉合并到c所指数组中,过长的剰s[i]:/**********found**********/余字符接在c所指数组的尾部。例t[j]=0;P(_l_]=s[i];j++;}如,当a所指字符串)else中的内容为"abcdefg”,b所指201I年计算机等级考试二级C语言{t[k]=s[i];k++;}字符串中的内容为"1234”时,c所上机题库(61))指数组中的内容应ー、填空题:给定程序中,函数/♦♦********found**********/该为“a4b3c2dlefg”;而当a所fun的功能是:将形参s所指字符for(i=0;i<_2_;i++)指字符串中的内容为“1234。b所串中的所有数字字符顺序前移,其p[j+i]=t[i];指字符串中的内容他字符顺序后移,处理后新字符串p[j+k]=O;为"abcdefg”时,c所指数组中的首地址作为函数值返回。/♦♦********found**********/的内容应该为"1g2f3e4dcba”。例如,s所指字符串为:return 3 ;请改正程序中的错误,使它能asdl23fgh5##43df,)得出正确的结果。NONOO:处理后新字符串为:{chars[80];mainO
注意:不要改动main函数,不)(得增行或删行,也不得更改程序的解题答案:chars[100],t[100];void结构!NONO();给定源程序:/************found************/printf("\nPleaseenter#includewhile(i<j)<p=**X/j)<>stringS:*);scanf("%s",s);#includefun(s,t);voidfun(char*a,char*b,/************found************/printf("\nTheresultchar*c)if(*a)is:%s\n*,t);{NONOO;inti,j;charch;*******************************)i=0;j=strlen(b)-l;***********voidNONO()三、程序题:函数fun的功能是:{/・本函数用于打开文件,愉/************found************/将s所指字符串中下标为偶数同时入数据,调用函数,输出数据,关while(i>j)ASCII值为奇数的字符删除,s所指闭文件。*/(ch=b[i];b[i]=b[j];串中剰余的字符形成的新串放在tchars[100],t[100];b[j]=ch;所指的数组中。FILE*rf,*wf;i++;j一;例如,若s所指字符串中的内inti;)容为"ABCDEFG12345”,其中字符Crf=fopen("in.dat","r");while(*a1|*b){的ASCII码值为wf=fopen("out.dat","w");奇数,在数组中的下标为偶for(i=0;i<10;i++){/************found************/数,因此必须删除;而字符1的fscanf(rf,"%s",s);If(*a)ASCII码值为奇数,在fun(s,t);{*c=*a;c++;a++;}数组中的下标也为奇数,因此fprintf(wf,*%s\n",t);if(*b)不应当删除,其它依此类推。最后){*c=*b;c++;b++;)t所指的数组中的内容应是fclose(rf);)"BDF12345"ofclose(wf);♦c=0;注意:部分源程序存在文件))PR0G1.C中。参考答案:mainO请勿改动主函数main和其它函voidfun(char*s,chart[]){数中的任何内容,仅在函数fun的(charsi[100],s2[100],t[200];花括号中填入你编写的若干语句。inti,j=0;printfC\nEntersistring:给定源程序:for(i=0;i<strlen(s);*);scanf(*%s*»si);#includei++)printf(*\nRnters2string:#includeif(!((i%2)==0&&(s[i]%*);scanf(*%s*,s2);voidfun(char*s,chart[])2)))t[j++]=s[i];fun(sl,s2,t);(t[j]=0;printf("\nTheresult))is:%s\n*,t);main()
201I年计算机等级考试二级C语言{inti;doublex[N],y[N];上机题库(62)for(i=0;i<=**>/************fQunci************/ー、填空题:给定程序中,函数printf(*\nTheaveragefun(intm)fun的功能是:计算形参x所指数is:%f\n*»fun(x,y));{doubley=0,d;组中N个数的平均值(规定所有数均for(i=0;y[i]>=0;i++)inti;为正数),作为函数值返回;并将大于printf(*%5.If*,y[i]);平均值的数放在形参y所指数组中,printf("\n");/************found************/在主函数中输出。)for(i=100,i<=m,i+=例如,有10个正数:463032解题答案:100)4061745154826,平均值为:/**********第一空{d=(double)i*(double)i30.500000**********/y+=1.0/d;主函数中输出:46324045av=0;)48/**********第二空return(y):请在程序的下划线处填入正确**********/)的内容并把下划线删除,使程序得出for(i=0;i<=つmainO正确的结果。/**********第三
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【师范类】2025年湖南省普通高等学校对口招生考试专业知识综合试题(含答案)
- 2026年阜阳幼儿师范高等专科学校单招职业技能测试题库及参考答案详解一套
- 经济2022研究报告
- 2026年鞍山职业技术学院单招综合素质考试题库含答案详解(培优a卷)
- 2026年鹤壁能源化工职业学院单招综合素质考试题库附答案详解(满分必刷)
- 2026年长沙环境保护职业技术学院单招职业技能考试题库带答案详解(完整版)
- 2026年陕西学前师范学院单招综合素质考试题库带答案详解(综合题)
- 2026年陕西国防工业职业技术学院单招职业倾向性考试题库附参考答案详解(巩固)
- 2026年青海卫生职业技术学院单招职业倾向性考试题库及答案详解(易错题)
- 2026年闽北职业技术学院单招职业适应性考试题库带答案详解(a卷)
- 年产20万吨离子膜烧碱装置岗位操作规程
- 人文景观设计
- 品质人员考试试题及答案
- 钢材购销业务管理制度
- 2025年常州机电职业技术学院高职单招语文2019-2024历年真题考点试卷含答案解析
- 新生儿股外侧肌肉注射
- 2025年徽商职业学院单招职业适应性考试题库及答案1套
- 房屋解封申请书范本
- 裂隙等密度(玫瑰花图)-简版
- 中职高教版(2023)语文职业模块-第七单元7.3北斗每一颗星都在闪亮【课件】
- 妇产科护理技能实训 课件 1.2.1会阴擦洗
评论
0/150
提交评论