《C语言期末复习试题.doc》由会员分享,可在线阅读,更多相关《C语言期末复习试题.doc(92页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、. .试卷编号:10767所属语言:C语言试卷方案:TC_4试卷总分:570分共有题型:1种一、程序设计共57题共计570分第1题10.0分题号:374 难度:易第2章/*-【程序设计】-功能:编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序。-*/#includevoid wwjt(); void swap(int *a,int *b) /*Program*/ /* End */main() int x,y,z;scanf(%d%d%d,&x,&y,&z); if(xy)swap(&x,&y);if(xz)swap(&x,&z); if(yz)swap
2、(&y,&z);printf(%3d%3d%3d,x,y,z);wwjt();void wwjt() FILE *IN,*OUT; int m,n; int i2; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Error); for(n=0;n3;n+) for(m=0;m2;m+) fscanf(IN,%d,&im); swap(&i0,&i1); fprintf(OUT,%dn,i0); fprintf(OUT,%d
3、n,i1); fclose(IN); fclose(OUT);答案:-int k; k=*a; *a=*b; *b=k;-第2题10.0分题号:381 难度:易第2章/*-【程序设计】-功能:求一批数中小于平均值的数的个数。-*/#includevoid wwjt(); int average_num(int a,int n) /*Program*/ /* End */main() int n,a100,i,num; scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); num=average_num(a,n); printf(the num is:%dn,n
4、um); wwjt();void wwjt() FILE *IN,*OUT; int n; int i10; int o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Error); for(n=0;n5;n+) fscanf(IN,%d,&in); o=average_num(i,5); fprintf(OUT,%dn,o); fclose(IN); fclose(OUT);答案:-int i,sum=0,k=0; d
5、ouble average; for(i=0;in;i+) sum=sum+ai; average=sum*1.0/n; for(i=0;iai) k+;return(k);-第3题10.0分题号:406 难度:易第2章/*-【程序设计】-功能:编写函数fun求1000以内所有7的倍数之和。-*/#define N 1000#include void wwjt(); int fun(int m) /*Program*/ /* End */void main() int sum; sum=fun(7); printf(%d以内所有%d的倍数之和为:%dn,N,7,sum); wwjt();voi
6、d wwjt() FILE *IN,*OUT; int n; int i10; int o; OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Error); o = fun(6); fprintf(OUT,%dn,o); fclose(IN); fclose(OUT);答案:- int s=0,i; for(i=1;iN;i+) if(i%m=0) s+=i; return s;-第4题10.0分题号:324 难度:易第2章/*-【程序设计】-功能:能计算从1开场到n的自然数中偶数的平方的和,n由键盘输入,并在main()函数中输出。n
7、是偶数-*/#include void wwjt(); int fun(int n) /*Program*/ /* End */main() int m; printf(Enter m: ); scanf(%d, &m); printf(nThe result is %dn, fun(m); wwjt(); void wwjt() FILE *IN,*OUT; int t; int o; int c; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) print
8、f(Write FILE Error); for(c=1;c=5;c+) fscanf(IN,%d,&t); o=fun(t); fprintf(OUT,%dn,o); fclose(IN); fclose(OUT);答案:-int sum,i;sum =0;for(i=2;i=n;i=i+2)sum=sum+i*i;return(sum);-第5题10.0分题号:2 难度:中第1章/*-【程序设计】-题目:写程序求1-3+5-7+-99+101的值要求:使用程序中定义的变量-*/#includestdio.hvoid wwjt();/函数功能:求1-3+5-7+-+n的值int fun(in
9、t n)int i,s=0,f=1;/i定义为循环变量,s为1-3+5-7+-n的值/*Program*/* End */ return s;main() printf(%d,fun(101); wwjt();void wwjt() FILE *IN,*OUT; int i,n; IN=fopen(in.dat,r); if(IN=NULL) printf(Please Verify The Current Dir.It May Be Changed); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Please Verify The Current Di
10、r. It May Be Changed); for(i=0;i5;i+) fscanf(IN,%i,&n); fprintf(OUT,%ldn,fun(n); fclose(IN); fclose(OUT);答案:for (i=1;i=n;i+=2)s=s+i*f;f=-f;第6题10.0分题号:357 难度:易第2章/*-【程序设计】-功能:根据整型形参m,计算如下公式的值: y=1/5+1/61/71/81/9+1/10.1/(m+5)例如:假设m=9,那么应输出:1.168229-*/#include void wwjt(); double fun(int m) /*Program*/
11、 /* End */main() int n; printf(Enter n: ); scanf(%d, &n); printf(nThe result is %1fn, fun(n); wwjt(); void wwjt() FILE *IN,*OUT; int i ; int t; double o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Error); for(i=0;i5;i+) fscanf(IN,%d,
12、&t); o=fun(t); fprintf(OUT,%fn,o); fclose(IN); fclose(OUT);答案:- double y=0; int i; for(i=0; i=m; i+) y+=1.0/(i+5); return(y);- 第7题10.0分题号:392 难度:中第2章/*-【程序设计】-功能:求一批数中最大值和最小值的积。-*/#define N 30#include stdlib.h#include void wwjt(); int max_min(int a,int n) /*Program*/ /* End */main() int aN,i,k; for(
13、i=0;iN;i+) ai=random(51)+10; for(i=0;iN;i+) printf(%5d,ai); if(i+1)%5=0) printf(n); k=max_min(a,N); printf(the result is:%dn,k); wwjt();void wwjt() FILE *IN,*OUT; int n; int i10; int o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write FILE Erro
14、r); for(n=0;n10;n+) fscanf(IN,%d,&in); o=max_min(i,10); fprintf(OUT,%dn,o); fclose(IN); fclose(OUT);答案:- int i,max,min; max=min=a0; for(i=1;imax) max=ai; else if(aimin) min=ai; return(max*min);-第8题10.0分题号:342 难度:中第2章/*-【程序设计】-功能:在键盘上输入一个3行3列矩阵的各个元素的值值为整数,然后输出矩阵第一行与第三行元素之和,并在fun()函数中输出。-*/#include vo
15、id wwjt(); void fun(int a33) /*Program*/ /* End */main() int i,j,s,a33; for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); s=fun(a); printf(Sum=%dn,s); wwjt();void wwjt() FILE *IN,*OUT; int m; int n; int i33; int o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read FILE Error); OUT=fopen(out.dat,w); if(OUT=NUL
16、L) printf(Write FILE Error); for(m=0;m3;m+) for(n=0;n3;n+) fscanf(IN,%d,&imn); o=fun(i); fprintf(OUT,%dn,o); getch(); fclose(IN); fclose(OUT);答案:-int sum;int i,j;sum=0;for(i=0;i3;i+=2)for(j=0;j3;j+) sum=sum+aij; return sum;-第9题10.0分题号:364 难度:中第2章/*-【程序设计】-功能:求一个四位数的各位数字的立方和。-*/#include void wwjt();
17、int fun(int n) /*Program*/ /* End */main() int k; k=fun(1234); printf(k=%dn,k); wwjt();void wwjt() FILE *IN,*OUT; int iIN,iOUT,i; IN=fopen(in.dat,r); if(IN=NULL) printf(Please Verify The Currernt Dir.it May Be Changed); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Please Verify The Current Dir. it May
18、Be Changed); for(i=0;i0) d=n%10; s+=d*d*d; n/=10; return s;-第10题10.0分题号:502 难度:中第20章#include /*-【程序设计】-题目:用while语句求1100的累计和。-*/void wwjt(); int fun(int n) /*Program*/ /* End */void main() int sum = 0; sum=fun(100); printf (sum = %dn, sum); wwjt();void wwjt() FILE *IN,*OUT; int i; int iIN,iOUT; IN=fo
19、pen(in.dat,r); if(IN=NULL) printf(Please Verify The Currernt Dir.it May Be Changed); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Please Verify The Current Dir. it May Be Changed); for(i=0;i5;i+) fscanf(IN,%d,&iIN); iOUT=fun(iIN); fprintf(OUT,%dn,iOUT); fclose(IN); fclose(OUT);答案: int i=1,sum=0; while(
20、i=n) sum=sum+i; i+; return sum;第11题10.0分题号:53 难度:中第1章/*-【程序设计】-功能:求一个四位数的各位数字的立方和-*/#include void wwjt();int fun(int n) /*Program*/ /* End */main()int k; k=fun(1234); printf(k=%dn,k); wwjt();void wwjt() FILE *IN,*OUT; int iIN,iOUT,i; IN=fopen(22.IN,r); if(IN=NULL) printf(Please Verify The Currernt D
21、ir.it May Be Changed); OUT=fopen(22.out,w); if(OUT=NULL) printf(Please Verify The Current Dir. it May Be Changed); for(i=0;i0) d=n%10; s+=d*d*d; n/=10; return s;-第12题10.0分题号:409 难度:易第20章/*-【程序设计】-题目:输入华氏温度求摄氏温度。转换公式为 c=5/9f-32,输出结果取两位小数。-*/#include void wwjt(); double fun(double m) /*Program*/ /* En
22、d */void main() double c,f; printf(请输入一个华氏温度:); scanf(%f,&f); c=fun(f); printf(摄氏温度为:%5.2fn,c); wwjt();void wwjt() FILE *IN,*OUT; int i; double iIN,iOUT; IN=fopen(in.dat,r); if(IN=NULL) printf(Please Verify The Currernt Dir.it May Be Changed); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Please Verify
23、The Current Dir. it May Be Changed); for(i=0;i5;i+) fscanf(IN,%f,&iIN); iOUT=fun(iIN); fprintf(OUT,%fn,iOUT); fclose(IN); fclose(OUT);答案: float n; n=(5.0/9.0)*(m-32); return n; 第13题10.0分题号:345 难度:中第2章/*-【程序设计】-功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在 c数的千位和十位上, b数的十位和个位数依次放在 c数的个位和百位上。例如:当
24、a45,b=12。调用该函数后,c=4251。-*/#include void wwjt(); void fun(int a, int b, long *c) /*Program*/ /* End */main() int a,b; long c; printf(input a, b:); scanf(%d%d, &a, &b); fun(a, b, &c); printf(The result is: %ldn, c); wwjt(); void wwjt ( ) FILE *rf, *wf ; int i, a,b ; long c ; rf = fopen(in.dat, r) ; wf
25、 = fopen(out.dat,w) ; for(i = 0 ; i 10 ; i+) fscanf(rf, %d,%d, &a, &b) ; fun(a, b, &c) ; fprintf(wf, a=%d,b=%d,c=%ldn, a, b, c) ; fclose(rf) ; fclose(wf) ; 答案:-*c=a/10*1000+a%10*10+b/10+b%10*100;- 第14题10.0分题号:335 难度:中第2章/*-【程序设计】-功能:求一个n位自然数的各位数字的积。n 是小于10的自然数-*/#include #includeconio.hvoid wwjt(); long fun(long n) /*Program*/ /* End */main() long m; printf(Enter m: ); scanf(%ld, &m); printf(nThe result is %ldn, fun(m); wwjt(); void wwjt() FILE *IN,*OUT; int c ; long t; lon