《2025年全国计算机等级考试二级c语言上机精选题库(共55套).docx》由会员分享,可在线阅读,更多相关《2025年全国计算机等级考试二级c语言上机精选题库(共55套).docx(64页珍藏版)》请在第壹文秘上搜索。
1、2025年全国计算机等级考试二级c语言上机精选题库(共55套)第1套题一、填空题请补充main函数,该函数的功能是:计算每个学生科目的平均分,并把结果保存在数组bb中。例如,当scoreNM=(78.5,84,83,65,63),88,91.5,89,93,95),72.5,65,56,75,77时,三个学生的平均分为:74.791.369.1o仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。#includc#defineN3#dcfineM5main()(inti.j;sialicIloalscorcNMJ=78.5,84,83,65,63J,行include*found
2、*s*/fun(intm)(doubley=0.d;inti;*Uund*/for(i=l(X).i=ni+=100)(d=(double)i*(double)i;y+=1.0d;)return(y);)main()(intn=2000;printf(nTheresultis%IAn,fun(n);)三、编程题请编写函数fun,该函数的功能是:统计个年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中:要求函main()intageN,i,dM;FI1.E*out;for(i=0;iN;i+)agei=(int)(l15*rnd();printf(Tleoriginaldat
3、a:n);for(i=0;iN;i+)printf(i+l)%0=07%4dnf,%4d,ageli);printf(nn);fun(age,d);out=fopen(out.dat,w);for(i=0;i=50&ali=60&ai=70&a|i=80&ali=90&ai)=99)b9+=l;elseb101+=1;)第2套:填空题请补充main函数,该函数的功能是:从键盘输入一组字符串,以*结束输入,并显示出这个字符串。例如,输入abcdef*,结果显示abcdef。仅在横线上添入所编写的若干表达式或语句,勿改动函数中的其他任何内容。tfincludedefineN80main()(int
4、i=-1,j=0:charstrN;printf(z,nInputastringn);doprintf(Thelowest:%s,%dn.m.num.m.s);第二题:下列给定程序中,函数fun的功能是:将字符串P中的所有字符复制到字符串b中,要求每复制三个字符之后插入一个空格。例如,在调用fu11函数之前给字符串a输入Abcdefghijk,调用函数之后,字符串之后,字符串b中的内容则为ABCDEFGHIJK。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#includcvoidfun(char*p,char*b)(inti.k=
5、0:while(*p)(/*砧Und*/i=0;*tbund*/while(i3&*)(bkj=*p;k+;P+;i+;/才木车次*牟*Uund*木本木本率*/if(*p)blk+l)bk=30;)main()(chara80.b80;printf(Enterastring:,);gets(八);printf(Theoriginalsiring:);puts(八);fun(a,b);printf(nThestringafterinsertspace:);uts(b);printf(nn);)第三题:请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的
6、值不大于1000。例如,若主函数从键盘给n输入的值为856,则输出为sum=763o请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#includcintfun(intn)main()(intn,sum;FI1.E*out;printf(Inputn:);scanf(ln);sum=fun(n);Prinlf(sum=%dn,sum);out=fopen(out.dat,w);fprintf(out,%dn,fun(123);frintf(out,%dn,fun(456);fprintf(out,%dn,fun(789);fpinlf(ot.%dn,
7、fun(147);fprintf(out,%d,fun(258);fclose(out);intfun(intn)(ints=0.i;for(i=2;i=n-1;i+)if(n%i=0)s+=i;returns;chars100,l100,Msg=PleaseCnlcrstringS:;FI1.E*out;printf(Msg);scanf(%s.s);fun(s,t);printf(nTheresultis:%sn,t);out=fopen(out.dat,w);fun(Msg.t);fprintf(out,%s,t);Iclose(out);)答案:第一题:第1处填空strli!=喊!=s
8、trlij第2处填空i+i或i+=l或i=i+l第二题:第I处:C=C-32;应改为c=c+32;第2处:c=c-5;应改为c=c+5;第三题:voidfun(char*s,chart)(intI,j=0,n;n=strlen(三);for(i=OJnj+)if(si%2=0)(ljl=si;j+;)tj=O第5套填空题请补充main函数,该函数的功能是:输出一个N*N矩阵,要求非周边元素赋值0,周边元素赋值1。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他内容。/*RJUnd*/Sl=sl*100;)main()(longs,i;printf(nPleaseenters:);sc
9、anf(%ld,&s);fun(s,&t);rintf(Theresultis:%ldn,t);编程题清编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在C中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在C数的十位和千位上。例如,当a=4如b=I2,调用该函数后,c=24150请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include#includevoidfun(inta,in(b,long*c)main()(inta.b:longc;FI1.E*out;printf(Inpu
10、ta,b;);scanf(%d%d,&a,&b);fun(a.b,&c);printf(Theresultis:%ldn,c);out=fopen(out.dat,w);for(a=20;a50;a+=3)fun(a,l()9-a.&c);frintf(out,%ldn,c);printf(n=%dn,n);3;main()printf(,%fn,zfun(50);第1处填空:=第2处填空:n+或n+=l或n=n+l第3处填空:returnS或return(三)改错题下列给定程序中,函数fun的功能是:根据整型参m的值,计算如下公式的值。例如,若m中的值为5,则应输出:0.536389请改正程
11、序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#includedoublefun(intm)doubley=1.0;inti;*found*/for(i=2;im;i+)/*,*found*/y-=1/(i*i);return(y);main()intn=5;printf(11nTheresultis%lfnzfun(n);第I处:for(i=2:im:i+)应改为for(i=2;i=m;j+)第2处:y-=l(i*i);应改为y-=1.0(i*i)编程题请编写一个函数voidlun(chara,charb11J
12、ntn),其功能是:删除一j+;)bj=O;1第7套填空题函数fun的功能是:统计长整数n的各个位上出现数字1,2,3的次数,并通过外部(全局)变量cl,c2,c3返回主函数。例如,当=123114350时,结果应该为:cl=3,c2=l,c3=2.注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序如下:Sincludeintcl,c2,c3;voidfun(longn)cl=c2=c3=0;while(n)switch(1)(case 1:cl+;2;case 2:c2+;3;case 3:c3+;n/=10;main()longn=1231143501.;fun(n);printf(11nTheresult:n);for(i=0;im;i+)printf(%dz