《2022年浙江计算机二级C语言程序设计上机题 .pdf》由会员分享,可在线阅读,更多相关《2022年浙江计算机二级C语言程序设计上机题 .pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一字符:改错 1 在考生目录下,有Modify.c 程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数f,从字符串中删除所有的数字字符。#include#include#include void f(char*s)int i=0;while(si!=0)if(isdigit(si)_1_(s+i,s+i+1);_2_ i+;void main()char str80;gets(str);f(str);puts(str);改错 2 在考生目录下,有Modify.c 程序,该程序中/*N*/的下一行中有错误,请
2、改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入1 个字符串,输出其中所出现过的大写英文字母。如运行时输入字符串FONTNAME and FILENAME,应输出 F O N T A M E I L。#include void main()char x80,y26;int i,j,ny=0;gets(x);for(i=0;xi!=0;i+)if(xi=A&xi=Z)for(j=0;jny;j+)/*1*/if(yi=xj)continue;if(j=ny)yny=xi;ny+;/*2*/for(i=0;i26;i+)printf(%c,yi);printf(n);改错
3、3 在考生目录下,有Modify.c 程序,该程序中/*N*/的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 18 页 -#include#include void main()char a80;int n5=0,i;gets(a);for(i=0;ai!=0;i+)/*1*/switch(toupper(ai)case a:n0+;break;case e:n1+;break;case i:n2+;break;case o:n3+;break;
4、/*2*/case U:n4+;for(i=0;i5;i+)printf(%dn,ni);改错 4 在考生目录下,有Modify.c 程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数f,将字符串中的所有字符逆序存放,然后输出。例如,输入字符串为123456,则程序的输出结果为654321。#include#include void main()char s60,*f(char*);gets(s);printf(%sn,f(s);_1_ f(char*x)char t;int i,n;_2_ for(i=0
5、;in/2;i+)t=xi;xi=xn-1-i;xn-1-i=t;return x;二、数学问题:改错 5 在考生目录下,有Modify.c 程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数f 计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7 时的值。#include float f(float,float*,int);void main()名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 18 页 -float b5=1.1,2.2,3
6、.3,4.4,5.5;printf(%fn,f(1.7,b,5);float f(_1_)float y=a0,t=1;int i;for(i=1;in;i+)t=t*x;y=y+ai*t;_2_ 改错 6 在考生目录下,有Modify.c 程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输出6 1000 之间的完数(1 个数的因子和等于其自身的数:6=1+2+3、28=1+2+4+7+14,则 6、28 都是完数)。#include void main()int i,j,s;for(i=6;i=1000;i+)
7、_ 1 _ for(j=2;_ 2 _;j+)if(i%j=0)s+=j;if(s=i)printf(%dn,s);改错 7 在考生目录下,有Modify.c 程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入 n 和平面上n个点的坐标,计算各点间距离的总和。#include#include#define f(x1,y1,x2,y2)sqrt(pow(x2-x1,2)+pow(y2-y1,2)_1_ void main()float*x,*y,s=0;int i,j,n;scanf(%d,&n);x=(floa
8、t*)malloc(sizeof(float)*n*2);y=x+_2_;for(i=0;in;i+)scanf(%f%f,x+i,y+i);for(i=0;in-1;i+)for(j=i+1;jn;j+)s+=f(xi,yi,xj,yj);printf(%.2fn,s);改错 8 在考生目录下,有Modify.c 程序,该程序中/*N*/的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 18 页 -该程序功能:运行时输入n,输出 n 各位数字之和(如 n=1308 则输出 12,n=-3204 则输出 9
9、)。#include#include void main()int n,s=0;scanf(%d,&n);n=fabs(n);/*1*/while(n1)s=s+n%10;/*2*/n=n%10;printf(%dn,s);改错 9 在考生目录下,有Modify.c 程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数f 用以求 1 元 2 次方程x*x+5*x-2=0 的实根。#include#include int f(float a,float b,float c,float*x1,float*x2)i
10、f(b*b-4*a*c0)_1_;*x1=(-b+sqrt(b*b-4*a*c)/2/a;*x2=(-b-sqrt(b*b-4*a*c)/2/a;return 0;void main()float u1,u2;float a=1,b=5,c=-2;if(_2_)printf(实数范围内无解n);else printf(%.2f%.2fn,u1,u2);改错 10 在考生目录下,有Modify.c 程序,该程序中/*N*/的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入x、eps,计算多项式1-x+x*x/2!-x*x*x/3!+.的和直到末项的绝对值
11、小于eps为止。#include#include void main()float x,eps,s=1,t=1,i=1;scanf(%f%f,&x,&eps);名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 18 页 -do /*1*/t=-t*x/+i;s+=t;/*2*/while(fabs(t)=eps)printf(%fn,s);改错 11 在考生目录下,有Modify.c 程序,该程序中_ N _ 是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:对 x=1,2,.,10,求 f(x)=x*x-5*x+sin(x)
12、的最大值。#include#include#define f(x)x*x-5*x+sin(x)void main()int i;float max;_ 1 _ for(i=2;i=10;i+)_ 2_ printf(%fn,max);改错 12 在考生目录下,有Modify.c 程序,该程序中/*N*/的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:运行时输入n,输出 n 的所有质数因子(如 n=13860,则输出2、2、3、3、5、7、11)。#include void main()int n,i;scanf(%d,&n);/*1*/i=1;while
13、(n1)if(n%i=0)printf(%dt,i);n/=i;else/*2*/n-;改错 13 在考生目录下,有Modify.c 程序,该程序中/*N*/的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 18 页 -该程序功能:输入 m、n(要求输入数均大于0),输出它们的最小公倍数。#include void main()int m,n,k;/*1*/while(scanf(%d%d,&m,&n),m0&n0);for(k=m;k%n!=0;)/*2*/k=k+n;printf(%dn,k);三、数组
14、:改错 14 在考生目录下,有Modify.c 程序,该程序中_ N _ 是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:函数 f 去除数组中的负数,输出结果为:1 3 4 6#include void f(int*a,int*m)int i,j;for(i=0;i*m;i+)if(ai0)for(j=i-;j*m-1;j+)aj=aj+1;_1_;void main()int i,n=7,x7=1,-2,3,4,-5,6,-7;_2_;for(i=0;in;i+)printf(%5d,xi);printf(n);改错 15 在考生目录
15、下,有Modify.c 程序,该程序中_ N _ 是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数f,求二维数组a中全体元素之和。#include float f(_1_)float y=0;int i,j;for(i=0;im;i+)for(j=0;jn;j+)y=y+*(*(x+i)+j);return y;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 18 页 -void main()float a34=1,2,3,4,5,6,7,8,9,10,11,12,*b3;int i;for(i=0;i3;i+)b
16、i=_2_;printf(%.2fn,f(b,3,4);改错 16 在考生目录下,有Modify.c 程序,该程序中_ N _ 是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数f,求 a 数组中最大值与b 数组中最小值之差。#include float f(float*x,int n,int flag)float y;int i;_1_ for(i=1;iflag*y)y=xi;return y;void main()float a6=3,5,9,4,2.5,1,b5=3,-2,6,9,1;printf(%.2fn,f(a,6,
17、1)-_2_);改错 17 在考生目录下,有Modify.c 程序,该程序中/*N*/的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:运行时输出下列结果。6 5 4 3 2 1 5 4 3 2 1 0 4 3 2 1 0 0 3 2 1 0 0 0 2 1 0 0 0 0 10 0 0 0 0#include void main()int i,j,a66=0;for(i=0;i6;i+)for(j=0;j6-i;j+)/*1*/aij=6-j-i;for(i=0;i6;i+)for(j=0;j6;j+)printf(%3d,aij);/*2*/print
18、f(n);名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 18 页 -四、循环:改错 18 在考生目录下,有Modify.c 程序,该程序中/*N*/的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:运行时输入10 个数,然后分别输出其中的最大值、最小值。#include void main()float x,max,min;/*1*/for(i=1;imax)max=x;if(xmin)min=x;printf(%f,%fn,max,min);改错 19 在考生目录下,有Modify.c 程序,该程序中_ N _ 是根据程序功能需要填充部分
19、,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入 1 个整数后,输出该数的位数(若输入3214 则输出 4,输入-23156 则输出 5)。#include void main()int n,k=0;scanf(%d,&n);while(_1 _)k+;_ 2_;printf(%dn,k);改错 20 在考生目录下,有Modify.c 程序,该程序中/*N*/的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入 n(0n10)后,输出1 个数字金字塔。如输入n 为 4,则输出:1 222 33333 4444444 名
20、师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 18 页 -#include void main()int i,j,n;/*1*/scanf(%d,n);for(i=1;i=n;i+)for(j=1;j=n+1-i;j+)putchar();for(j=1;j=2*i-1;j+)putchar(char)(i+48);/*2*/putchar(n);改错 21 在考生目录下,有Modify.c 程序,该程序中/*N*/的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:运行时若输入a、n 分别为 3、6,则输出下列表达式的值:3+33+333+3
21、333+33333+333333#include void main()int i,a,n,t=0;/*1*/s=0;scanf(%d%d,&a,&n);for(i=1;i=n;i+)/*2*/t=t*10+i;s=s+t;s=s*a;printf(%dn,s);改错 22 在考生目录下,有Modify.c 程序,该程序中_ N _ 是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:运行时输出下列结果。a abc abcde abcdefg#include 名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 18 页 -void
22、 main()int i,j;for(i=1;i=4;i+)for(j=1;j=4-i;j+)putchar();for(_1_)putchar(char)(a-1+j);_2_ 改错 23 在考生目录下,有Modify.c 程序,该程序中_ N _ 是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:运行时输出下列结果。abcdefg abcde abc a#include void main()int i,j;char k;for(i=1;i=4;i+)for(j=1;j0;j-)k=(char)k+;_ 2_ putchar(n);改
23、错 24 在考生目录下,有Modify2.c 程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:函数 f 将数组循环左移k 个元素,输出结果为:4 5 6 7 1 2 3#include void f(int*a,int n,int k)int i,j,t;for(i=0;ik;i+)_1_;for(_2_)aj-1=aj;an-1=t;名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 18 页 -void main()int i,x7=1,2,3,4,5,6,7;f(x,7,3);for(i=0;i
24、7;i+)printf(%5d,xi);printf(n);改错 25 在考生目录下,有Modify.c 程序,该程序中_ N _ 是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:函数 f 将 1 个整数首尾倒置,程序输出结果应为54321-76543。#include#include int f(int n)int m,y=0;m=fabs(n);while(m!=0)y=y*10+m%10;_1_ if(n=0)return y;else _2_ void main()printf(%dt,f(12345);printf(%dn,f
25、(-34567);程序设计1/*程序设计题:xi,yi 分别表示平面上1 个点的 x、y 坐标,求下列 5 点各点间距离总和,并将该数以格式%.4f 写到考生目录下新建文件design.dat。*/#include#include void main()FILE*p;float s,x5=-1.5,2.1,6.3,3.2,-0.7;float y5=7,5.1,3.2,4.5,7.6;int i,j;/此处起要求考生自己编制程序程序设计2/*程序设计题:在正整数中找出1 个最小的、被 3、5、7、9 除余数分别为1、3、5、7 的数,将该数以格式%d 写到考生目录下新建文件design.dat
26、。*/#include#include void main()/此处起要求考生自己编制程序名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 18 页 -程序设计3/*程序设计题:数列第 1 项为 81,此后各项均为它前1 项的平方根,统计该数列前 30 项之和,并以格式%.3f 写到考生目录下新建文件design.dat*/#include#include void main()FILE*p;float s=0,a=81,i;/此处起要求考生自己编制程序 程序设计4/*程序设计题:将数组 a 的每 1 行均除以该行上绝对值最大的元素,然后将 a数组写入到考生目录下新建文件desi
27、gn.dat。*/#include#include void main()float a33=1.3,2.7,3.6,2,3,4.7,3,4,1.27;FILE*p;float x;int i,j;/此处起要求考生自己编制程序p=fopen(design.dat,w);for(i=0;i3;i+)for(j=0;j3;j+)fprintf(p,%10.6f,aij);fprintf(p,n);fclose(p);程序设计5/*程序设计题:在 6 至 5000 内找出所有的亲密数对,并将每对亲密数用语句fprintf(p,%6d,%6dn,a,b);写到考生目录下新建文件design.dat。*
28、/*说明:若a、b 为 1 对亲密数,则a的因子和等于b、b 的因子和等于a、且 a*/*不等于 b。如:220、284 是 1 对亲密数,280、220 也是 1 对亲密数。*/#include void main()FILE*p;int a,b,c,k;名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 18 页 -p=fopen(design.dat,w);/此处起要求考生自己编制程序 程序设计6/*程序设计题:函数 root 返回满足条件f(a)*f(b)0的方程在 a,b区间内的1 个实根,用区间对分法求解,限差为 0.00001。将方程x*x-5sin(x)-4=0的根
29、以格式%9.6f 写入到考生目录下新建的文件design.dat?*/#include#include float g(float x)return x*x-5*sin(x)-4;float root(float a,float b,float eps,float(*f)(float)float c;while(c=(a+b)/2,fabs(f(c)=eps&fabs(b-a)=eps)if(f(a)*f(c)0)b=c;else a=c;return c;void main()/此处起要求考生自己编制程序 程序设计7/*程序设计题:计算表达式1+2!+3!+.+12!的值,并将计算结果以格式
30、%d 写入到考生目录下新建的文件design.dat。?*/#include void main()FILE*p;int s=1,k=1,i;/此处起要求考生自己编制程序 程序设计8/*程序设计题:计算数列1,-1/3!,1/5!,-1/7!,1/9!,.的和至某项的绝对值小于1e-5名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 18 页 -时为止(该项不累加),将求和的结果以格式%.6 写到考生目录下*/*新建文件design.dat。*/#include#include void main()FILE*p;float s=1,t=1,i=3;/此处起要求考生自己编制程序
31、程序设计9/*a、b、c 为区间 1,100的整数,统计使等式c/(a*a+b*b)=1 成立的所有解的个数,并将统计数以格式%d写入到考生目录下新建文件design.dat(若 a=1、b=3、c=10 是 1 个解,则 a=3、b=1、c=10 也是解)*/#include void main()FILE*p;int n=0,a,b,c;/此处起要求考生自己编制程序 程序设计10/*程序设计题:z=f(x,y)=(3.14*x-y)/(x+y),若 x、y 取值为区间 1,6的*/*整数,找出使z 取最小值的x1、y1,并将 x1、y1 以格式%d,%d 写入到考*/*生目录下新建文件de
32、sign.dat?*/#include void main()FILE*p;float f(float x,float y),min;int x,y,x1,y1;/此处起要求考生自己编制程序名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 18 页 -float f(float u,float v)return(3.14*u-v)/(u+v);程序设计11/*程序设计题:数组元素xi、yi 表示平面上某点坐标,统计10 个点中同处在圆*/*(x-1)*(x-1)+(y+0.5)*(y+0.5)=25与(x-0.5)*(x-0.5)+y*y=36内的点数k,并将变*/*量 k 的值
33、以格式%d 写到考生目录下新建文件design.dat。*/#include#include void main()FILE*p;int i,k=0;float x=1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65;float y=-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33;/此处起要求考生自己编制程序 程序设计 12/*程序设计题:将字符串s中的所有字符按ASCII 值从小到大重新排序后,将*/*排序后的字符串写入到考生目录下新建的文件design.dat。*/C#include#include v
34、oid main()FILE*p;char*s=634,.%w|SQ2,c;int i,j,k,n=strlen(s);/此处起要求考生自己编制程序for(i=0;in;i+)fputc(si,p);fclose(p);程序设计 13/*程序设计题:在 6 至 10000 内找出所有的完数,并顺序将每个完数用语句*/*fprintf(p,%6d,n)写入到考生目录下新建的文件design.dat。*/*说明:某数等于其诸因子之和则该数为完数,如6=1+2+3,28=1+2+4+7+14*/名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 18 页 -/*则 6、28 就是完数。*
35、/#include void main()FILE*p;int n,i,s;/此处起要求考生自己编制程序 程序设计14/*程序设计题:对 x=1,2,.,10,求函数f(x)=x-10*cos(x)-5*sin(x)的*/*最大值,并将该数以格式%.3f 写到考生目录下新建文件design.dat。*/#include#include void main()FILE*p;float f(float),max,x;/此处起要求考生自己编制程序程序设计15/*程序设计题:数组元素xi、yi 表示平面上某点坐标,统计所有各点*/*间最短距离,并将其值以格式%f 写到考生目录下新建文件design.d
36、at。*/#include#include#define len(x1,y1,x2,y2)sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)void main()FILE*p;int i,j;float c,minc;float x=1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65;float y=-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33;minc=len(x0,y0,x1,y1);/此处起要求考生自己编制程序名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 18
37、页 -程序设计16/*程序设计题:统计满足条件x*x+y*y+z*z=2000的所有解的个数,并将统计*/*结果以格式%d写入到考生目录下新建的文件design.dat。?*/*说明:若a、b、c 是 1 个解,则a、c、b 也是 1 个解,等等。*/#include void main()FILE*p;int x,y,z,k=0;/此处起要求考生自己编制程序 程序设计 17/*程序设计题:将数组 a的每 1 行均除以该行上的主对角元素(第 1 行同除以*/*a00,第 2 行同除以a11,.),然后将a数组写入到考生目录下*/*新建的文件design.dat。*/#include void
38、main()float a33=1.3,2.7,3.6,2,3,4.7,3,4,1.27;FILE*p;/此处起要求考生自己编制程序for(i=0;i3;i+)for(j=0;j3;j+)fprintf(p,%10.6f,aij);fprintf(p,n);fclose(p);程序设计18/*程序设计题:xi,yi 表示点 d(i)的平面坐标,求d(0)至 d(1)、d(1)至 d(2)、*/名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 18 页 -/*.、d(4)至 d(0)的连线所构成的5 边形面积,并将所求面积以格式%.4f 写到考*/*生目录下新建文件design.dat。*/#include#include void main()FILE*p;int i;float s,a,b,c,sdim=0;float x5=-4.5,0.5,4.2,2.7,-3;float y5=2.3,4.7,1.3,-2.5,-3.3;p=fopen(design.dat,w);/此处起要求考生自己编制程序 fprintf(p,%.4f,sdim);fclose(p);名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 18 页 -