《浙江省高校计算机等级考试C程序设计上机模拟题(共44页).doc》由会员分享,可在线阅读,更多相关《浙江省高校计算机等级考试C程序设计上机模拟题(共44页).doc(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上浙江省高校计算机等级考试C程序设计上机模拟题第三部分C程序设计上机模拟题(一)上机修改题1. 在考生目录下,有Modify.c程序,该程序中”/*N*/”的下一行中 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:输入m、n(要求输入数均大于0),输出它们的最小公倍数 /*find the lease common multiple of m and n*/ #include void main() int m,n,k; /*1*/ while(scanf(%d%d,&m,&n),m0&n0); / m0| n0 for(k=m;k%n
2、!=0;) /*2*/ k=k+m%n; /k=k+m printf(%dn,k); 2. 在考生目录下,有Modify.c程序,该程序中/* N */的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值:3+33+333+3333+33333+ #include void main() int i,a,n,t=0; /* 1 */s=0; / int s=0; scanf(%d%d,&a,&n);for(i=1;i=n;i+) /* 2 */ t=t*10+i; / t=t*10+1; s=s+t; s=
3、s*a; printf(%dn,s);3. 在考生目录下,有Modify.c程序,该程序中/* N */的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:运行时输入n,输出n各位数字之和(如n=1308则输出12,n=-3204则输出9)。#include #include void main() int n,s=0; scanf(%d,&n);n=fabs(n);/* 1 */ while(n1) / ns=s+n%10;/* 2 */ n=n%10; / n=n/10; printf(%dn,s); 4. 在考生目录下,有Modify.c程序,该程序中
4、/* N */的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入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(yj=xi) break; if(j=ny) yny=xi; ny+;
5、 /* 2 */ for(i=0;i26;i+) / iny printf(%c ,yi); printf(n); 5. 在考生目录下,有Modify.c程序,该程序中/* N */的下一行中有错误, 请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入x、eps,计算多项式1-x+x*x/2!-x*x*x/3!+.的和直到末项的绝对值小于eps为止。#include #include void main( ) float x,eps,s=1,t=1,i=1; scanf(%f%f,&x,&eps); do/* 1 */ t = -t * x/ +i; /t = -t *
6、 x / i+;s += t; /* 2 */ while( fabs(t ) = eps) /少 ; printf(%fn,s);6. 在考生目录下,有Modify.c程序,该程序中/* N */的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。#include #include void main() char a80; int n5=0,i; gets(a); for(i=0; ai!=0; i+) /* 1 */ switch(tolower(a+i) / switch(tolower(ai) cas
7、e a: n0+; break; case e: n1+; break; case i: n2+; break; case o: n3+; break; /* 2 */ case U: n4+; break; /u for(i=0;i5;i+) printf(%dn,ni); 7. 在考生目录下,有Modify.c程序,该程序中/* N */的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)该程序功能:输入n(0n10)后,输出1个数字金字塔。如输入n为4,则输出:1 222 33333 #include void main() int i,j,n; /* 1 */ s
8、canf(%d, n); /&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); /n 8. 在考生目录下,有Modify.c程序,该程序中/* N */的下一行中 有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:运行时输入10个数,然后分别输出其中的最大值、最小值。 #include void main() float x,max,min; /* 1 */ for(int i=1;i=10;i
9、+) / C中不能这样用, 改为:int i; for( i=1; imax) max=x; if(xmin) min=x; printf(%f,%fn,max,min); 9. 在考生目录下,有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; / i=2; while(n1) if(n%i=0) prin
10、tf(%dt,i); n/=i; else /* 2 */ n-; /i+; 10. 在考生目录下,有Modify.c程序,该程序中“/* N */”的下一行中有错误,请改正(注意:不得加行、减/行、加句、减句,否则后果自负)。 该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。 #include #include #include void main() int n,i; /* 1 */ char str; /char *str scanf(%dn,&n);str=(char*)malloc(n); gets(str); /* 2 */ f
11、or(i=1;i=a& stri=z)stri=stri-32 ; puts(str); (二)上机填充题1. 在考生目录下,有Modify.c程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:输入m、n(要求输入数均大于0),输出它们的最大公约数。 #include void main() int m,n,k; while(scanf(%d%d,&m,&n); _1_ ) ; / m0| n0 for( _2_;n%k!=0|m%k!=0;k-); / k=mn?m:n printf(%dn,k); 2. 在考
12、生目录下,有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 ; / m=m/10 if(n=0) return y; else 2 ; /return ( -y); void main() printf(%dt,f(12345);printf(%dn,f(-34567);3
13、. 在考生目录下,有Modify.c程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入1个整数后,输出该数的位数若输入3214则输出4,输入-23156则输出5)。#include void main() int n,k=0; scanf(%d,&n); while( 1 ) /n%10 k+; 2 ; / n=n/10 printf(%dn,k);4. 在考生目录下,有Modify.c程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功
14、能:运行时输出下列结果。 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+; printf(“%c”, 2 ); /k-1 putchar(n);5. 在考生目录下,有Modify.c程序,该程序中_ N _是根据程序功能需要填充 部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:输入整数n(n0)求m,使得2的m次方小于或等于n、2的m+1次方大于或等于n。 #include void main() int i=
15、0,t=1,n; while( _ 1 _); /scanf(“%d”,&n),n=0 while(!(t=n) _ 2 _ /t=t*2; i+; printf(%dn,i);6. 在考生目录下,有Modify.c程序,该程序中_ N _是根据程序功能需要填充 部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:对x=1,2,.,10,求f(x)=x*x-5*x+sin(x)的最大值。 #include #include #definef(x) x*x-5*x+sin(x) void main() / 运行结果:49. int i; float max; _
16、 1 _ /max=f(1); for(i=2;imax)max=f(i); printf(%fn,max); 7. 在考生目录下,有Modify.c程序,该程序中_ N _是根据程序功能需要填充 部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。 该程序功能:函数f除去数组中的负数,输出结果为:13 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_; /*m=*m-1; void main() int i,n=7,x7=1,
17、-2,3,4,-5,6,-7; _2_; / f(x,&n);for(i=0;in;i+) printf(%5d,xi); printf(n); 8. 在考生目录下,有Modify.c程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入n和平面上n个点的坐标,计算各点间距离的总和。 #include #include #define f(x1,y1,x2,y2) sqrt(pow(x2-x1,2)+pow(y2-y1,2) 1 / #include 或 #include void main() float *x,
18、*y,s=0; int i,j,n; scanf(%d,&n); x=(float*)malloc(sizeof(float)*n*2); y=x+ 2 ; /n 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); 9. 在考生目录下,有Modify.c程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数f,求二维数组a中全体元素之和。 #include
19、float f( 1 ) / float *x, int m, int n / 运行结果:78.00 float y=0; int i,j; for(i=0;im;i+) for(j=0;jn;j+) y=y+*(*(x+i)+j); return y; void main() float a34=1,2,3,4,5,6,7,8,9,10,11,12,*b3; int i; for(i=0;i3;i+) bi= 2 ; /&ai0或 ai printf(%.2fn,f(b,3,4); 10. 在考生目录下,有Modify.c程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注
20、意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数f,求a数组中最大值与b 数组中最小值之差。 #include float f(float *x,int n,int flag) /运行结果:11 float y; int i; 1 ; / y=x0 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,1) - 2 ) ); /f(b,5,-1) 11. 在考生目录下,有Modify.c程序,该程序中_ N _是根据程序功能需
21、要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数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); / 运行结果:81. void main() float b5=1.1,2.2,3.3,4.4,5.5; printf(%fn,f(1.7,b,5); float f( 1 ) / float x,float a, int n float y=a0,t=1; int i; for(i=1;in;i+) t=t*x
22、 ; y=y+ai*t; 2 ; /return y 12. 在考生目录下,有Modify.c程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数f用以求1元2次方程 x*x+5*x-2=0 的实根。 #include #include / 运行结果:0.37-5.37 int f(float a,float b,float c,float *x1,float *x2) if(b*b-4*a*c0) 1 ; / return 1; *x1=(-b+sqrt(b*b-4*a*c)/2/a; *x2=(-b-sq
23、rt(b*b-4*a*c)/2/a; return 0; void main() float u1,u2; float a=1,b=5,c=-2; if(f( 2 ) printf(实数范围内无解n); / f(a,b,c,&u1,&u2) else printf(%.2f%.2fn,u1,u2); 13. 在考生目录下,有Modify2.c程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:函数f将数组循环左移k个元素,输出结果为:4567123#include void f(int *a,int n,int k)
24、 int i,j,t;for(i=0;ik;i+) 1 ; /t=a0 for( 2 ) /j=1;jn;j+aj-1=aj; an-1=t; void main()int i,x7=1,2,3,4,5,6,7;f( x , 7 , 3);for(i=0;i7;i+) printf(%5d,xi); printf(n); 14. 在考生目录下,有Modify.c程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句 ,否则后果自负)。该程序功能:调用函数f,将字符串中的所有字符逆序存放,然后输出。例如,输入字符串为,则程序的输出结果为。#inclu
25、de #include void main() char s60,*f(char*);gets(s);printf(%sn,f(s);1 f(char* x) / char * char t; int i,n;2 ; / n=strlen(x) for(i=0;in/2;i+) t=xi;xi=xn-1-i;xn-1-i=t; return x;15. 在考生目录下,有Modify.c程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:调用函数f,从字符串中删除所有的数字字符。#include #include #i
26、nclude void f(char *s) int i=0;while(si!=0) if(isdigit(si) 1 (s+i,s+i+1); / strcpy else 2 ; /i+ void main()char str80;gets(str); f(str); puts(str);16. 在考生目录下,有Modify.c程序,该程序中_ N _是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输出61000之间的完数(1个数的因子和等于其自身的数:6=1+2+3、28=1+2+4+7+14,则6、28都是完数)。#includ
27、e void main() / 运行结果:628496int i,j,s; for(i=6;i=1000;i+) 1 ; / s=0; for(j=1;2;j+) / jiif(i%j=0)s+=j; if(s=i)printf(%dn,s); (三)上机编程题 1. 程序设计题:考生目录下有Design.c程序,请完成以下功能:z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间1,6的整数,找出使z取最小值的x1、y1,并将x1、y1以格式%d,%d写入到考生目录下,新建文件design.dat。#include void main() / 运行结果:x1=1, y1=6
28、 FILE *p; float f(float x,float y),min; int x,y,x1,y1; /* 此处起要求考生自己编制程序 */min=100;if(p=fopen(design.dat,w)=NULL) printf(cannot open in FILEn); exit(0);for(x=1;x=6;x+) for(y=1;y=6;y+) if(f(x,y)min) min=f(x,y); x1=x; y1=y; fprintf(p, “%d,%d”,x1,y1);fclose(p);float f(float u,float v)return (3.14*u-v)/(u+v);2. 程序设计题:函数root返回满足条件f(a)*f(b)0的方程在a,b区间内的1个实根。在区间2,5、限差为0.00001。用区间对分法求解,将方程 x*x-5sin(x)-4=0的根以格式%9.6f写入到考生目录下新建的文件design.dat? #include #include / 运行结果:2.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-