二级C语言往年试题.docx
- 文档编号:27212399
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:20
- 大小:19.59KB
二级C语言往年试题.docx
《二级C语言往年试题.docx》由会员分享,可在线阅读,更多相关《二级C语言往年试题.docx(20页珍藏版)》请在冰豆网上搜索。
二级C语言往年试题
【121105001·Design1】设计编写并运行程序,完成以下功能:
z=f(x,y)=10*cos(x-4)+5*sin(y-2),x,y取值为区间[0,10]的整数,找出使z取最小值的x1,y1,并将x1,y以格式”%d,%d”写入到考生文件夹中Paper子文件夹下的新建文件Design.dat。
(frequency:
3)
#include
#include
voidmain()
{
FILE*p;
intx,y,x1,y1;floatz,z1;
z1=10*cos(0-4)+5*sin(0-2);
for(x=0;x<=10;x++)
for(y=0;y<=10;y++)
if((z=10*cos(x-4)+5*sin(y-2)) { z1=z; x1=x; y1=y; } p=fopen("design1.dat","w"); fprintf(p,"%d,%d",x1,y1); fclose(p); } 【121105001·Design2】设计编写并运行程序,完成以下功能: 计算字符串s中的每个字符的权重值,所谓权重值就是字符在字符串中的位置值与该字符的ASCII码值的乘积。 位置只从1开始依此递增。 将每个字符的权重值,以格式”%d”写入到考生文件夹中paper子文件夹下的新建文件Design2.dat。 (frequency: 2) #include #include voidmain() { FILE*p;inti,w; char*s="we45*&y3r#$1"; p=fopen("design1.dat","w"); i=1; while(*s! ='\0') { w=*s*i; fprintf(p,"%d",w); s++; i++; } fclose(p); } 【121105002·Design1】数列第一项为81,此后各项均为它前一项的正平方根,统计该数列前30项之和后,并以格式"%.3f"写入到考生文件夹下的新建文件Designl.dat。 (frequency: 3) #include #include voidmain() { FILE*p;floats=0,a=81;inti; for(i=1;i<=30;i++) { s=s+a; a=sqrt(a); } p=fopen("Design1.dat","w"); fprintf(p,"%.3f",a); fclose(p); } 【121105002·Design2】数组元素x[I],y[I]表示平面上某点坐标,统计10个点中处在圆(方程为: (x-1)*{x-1}+{y+0.5}*{y+0.5}=25)内的点数k,并将变量k的值以格式"%d"写入到考生文件夹下新建文件Design2.dat。 (frequency: 3) #include #include voidmain() {FILE*p;inti,k=0; floatx[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65}; floaty[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33}; for(i=0;i<10;i++) if((x[i]-1)*(x[i]-1)+(y[i]+0.5)*(y[i]+0.5)<25) k++; p=fopen("Design2.dat","w"); fprintf(p,"%d",k); fclose(p); } 【121105004·Design1】计算多项式a0-a1*x+a2*x*x/2! -a3*x*x*x/3! +…-a9*x*x*x*x*x*x* x*x*x/9! 的值,并将结果一格式"%f"写入到考生文件夹中Paper子文件夹下的新建文件Des ign1.dat。 (frequency: 2) #include #include voidmain() {FILE*p;inti;floatx=1.279,t,y; floata[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65}; y=0.0; t=1; for(i=0;i<10;i++) { y=y+a[i]*t; t=(-t)*x/(i+1); } p=fopen("Design1.dat","w"); fprintf(p,"%f",y); fclose(p); } 【121105004·Design2】求斐波那挈数列中其前40项之和,并将求和的结果以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。 斐波那挈数列的第一项和第二项是1,以后各项是前两项之和,如: 11235813………。 (frequency: 2) #include voidmain() { FILE*p;longs=0,i,a[40]; a[0]=a[1]=1; s+=a[0]+a[1]; for(i=2;i<40;i++) { a[i]=a[i-1]+a[i-2]; s+=a[i]; } p=fopen("Design2.dat","w"); fprintf(p,"%d",s); fclose(p); } 【121105005·Design1】程序功能: 累加a字符串中各个字符的ASCII码值,然后将累加和以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。 #include voidmain() {FILE*p;ints=0,i=0; char*a="r235%^%34cdDW,."; while(a[i]! ='\0') { s=s+a[i]; i++; } p=fopen("Design1.dat","w"); fprintf(p,"%d",s); fclose(p); } 【121105005·Design2】程序功能: 在数组x的10个数中求平均值v,找出与v相差最小的数组元素并将其以格式"%.5f"写入考生文件夹Paper子文件夹下的新建文件Design2.dat。 #include #include voidmain() {FILE*p;inti,k=0; floatx[10]={7.23,-1.5,5.24,2.1,-12.45,6.3,-5,3.2,-0.7,9.81},d,v=0; for(i=0;i<10;i++)v+=x[i]; v=v/10; d=fabs(x[0]-v); for(k=1;k<10;k++) if(fabs(x[k]-v) p=fopen("Design2.dat","w"); fprintf(p,"%.5f",d); fclose(p); } 【121105006·Design2】计算表达式1+2! +3! ……+12! 的值,并将计算结果以格式"%ld"写入到考生文件夹中paper子文件夹下的新建文件Design2.dat。 #include voidmain() {FILE*p; longs=1,k=1; inti; for(i=2;i<=12;i++) { k=k*i; s=s+k; } p=fopen("design1.dat","w"); fprintf(p,"%ld",s); fclose(p); } 【121105008·Design1】已知公鸡每只5元,母鸡每只3元,小鸡1元3只。 求出用100元买100只鸡的解。 求得到的解按公鸡、母鸡和小鸡的只数以"%d,%d,%d\n"的格式写入到考生文件夹中Paper子文件下的新建文件Design1.dat。 (frequency: 3) #include voidmain() {FILE*p; intcock,hen,chick; p=fopen("Design1.dat","w") for(cock=0;cock<=19;cock++) for(hen=0;hen<=33;hen++) if((chick=100-cock-hen)%3==0) if(cock*5+hen*3+chick/3==100) fprintf(p,"%d,%d,%d\n",cock,hen,chick); fclose(p); } 【121105010·Design1】设计编写并运行程序,完成以下功能: 某公司1999年年产量11。 5万件,生产能力每年提高9。 8%,求出产量能超过x万件的年份,结果有函数Year返回,分别计算当x=20和x=30时的结果,将计算结果写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。 (frequency: 2) #include intYear(intx) { intp=11.5,y=1999; while(p { p=p*(1+0.098); y++; } returny; } voidmain() { voidmain() { FILE*p; p=fopen("design.dat","w"); fprintf(p,"%d,%d",Year(20),Year(30)); fclose(p); } 【121105010·Design2】设计编写并运行程序,完成以下功能: 利用公式ㄦ/4=1-1/3+1/5-1/7 +……..公式计算的近似值,直到某一项的绝对值小于1e-6为止。 (将结果不包含此项)将计算结果以格式写入到考生文件夹中Paper子文件夹下的新建Design2.dat。 #include #include voidmain() { FILE*fp; floatn=1,t=1,pi=0; inti; do { pi=pi+t/n; t=-t; n+=2; }while(fabs(t/n)>=1e-6); fp=fopen("Desing2.dat","w"); fprintf(fp,"%f",4*pi); fclose(fp); } 【121105011·Design1】完成以下功能: 在整数数组a中找出偶数放到b数组中,对b数组按从小到大的顺序进行排序后以格式"%3d"每行3个数写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。 (frequency: 2) #include voidmain() {FILE*p; inti,j,temp,n=0; inta[10]={7,6,20,3,14,88,53,62,10,29},b[10]; for(i=j=0;i<10;i++) if(a[i]%2==0) { b[j]=a[i]; j++; } n=j; for(i=1;i<=n-1;i++) for(j=i;j<=n-i;j++) if(b[j-1]>b[j]) { temp=b[j-1]; b[j-1]=b[j]; b[j]=temp; } p=fopen("design1.dat","w"); for(i=0;i { fprintf(p,"%3d",b[i]); if((i+1)%3==0)fprintf(p,"\n"); } fclose(p); } 【121105012·Design1】设计编写并运行程序,并完成以下功能: 统计满足条件x*x+y*y+z*z==2000的所有解的个数,(注意: 若a、b、c为1个解,则a、c、b也是1个解,等等)。 并将统计结果以格式"%d"写入到考生文件夹中Paper子文件下的新建文件Design1.dat。 (frequency: 2) #include voidmain() {FILE*p;intx,y,z,k=0; for(x=-44;x<=44;x++) for(y=-44;y<=44;y++) for(z=-44;z<=44;z++) if(x*x+y*y+z*z==2000)k++; p=fopen("design2.dat","w"); fprintf(p,"%d",k); fclose(p); } 【121105012·Design2】设计编写并运行程序,并完成以下功能: 将字符串s中所有字符按ASCII值从小到大重新排序后,将排序后的字符串写入到考生文件夹中Paper子文件下的新建文件Design2.dat。 (frequency: 2) #include #include voidmain() {FILE*p;char*s="634,.%@\\w|SQ2",c; inti,j,k,n=strlen(s); for(i=1;i<=n-1;i++) for(j=i;j<=n-i;j++) if(s[j-1]>s[j]) { c=s[j-1]; s[j-1]=s[j]; s[j]=c; } p=fopen("Design2.dat","w"); for(i=0;i fclose(p); } 【121105014·Design1】功能: 计算500~800区间内素数的个数cnt和素数和sum。 请编写函数JSValue()实现程序的要求。 最后把cnt和sum得值写入到考生文件夹中Paper子文件夹Design1.dat。 (frequency: 3) #include intcnt,sum; voidJSValue() { inti,j,half; sum=0; cnt=0; for(i=500;i<=800;i++) { half=i/2; for(j=2;j<=half;j++) if(i%j==0)break; if(j>half) { sum=sum+i; cnt++; } } } voidmain() { FILE*p; p=fopen("design.dat","w"); JSValue(); fprintf(p,"%d,%d",cnt,sum); fclose(p); } 【121105014·Design2】有数列: 2/1,3/2,5/3,8/5,13/8,21/13,.......求出数列的前40项的和。 将计算结果以格式"%.6f"写入到考生文件夹中Paper子文件夹下的新文件夹Design2.dat。 #include voidmain() { FILE*p; inti; floatf1=1.0,f2=2.0,t1=2.0,t2=3.0,s; floatf,t; s=t1/f1+t2/f2; for(i=3;i<=40;i++) { t=f2+t2; f=t2; t2=t; f2=f; s=s+t2/f2; } p=fopen("design2.dat","w"); fprintf(p,"%.6f",s); fclose(p); } 【121105015·Design1】寻找并输出11至999之间的数m,它满足m,m*m,m*m*m均为回文数。 说明: 所谓回文数是指各位数字左右对称,例如121,676,94249等。 满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。 (frequency: 4) #include #include #include intJSValue(longm) { longm1=m; longn=0; while(m1) { n=10*n+m1%10; m1=m1/10; } returnn==m; } voidmain() { FILE*p;longm; p=fopen("design.dat","w"); for(m=11;m<1000;m++) { if(JSValue(m)&&JSValue(m*m)&&JSValue(m*m*m)) fprintf(p,"%ld",m); } fclose(p); } 【121105017·Design1】程序功能是: 将数组a的每1行均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],……),然后将a数组写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。 (frequency: 2) #include voidmain() {floata[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; FILE*p; inti,j; for(i=0;i<3;i++) for(j=2;j>=0;j--) a[i][j]=a[i][j]/a[i][i]; p=fopen("Design1.dat","w"); for(inti=0;i<3;i++){ for(intj=0;j<3;j++)fprintf(p,"%10.6f",a[i][j]); fprintf(p,"\n"); } fclose(p); } 【121105022·Design2】x[i],y[i]分别表示平面上1个点的x,y坐标。 求下列5点各点间距离总和,并将该数以格式"%.4f"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。 #include #include voidmain() {FILE*p;floats,x[5]={-1.5,2.1,6.3,3.2,-0.7}; floaty[5]={7,5.1,3.2,4.5,7.6};inti,j; s=0.0; for(i=0;i<=3;i++) for(j=i+1;j<=4;j++) s=s+sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])); p=fopen("Design2.dat","w"); fprintf(p,"%.4f",s); fclose(p); } 【121105023·Design1】在数组a的10个数中求平均值v,将大于等于v的数组元素进行求和,并将结果以格式"%.5f"写入到考生文件夹中paper子文件夹下的新建文件Design1.dat。 (frequency: 2) #include voidmain() { inti; floata[10]={7.23,1.5,5.24,2.1,2.45,6.3,5,3.2,0.7,9.81},sum,v=0; sum=0.0; for(i=0;i<10;i++) sum=sum+a[i]; v=sum/10; sum=0.0; for(i=0;i<10;i++) if(a[i]>=v)sum=sum+a[i]; p=fopen("Design1.dat","w"); fprintf(p,"%.5f",sum); fclose(p); } 【121105028·Design1】x[i],y[i]分别表示平面上一点的坐标,求下列10个点与点(1.0,1.0)的距离的总和,并将结果以格式"%.6f"写入到考生文件夹中paper子文件夹下的新建文件design1.dat。 #include #include voidmain() { FILE*p; inti; floatx[10]={-1.5,2.1,6.3,3.2,-0.7,7.0,5.1,3.2,4.5,7.6}; floaty[10]={3.5,7.6,8.1,4.5,6.0,1.1,1.2,2.1,3.3,4.4}; floats=0.0; for(i=0;i<10;i++) s+=sqrt((x[i]-1.0)*(x[i]-1.0)+(y[i]-1.0)*(y[i]-1.0)); p=fopen("Design1.dat","w"); fprintf(p,"%.6",s); fclose(p); } 【121105330·Design1】设计编写程序并运行,完成以下功能: 将数组a的每1行均除以该行上绝对值最大的元素,然后将a数组写入到考生文件夹中paper子文件夹下的新建文件Design1.dat。 #include #include voidmain() {floata[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; FILE*p;floatx;inti,j; for(i=0;i<3;i++) { x=fabs(a[i][0]); for(j=1;j<3;j++) if(fabs(a[i][j])>x)x=fabs(a[i][j]); for(j=0;j<3;j++) a[i][j]=a[i][j]/x; } p=fopen("design.dat","w"); for(i=0;i<3;i++){ for(j=0;j<3;j++)fprintf(p,"%10.6f",a[i][j]); fprintf(p,"\n"); } fclose(p); } 【121105330·Design2】若a,b为1对亲密数,则a的因子和等于b,b的因子和等于a,且a不等于b。 如: 220,284是1对亲密数,284,220也是一对亲密数。 在6至5000内找出所有的亲密数对,并将每对亲密数用语句fprintf(p,"%6d,%6d\n",a,b)写入到考生文件夹中paper子文件夹下的新建文件D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 往年 试题