二级(C语言程序设计)上机题汇总_第1页
二级(C语言程序设计)上机题汇总_第2页
二级(C语言程序设计)上机题汇总_第3页
二级(C语言程序设计)上机题汇总_第4页
二级(C语言程序设计)上机题汇总_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、二级(C语言程序设计)上机题汇总一、程序调试题(一)程序填空练习一:/*该程序功能:对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() int x; float max; _ max=f(1);_ for(x=2;x=10;x+) _if( maxf(x) max=f(x);_ printf(%fn,max);练习二:/*该程序功能:输入三个整数,按由小到大的顺序输出这三个数。*/#include void swap(_int *pa, int *pb_)

2、/*交换两个数的位置*/ int temp; temp = *pa; *pa = *pb; *pb = temp;void main() int a,b,c,temp; scanf(%d%d%d,&a,&b,&c); if(ab) swap(&a,&b); if(bc) swap(&b,&c); if(_ab_) swap(&a,&b); printf(%d,%d,%d,a,b,c);练习三:/*该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。*/#include void Dec2Bin(int m) int bin32,j; for(j=0;m!=

3、0;j+) binj= _m%2_; m=m/2; for(;j!=0;j-) printf(%d, _binj-1_ _ );void main() int n; scanf(%d,&n); Dec2Bin(n);练习四:/*该程序功能:输入数组x7,调用函数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; _*m=*m-1;_ void main() int i,n=7,x7=1,-2,3,4,-5,6,-

4、7; _ f(x,&n);_ for(i=0;in;i+) printf(%5d,xi); printf(n);练习五:/*该程序功能:输出61000之间的完数(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+) _s=1;_ for(j=2;_j0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。*/#include void main() int m=0,t=1,n; while( _scanf(“%d”,&n), n=0_);

5、while(!(t=n) _t=t*2;_ m+; printf(%dn,m);练习七:/*该程序功能:函数f将数组循环左移k个元素,数组x7调用函数f后的输出结果为: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+) _t=a0; for( 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); 练习八:/*该程序功

6、能:调用函数f,求二维数组a中全体元素的和.*/#include float f( _float *x, int m, int n_) 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=_ ai_; printf(%.2fn,f(b,3,4); 练习九:/*该程序功能:求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。

7、*/ #include #include void main() int n,s=0; scanf(%d,&n); _n=fabs(n);_ while(n!=0) _s+=n%10;_ n=n/10; printf(%dn,s); 练习十:/*该程序功能:数组的第1,2项均为1,此后各项值均为该项前二项之和。计算数组第30项的值。*/#include _long f(int n); void main() printf(%ldn,f(30);long f(int n) if( _n=n),输出它们的最大公约数*/#include void main( ) int m,n,k; while(s

8、canf(%d%d,&m,&n), m0|n0|mn ); for( k=n ;n%k!=0|m%k!=0;k-); printf(%dn,k); 练习十二:/*程序功能:输入一个整数后,输出该数的位数,如3114,则输出4。*/#includevoid main() int n,k=0; scanf(“%d”,&n); while( n!=0 )k+;n=n/10; printf(“%dn”,k);练习十三:/*程序功能:调用函数f,计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5* x*x*x x,当x=1.7时的值。 */#includefloat f(flo

9、at,float*,int);void main() float b5=1.1,2.2,3.3,4.4,5.5; printf(%fn,f(1.7,b,5);float f(float x,float *a,int n) float y=a0,t=1;int i; for(i=1;in;i+) t=t*x;y=y+ai*t; return y; 练习十四:/*程序功能:调用函数f,从字符串中删除所有的数字字符。*/#include #include #include void f(char *s) int i=0; while(si!=0) if(isdigit(si) strcpy (s+i

10、,s+i+1); else i+; (二)程序修改练习一:/*该程序功能:运行是输入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) / n1改成n s=s+n%10; /* 2 */ n=n%10; / n=n%10;改成n=n/10; printf(%dn,s);练习二:/*该程序功能:输入m,n(要求输入均大于0,且m=n),输出它们的最小公倍数*/#include void main( )

11、int m,n,k; /* 1 */ while(scanf(%d%d,&m,&n),m0 & n0); / m0 & n0改成m0|n0|mn for(k=m; k%n!=0;) /* 2 */ k=k+n; / k=k+n;改成k=k+m; printf(%dn,k); 练习三:/*该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母,输出该字符串。*/#include #include #include void main() int n,i; /* 1 */ char str; / char str;改成char *str; scanf(%dn,&n);

