1、第三部分 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“,/* 1 */s=0; / int s=0;scanf(“%d%d“,for(i=1;i#include void main
2、() int n,s=0;scanf(“%d“,n=fabs(n);/* 1 */while(n1) / ns=s+n%10;/* 2 */n=n%10; / n=n/10;printf(“%dn“,s);4. 4. 在考生目录下,有 Modify.c 程序,该程序中“/* N */“的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负) 。该程序功能:输入 1 个字符串,输出其中所出现过的大写英文字母。如运行时输入字符串“FONTNAME and FILENAME“ ,应输出“F O N T A M E I L“。#include void main() char x80
3、,y26; int i,j,ny=0;gets(x);for(i=0;xi!=0;i+)if(xi=Ascanf(“%f%f“,do /* 1 */t = -t * x/ +i; / t = -t * x / i+;s += t;/* 2 */while( fabs(t ) = eps) / 少 ; printf(“%fn“,s);6. 在考生目录下,有 Modify.c 程序,该程序中“/* N */“ 的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负) 。该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。#include #include void mai
4、n() char a80; int n5=0,i; gets(a);for(i=0; ai!=0; i+) /* 1 */switch(tolower(a+i) / switch(tolower(ai) case a: n0+; break;case e: n1+; break;case i: n2+; break;case o: n3+; break;/* 2 */case U: n4+; break; / ufor(i=0;ivoid main() int i,j,n;/* 1 */scanf(“%d“, n); / ivoid main() float x,max,min;/* 1 */
5、for(int i=1;imax) max=x;if(xvoid main( ) int n,i;scanf(“%d“,/* 1 */i=1; / i=2;while(n1)if(n%i=0) printf(“%dt“,i); n/=i; else /* 2 */n-; / i+;10. 在考生目录下,有 Modify.c 程序,该程序中“/* N */” 的下一行中有错误,请改正(注意:不得加行、减/行、加句、减句,否则后果自负) 。该程序功能:输入 n 以及小于 n 个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。#include #include #includ
6、e void main() int n,i;/* 1 */char str; / char *strscanf(“%dn“, str=(char*)malloc(n); gets(str);/* 2 */for(i=1;i=awhile(scanf(“%d%d“, _1_ ) ; / m#include int f(int n) int m,y=0; m=fabs(n);while(m!=0) y=y*10+m%10;1 ; / m=m/10if(n=0) return y;else 2 ; / return ( -y);void main() printf(“%dt“,f(12345); p
7、rintf(“%dn“,f(-34567); 3. 3. 在考生目录下,有 Modify.c 程序,该程序中“_ N _“是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负) 。该程序功能:输入 1 个整数后,输出该数的位数若输入 3214 则输出 4,输入-23156则输出 5) 。#include void main() int n,k=0;scanf(“%d“,while( 1 ) / n%10k+;2 ; / n=n/10printf(“%dn“,k);4. 在考生目录下,有 Modify.c 程序,该程序中“_ N _“是根据程序功能需要填充部
8、分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负) 。该程序功能:运行时输出下列结果。abcdefgabcdeabca#include void main() int i,j; char k;for(i=1;i0;j-) k=(char)k+;printf(“%c”, 2 ); / k-1putchar(n);5. 在考生目录下,有 Modify.c 程序,该程序中“_ N _“是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负) 。该程序功能:输入整数 n(n0)求 m,使得 2 的 m 次方小于或等于 n、2 的 m+1 次方大于或
9、等于 n。#include void main() int i=0,t=1,n;while( _ 1 _); / scanf(“%d”,i+;printf(“%dn“,i);6. 在考生目录下,有 Modify.c 程序,该程序中“_ N _“是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负) 。该程序功能:对 x=1,2,.,10,求 f(x)=x*x-5*x+sin(x)的最大值。#include #include #define f(x) x*x-5*x+sin(x)void main() / 运行结果:49.455978 int i; floa
10、t max;_ 1 _ / max=f(1);for(i=2;imax) max=f(i);printf(“%fn“,max); 7. 在考生目录下,有 Modify.c 程序,该程序中“_ N _“是根据程序功能需要填充 部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负) 。该程序功能:函数 f 除去数组中的负数,输出结果为:1 3 4 6#include void f(int *a,int *m) int i,j;for(i=0;i#include #define f(x1,y1,x2,y2) sqrt(pow(x2-x1,2)+pow(y2-y1,2)1 / #inc
11、lude 或 #include void main() float *x,*y,s=0; int i,j,n;scanf(“%d“,x=(float*)malloc(sizeof(float)*n*2);y=x+ 2 ; / nfor(i=0;ifloat f( 1 ) / float *x, int m, int n / 运行结果: 78.00 float y=0; int i,j;for(i=0;ifloat f(float *x,int n,int flag) / 运行结果:11 float y; int i;1 ; / y=x0for(i=1;iflag*y) y=xi;return
12、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. 11. 在考生目录下,有 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); / 运行结果:81
13、.930756void 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;i#include / 运行结果:0.37 -5.37int f(float a,float b,float c,float *x1,float *x2) if(b*b-4*a*cvoid f(int *a,int n,int k) int i,j,t;for(i=0;i#include void main() cha
14、r 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;i#include #include void f(char *s) int i=0;while(si!=0)if(isdigit(si) 1 (s+i,s+i+1); / strcpyelse 2 ; / i+ void main() char str80;gets(str); f(str); puts(str);16. 在考生目录下,有 Modify.c 程序,该程序中“_ N _
15、“是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负) 。该程序功能:输出 61000 之间的完数(1 个数的因子和等于其自身的数:6=1+2+3、28=1+2+4+7+14,则 6、28 都是完数) 。#include void main() / 运行结果:6 28 496 int i,j,s;for(i=6;ivoid main() / 运行结果:x1=1, y1=6 FILE *p; float f(float x,float y),min;int x,y,x1,y1;/* 此处起要求考生自己编制程序 */min=100;if(p=fopen(“d
16、esign.dat“,“w“)=NULL) printf(“cannot open in FILEn“); exit(0); for(x=1;x#include / 运行结果:2.580667float 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 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.
17、7,1.3,-2.5,-3.3;p=fopen(“design.dat“,“w“);/* 此处起要求考生自己编制程序 */for(i=1;i#include void main() / 运行结果:21.111 FILE *p; float f(float),max,x;/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannot open in FILEn“); exit(0); max=f(1);for(x=2;x#include void main() / 运行结果:%,.2346QSw| FILE *p; cha
18、r *s=“634,.%w|SQ2“,c;int i,j,n=strlen(s);/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannot open in FILEn“); exit(0); for(i=0;i*(s+j) c=*(s+i); *(s+i)=*(s+j); *(s+j)=c; for(i=0;i#include / 运行结果:3void 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;
19、float y =-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33;/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannot open in FILEn“); exit(0); for(i=0;i#include #define len(x1,y1,x2,y2) sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)void main() / 运行结果: 1.457944 FILE *p; int i,j; float c,minc;float x =1.
20、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);/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannot open in FILEn“); exit(0); for(i=0;i#include void main( ) float a33=1.3,2.7,3.6,2,3,4.7,3,4,1.27;FILE *p; int
21、 i,j;/* 此处起要求考生自己编制程序 */float k;if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannot open in FILEn“); exit(0); for(i=0;i#include void main( ) / 运行结果:522956313 FILE *p; int s=1,k=1,i;/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannot open in FILEn“); exit(0); for(i=2;i#include void mai
22、n() / 运行结果:6 28 496 FILE *p; int n,i,s;/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannot open inFILEn“); exit(0); for(n=6;n#include #include void main( ) / 运行结果:313 /* 此处起要求考生自己编制程序 */FILE *p; int i,j;if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannot open FILE“); exit(0); for(i=1;
23、 ; i+)if(i%3=1fprintf(p,“%d“,i);fclose(p);12. 程序设计题:考生目录下有 Design.c 程序,请完成以下功能: 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() / 运行结果:69 FILE *p; int n=0,a,b,c;/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat
24、“,“w“)=NULL) printf(“cannot open inFILEn“); exit(0); for(a=1;a#include #include void main() / 运行结果:20.17 FILE *p; float f(float),max ; int x;/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannot open filen“); exit(0); max=f(1);for(x=2;x#include #include float g(float x) return x*x-5*s
25、in(x)-4; float root(float a,float b,float eps,float(*f)(float) float c;while(c=(a+b)/2,fabs(f(c)=eps int x,y,z,k=0;/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannot open FILE“); exit(0); for(x= -45;xvoid main() / 运行结果:220,284 FILE *p; int i,a,b,c; 284,220p=fopen(“design.dat“,“w“);
26、 1184,1210printf(“程序正在运行,请稍等n“); 1210,1184for(a=6;a#include void main( ) / 运行结果: 0.841471 FILE *p; float s=1,t=1,i=3;/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannot open inFILEn“); exit(0); do t=-t* (i-1)*i; s=s+1/t; i+=2;while(fabs(1/t) = 1e-5);fprintf(p,“%.6f“,s);fclose(p);18
27、18 程序设计题:考生目录下有 Design.c 程序,请完成以下功能:xi,yi分别表示平面上1 个点的 x、y 坐标,求下列 5 点各点间距离总和,并将该数以格式“%.4f“写到考生目录下新建文件 design.dat。#include #include #include void main() / 运行结果: 45.2985 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;/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) p
28、rintf(“cannot open inFILEn“); exit(0); s=0;for(i=0;i#include void main() / 运行结果: 121.336 FILE *p; float s=0,a=81,i;/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) printf(“Cant open filen“); exit(0); for(i=0;i#include #include void main() FILE *p; int i,j;/* 此处起要求考生自己编制程序 */int prime(int n);if(
29、p=fopen(“design.dat“,“w“)=NULL) printf(“cannt open a FILE“); exit(0); for(j=1000;j#include #include void main() / 运行结果:98.722542 FILE *p; int i; float x=1.279,t=1,y=0;float a10=1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65;/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannt open a F
30、ILE“); exit(0); for(i=0; i#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;/* 此处起要求考生自己编制程序 */for(i=0;i#include void main() / 运行结果:267914295 FILE *p; long s=0,i,a40;/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannt open a FILE“); exit(0
31、); a0=1; a1=1;for(i=2;i#include void main() / 运行结果:283, 992137 float y=1.05; int n=1; FILE *p;/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannt open a FILE“); exit(0); for(n=1;n+)if(pow(y,n)#include void main() / 运行结果:-6.495819 FILE *p; int i; float x=1.279,t,y;float a10=1.1,3.2,-2
32、.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65;/* 此处起要求考生自己编制程序 */t=1; y=0;if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannt open a FILE“); exit(0); for(i=0; i#include void main() / 运行结果:983 FILE *p; int s=0,i=0;char *a=“r235%34cdDW,.“;/* 此处起要求考生自己编制程序 */if(p=fopen(“design.dat“,“w“)=NULL) printf(“cannt open a FILE“); exit(0); for(i=0;*(a+i)!=0;i+)s+=*(a+i);fprintf(p,“%d“,s); fclose(p);