12、 str=(char*)malloc(n); gets(str); /* 2 */ for(i=1;istrlen(str);i+) / i=1;改成i=0;或istrlen(str); 改成i=a& stri=z) stri=stri-(a-A); puts(str); 练习四:/*该程序功能:输人1个字符串,按字母出现次序输出其中所出现过的大写英文字母。如运行时输入字符串“FONTNAME and FILENAME”应输出“F O N TA M E I L”。*/#include void main() char x80,y26; int i,j,ny=0; gets(x); for(i=

13、0;xi!=0;i+) if(xi=A&xi=Z) for(j=0;jny;j+) /* 1 */ if(yi=xj) continue; / yi=xj改成yj=xi continue;改成break; if(j=ny) yny=xi; ny+; /* 2 */ for(i=0;i26;i+) / i26; 改成iny; printf(%c ,yi); printf(n); 练习五:/*程序功能:将一个char型数的高4位和低4位分离,分别输出,如22(二进制:)输出1,6*/#include void main() char a,b1,b2,c; scanf(%d,&a); /* 1 */

14、 b1=a4; /*b1存放高4位*/ / b1=a4; c=(04); /* 2 */ b2=a|c; /*b2存放低4位*/ / b2=a|c;改成b2=a&c; printf(%d,%d,b1,b2); 练习六:/*在考生目录下的Paper 子目录下,有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

15、=1,i=1; scanf(%f%f,&x,&eps); do /* 1 */ t=-t*x/+i; / t=-t*x/+i;改成t=-t*x/i+; s+=t; /* 2 */ while(fabs(t)=eps) /少; printf(%fn,s); 练习七:/*程序功能:输入n,输出n的所有质数因子,(如n=13860,输出2、2、3、3、5、7、11)。*/#includevoid main() int n,i; scanf(“%d”,&n); /* 1 */ i=1; / i=1;改成i=2; while(n1) if(n%i=0)printf(“%dt”,i);n/=i; else

16、 /* 2 */n-; / n-;改成i+; 练习八:/*程序功能:输入a,n,分别为3,6,则输出表达式的值333333333333333 */ #includevoid main() int i,a,n;long t=0; /* 1 */ s=0; / s=0;改成long s=0; scanf(%d%d,&a,&n); for(i=1;i=n;i+) /* 2 */ t=t*10+i; / t=t*10+i;改成t=t*10+1; s=s+t; s=s*a; printf(%ldn,s); 练习九:程序功能:输入n,再输入 n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。

17、void main() char str80; gets(str); f(str); puts(str);#include #include #include void main() int i,n; /* 1 */ struct axy float x,y; a; / 改为 struct axy float x;float y; *a; scanf(%d,&n); a=(float*) malloc(n*2*sizeof(float); for(i=0;in;i+) /* 2 */ scanf(%f%f,ai.x,ai.y); / 改为 scanf(%f%f,&ai.x, &ai.y); f

18、or(i=0;in;i+) if(sqrt(ai.x*ai.x+ai.y*ai.y)=5) printf(%f,%fn,ai.x,ai.y);练习十:程序功能:分别统计字符串中所有英文字母中的各元音字母个数。#include #include void main() char a80; int n5=0,i; gets(a); for(i=0; ai!=0; i+) /* 1 */ switch(toupper(ai) / 改为 switch(tolower(ai) case a: n0+; break; case e: n1+; break; case i: n2+; break; case

19、 o: n3+; break; /* 2 */ case U: n4+; / 改为 case u: n4+; for(i=0;i5;i+) printf(%dn,ni);练习十一:/*考生的目录Paper子目录下,有Modify.c文件,该文件中/* N * /的下一行中请改正。该程序功能:运行时输入10个数,然后分别输出其中的最大,最小的值。*/#include void main() float x,max,min; int i; /* 1 */ for(i=0;i=10;i+) / i=10;改成imax) max=x; if(xmin) min=x; printf(%f,%fn,max

20、,min); 二、程序设计题练习一:/*设计程序:z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x,y取值区间为0,10的整数,找出 使z取最小值的x1,y1,并将x1,y1以格式“%d,%d”写到考生目录中Paper下目录下的新建文件design.dat中*/#include#includevoid main() FILE *p; int x,y,x1,y1; float z,z1; /*考生在这里添加程序*/ p=fopen(design.dat,w); z1=0; for(x=0;x=10;x+) for(y=0;y=10;y+) z=10*cos(x-4)+5*si

21、n(y-2); if(zz1) z1=z;x1=x;y1=y; fprintf(p,%d,%d,x1,y1);fclose(p);练习二:/*设计程序:计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+.的值,并将其值以格式%.6f写到考生目录中Paper下目录下的新建文件design.dat中*/#include#includevoid main() FILE *p; int i; float x=2.345,t=1.0,y=0.0; float a10=1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9; /*考生

22、在这里添加程序*/ y=y+a0;p=fopen(design.dat,w);for(i=1;i10;i+) t=t*x; y+=ai*sin(t); fprintf(p,%.6f,y); fclose(p);练习三:/*设计程序:计算多项式a0+a1*x+a2*x*x+a3*x*x*x+.的值,并将其值一格式%f写到考生目录中Paper下目录下的新建文件design.dat中*/#include #include void main() 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

23、.54,5.6,0.97,4.65; /*考生在这里添加程序*/p=fopen(design.dat,w);for(i=0;i10;i+) t=t*x; y+=ai*t; fprintf(p,%f,y); fclose(p);练习四:/*设计程序:累加a字符串各个字符的ASCII码值,然后将累加和以形式“%d”写到考生目录中Paper下目录下的新建文件design.dat中*/#include void main() FILE *p; int s=0,i=0; char *a=r235%34cdDW,.; /* 考生在这里添加程序*/p=fopen(design.dat,w); for(;ai

24、!=0;i+) s+=ai; fprintf(p,%d,s); fclose(p); 练习五:/*设计程序:寻找并输出11到999之间的数m,它满足m,m*m,m*m*m均为回文数。所谓回文数是指各位数字左右对称,例如121,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编制函数int JSValue(long m)实现此功能,如果是回文数,则函数返回为1,反之则返回0。*/#include#include#includeint JSValue(long m) /* 考生在这里添加程序*/int a10,i=0,n; while(m) ai=m%1

25、0; m=m/10; i+; for(-i,n=i;in/2;i-) if(ai!=an-i) return 0; return 1;void main() FILE *p;long m; p=fopen(design.dat,w); for(m=11;m1000;m+) if(JSValue(m)&JSValue(m*m)&JSValue(m*m*m) fprintf(p,%ld ,m); fclose(p); 练习六:/*设计程序:数列各项为1,1,2,3,5,8,13,21,求其前40项之和,并将求和的结果以格式“%d”写到考生目录下的新建文件design.dat中*/#include

26、void main() FILE *p; long s=0,i,a40; /* 考生在这里添加程序*/p=fopen(design.dat,w); for(i=0;i40;i+) if(i=1|i=0)ai=1; else ai=ai-2+ai-1; for(i=0;i40;i+) s+=ai; fprintf(p,%d ,s); fclose(p);练习七:/*设计程序:计算数列1,-1/3!,1/5!,-1/7!,1/9!,的和至某项的绝对值小于1e-5时为止(该项不累加),将求和的结果以“%.6f”写到考生目录下的新建文件design.dat中*/ #include #include v

27、oid main() FILE *p; float s=1,t=1,i=3; /*考生在这里添加代码 */p=fopen(design.dat,w); do t=-t*i*(i-1); s=s+1/t; i+=2; while(fabs(1/t)=1e-5); fprintf(p,%.6f,s); fclose(p); 练习八:/*设计程序:a,b,c为区间1,100的整数,统计使等式c/(a*a+b*b)=1成立的所有解的个数(若a=1,b=3,c=10是1个解,则a=3,b=1,c=10也是解)。*/#includevoid main() FILE *p; int n=0,a,b,c; /

28、*考生在这里添加代码 */p=fopen(“design.dat”,”w”); for(a=1;a=100;a+)for(b=1;b=100;b+)for(c=1;c=100;c+)if(c/(a*a+b*b)=1)n+;fprintf(p,“%d”,n);fclose(p); 练习九:/*设计程序:在数组x的10个数中求平均值v,找出与v相差最小的数组元素并将其以格式“%.5f”写到考生目录下的新建文件design.dat中*/ #include #include void main() FILE *p; int i;float k=0;float x10=7.23,-1.5,5.24,2.

29、1,-12.45,6.3,-5,3.2,-0.7,9.81,d,v=0;for(i=0;i10;i+) v+=xi; v=v/10; d=fabs(x0-v); /*考生在这里添加代码 */p=fopen(design.dat,w); for(i=0;ifabs(xi-v) d=fabs(xi-v); k=xi; fprintf(p,%.5f,k); fclose(p); 练习十:/*设计程序:在正整数中找出1个最小的,被3,5,7,9除余数分别为1,3,5,7的数,将该数以格式“%d”写到考生的目录下的新建文件design.dat中*/#include #include void main(

30、) /*考生在这里添加代码*/FILE *p; int i; p=fopen(“design.dat”,”w”); for(i=1;i+) if(i%3=1)&(i%5=3)&(i%7=5)&(i%9=7)break; fprintf(p,%d,i); fclose(p);练习十一:/*设计程序:将满足条件pow(1.05,n)1e6pow(1.05,n+1)的n,pow(1.05,n)值以格式“%d,%.0f”写到生目录下的新建文件design.dat中*/#include #include void main() float y=1.05; int n=1; FILE *p; /*考生在这

31、里添加代码*/ p=fopen(“design.dat”,”w”); for(;pow(y,n)1e6|pow(y,n+1)1e6;n+); fprintf(p,%d,%.0f,n,pow(1.05,n); fclose(p); 练习十二:/*设计程序:计算2的平方根,3的平方根,10的平方根之和,要求计算结果具有小数点后10有效位数,以“%.10fn”写到考生的目录下的新建文件design.dat中*/#include #include void main() FILE *p;/*考生在这里添加代码*/ float x=0; int i; p=fopen(design.dat,w); for

32、(i=2;i=10;i+) x+=sqrt(i); fprintf(p,%.10f,x); fclose(p);练习十三:/*设计程序:将a数组的每1行均除以该行上绝对值最大的元素,然后将a数组写到考生的目录的新建文件design.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; /*考生在这里添加代码*/ for(i=0;i3;i+) x=ai0;for(j=0;j3;j+) if(fabs(x)fabs(aij) x= aij;for(

33、j=0;j3;j+) aij=aij/x; 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); 练习十四:/*设计程序: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

34、,4.5,7.6; int i,j;/*考生在这里添加代码*/ p=fopen(design.dat,w); s=0; for(i=0;i4;i+) for(j=i+1;j5;j+) s+=sqrt(pow(xi-xj,2)+pow(yi-yj,2); fprintf(p,%.4f,s); fclose(p); 练习十六:/*设计程序:计算字符串s中每个字符的权重值,所谓权重值就是字符串中的位置值与该字符的ASCII码值的乘积。位置值从1开始依次递增。将每个字符的权重值,以格式“%d”写到考生的目录下的新建文件design.dat中*/#include#includevoid main() F

35、ILE *p; int i,w; char *s=we45*&y3r#$1; /*考生在这里添加代码*/ p=fopen(“design.dat”,”w”);w=0; for(i=1; si!=0;i+)w+=si*i;fprintf(p,”%d”,w);fclose(p); 练习十七:/*程序设计:在6至1000内找出所有的合数,用语句“fprintf(p,”%6d”,n);”输出。说明(某个数等于其诸因子之和,则该数为合数:6=1+2+3,28=1+2+4+7+14, 6,28都是合数)*/#include void main() FILE *p; int n,j,s; /*考生在这里添加

36、代码*/ p=fopen(“design.dat”,”w”); for(n=6;n=1000;n+) s=0; for(j=1;jn;j+) if(n%j=0) s+=j; if(s=n) fprintf(p,%dn,n);fclose(p);练习十八:/* 程序设计题:统计满足条件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; /*考生在这里添加代码*/ p=fopen(

37、“design.dat”,”w”); for(x=-45;x45;x+) for(y= -45;y45;y+) for(z=-45;z45;z+) if(x*x+y*y+z*z=2000) k+; fprintf(p,”%d”,k); fclose(p);练习十九:/* 程序设计题:数组元素xi、yi表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式%f写到考生目录下新建文件design.dat。*/#include #include #define len(x1,y1,x2,y2) sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)void main() FILE *p; int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论