C语言期末复习试题_第1页
C语言期末复习试题_第2页
C语言期末复习试题_第3页
C语言期末复习试题_第4页
C语言期末复习试题_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

1、试卷编号:10767所属语言:C语言试卷方案:TC_试卷总分:570 分共有题型:1种一、程序设计 共 57 题 (共计 570 分)第2章第 1 题 (分) 题号 :374 难度 : 易 /*程序设计】功能:编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序。*/ #include void wwjt();void swap(int *a,int *b) main()*Program* End *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(,r);if(IN=NULL)printf(Read FILE Error);OUT=fopen(,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,%dn,i1);fclose(IN);fclose(OUT

3、);答案: int k;k=*a;*a=*b;难度 : 易 第 2 章*b=k;第 2 题 (分)题号 :381/*【程序设计】功能:求一批数中小于平均值的数的个数*/#include void 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,num); wwjt();void wwjt()FILE *IN,*OUT;in

4、t n;int i10;int o;IN=fopen(,r);if(IN=NULL)printf(Read FILE Error);OUT=fopen(,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;double average; for(i=0;in;i+) sum=sum+ai;average=sum*n; for(i=0;

5、iai) k+; return(k);难度 : 易 第 2 章第 3 题 (分) 题号 :406 /*7 的倍数之和【程序设计】功能:编写函数 fun 求 1000 以内所有*/ #define N 1000 #include void wwjt();int fun(int m) Program*/Endvoid main()int sum;sum=fun(7);printf(%d 以内所有 %d 的倍数之和为: %dn,N,7,sum); wwjt();void wwjt()FILE *IN,*OUT;int n;int i10;int o;OUT=fopen(,w);if(OUT=NULL

6、)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;难度 : 易 第 2 章return s;第 4 题 (分)题号 :324/*【程序设计】功能:能计算从 1 开始到 n 的自然数中偶数的平方的和, n由 键盘输入,并在 main() 函数中输出。 ( n 是偶数)*/#include void wwjt();int fun(int n)*Program*/* End */main()int m;pr

7、intf(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(,r);if(IN=NULL)printf(Read FILE Error);OUT=fopen(,w);if(OUT=NULL)printf(Write FILE Error);for(c=1;c=5;c+)fscanf(IN,%d,&t);o=fun(t);fprintf(OUT,%dn,o);fclose(IN);fclose(OUT);答案:

8、 int sum,i;sum =0;for(i=2;i=n;i=i+2)sum=sum+i*i; return(sum);第 5 题 (分)题号 :2难度 : 中第 1 章/*【程序设计】题目:写程序求 1-3+5- 7+-99+101 的值要求:使用程序中定义的变量*/#includevoid wwjt();It May Be Changed);OUT=fopen(,w);if(OUT=NULL)printf(Please Verify The Current Dir. It May Be Changed); for(i=0;i5;i+)fscanf(IN,%i,&n);fprintf(OU

9、T,%ldn,fun(n);fclose(IN); fclose(OUT);答案: for (i=1;i=n;i+=2)s=s+i*f;f=-f;难度 : 易 第 2 章 1/(m+5)第 6 题 (分) 题号 :357 /*【程序设计】功能:根据整型形参 m,计算如下公式的值: y=1/5+1/6 1/7 1/8 1/9+1/10.例如:若 m=9,则应输出:*/ #include void wwjt();double fun(int m) *Program*End main()int n; printf(Enter n: ); scanf(%d, &n);printf(nThe resul

10、t is %1fn, fun(n); wwjt();void wwjt()FILE *IN,*OUT;int i ;int t;double o;IN=fopen(,r);if(IN=NULL)printf(Read FILE Error);OUT=fopen(,w);if(OUT=NULL)printf(Write FILE Error);for(i=0;i5;i+)fscanf(IN,%d,&t); o=fun(t);fprintf(OUT,%fn,o);fclose(IN);fclose(OUT);答案: double y=0;int i;难度 : 中 第 2 章for(i=0; i=m

11、; i+) y+=(i+5); return(y);第 7 题 (分)题号 :392/*【程序设计】功能:求一批数中最大值和最小值的积。*/#define N 30 #include #include void wwjt();int max_min(int a,int n) *Program*/* End */main()int aN,i,k;for(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

12、); wwjt();void wwjt()FILE *IN,*OUT;int n;int i10;int o;IN=fopen(,r); if(IN=NULL)printf(Read FILE Error);OUT=fopen(,w);if(OUT=NULL)printf(Write FILE Error); 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;

13、else if(aimin) min=ai;难度 : 中第2章return(max*min);第 8 题 (分)题号 :342/*【程序设计】功能:在键盘上输入一个 3 行 3 列矩阵的各个元素的值(值 为整数),然后输出矩阵第一行与第三行元素之和, 并在 fun() 函数中输出。*/#include void wwjt();void fun(int a33) /* 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()

14、FILE *IN,*OUT;int m;int n;int i33;int o;IN=fopen(,r);if(IN=NULL)printf(Read FILE Error);OUT=fopen(,w);if(OUT=NULL)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+

15、)sum=sum+aij;难度 : 中 第 2 章return sum;第 9 题 (分)题号 :364/*【程序设计】功能:求一个四位数的各位数字的立方和*/ #include void wwjt();int fun(int n) *Program*Endmain() int k;k=fun(1234);printf(k=%dn,k);wwjt();void wwjt()FILE *IN,*OUT;int iIN,iOUT,i;IN=fopen(,r);if(IN=NULL)printf(Please Verify The Currernt Dir.it May Be Changed); O

16、UT=fopen(,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;第 20 章return s;第 10 题 (分) 题号 :502难度 : 中#include /*【程序设计】题目:用 while 语句求 1 100 的累计和*/void wwjt();int fun(int n)*Program* End *void main()int sum = 0;sum=fun(100);printf (sum = %dn, sum);

17、wwjt();void wwjt()FILE *IN,*OUT;int i;int iIN,iOUT;IN=fopen(,r);if(IN=NULL)printf(Please Verify The Currernt Dir.it May Be Changed); OUT=fopen(,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);

18、 fclose(OUT);答案: int i=1,sum=0; while(i=n) sum=sum+i;i+; return sum;难度 : 中 第 1 章第 11 题 (分) 题号 :53 /*【程序设计】功能:求一个四位数的各位数字的立方和*/ #include void wwjt();int fun(int n) *Program*Endmain()int k;k=fun(1234);printf(k=%dn,k);wwjt();void wwjt()FILE *IN,*OUT;int iIN,iOUT,i;IN=fopen(,r);if(IN=NULL)printf(Please

19、Verify The Currernt Dir.it May Be Changed); OUT=fopen(,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 题 (分)题号 :409难度 : 易第 20 章/*【程序设计】f-32 ),题目:输入华氏温度求摄氏温度。转换公式为 c=5/9 输出结果取两位小数。*/#include void wwjt();double fun(double m) *Progr

20、am*Endvoid main()double c,f;printf( 请输入一个华氏温度 :); scanf(%f,&f);c=fun(f);printf( 摄氏温度为 :%n,c); wwjt();void wwjt()FILE *IN,*OUT; int i;double iIN,iOUT;IN=fopen(,r); if(IN=NULL)printf(Please Verify The Currernt Dir.it May Be Changed); OUT=fopen(,w); if(OUT=NULL) printf(Please Verify The Current Dir. it

21、 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=*(m-32);难度 : 中return n;第 13 题 (分)题号 :345/*【程序设计】功能:将两个两位数的正整数a、b 合并形成一个整数放在 c中。合并的方式是:将a 数的十位和个位数依次放在c数的千位和十位上,b 数的十位和个位数依次放在c数的个位和百位上。例如:当 a 45, b=12。调用该函数后, c=4251 。*/ #i

22、nclude void wwjt();void fun(int a, int b, long *c)/*Program*/ 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(, r) ; wf = fopen(,w) ;for(i = 0 ; i 10 ; i+)fscanf(rf, %d,%d

23、, &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 题 (分) 题号 :335 难度 : 中 /*【程序设计】功能:求一个 n 位自然数的各位数字的积。 (n 是小于 10 的 自然数)*/ #include #include void wwjt();long fun(long n)*Program* End *main()long m;printf(Enter m: );s

24、canf(%ld, &m);printf(nThe result is %ldn, fun(m); wwjt();void wwjt()FILE *IN,*OUT;int c ;long t;long o;IN=fopen(,r);if(IN=NULL)printf(Read FILE Error);OUT=fopen(,w); if(OUT=NULL) printf(Write FILE Error);for(c=1;c0)d=n%10;s*=d;n/=10; return s;第 15 题 (分)题号 :337难度 : 中/*【程序设计】功能:将两个两位数的正整数a、b 合并形成一个整数放

25、在中。合并的方式是:将a 数的十位和个位数依次放在c数的百位和个位上, b 数的十位和个位数依次放 在c 数的十位和千位上。例如:当 a 45, b=12。调用该函数后, c=2415 。*/ #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 ( )F

26、ILE *rf, *wf ;int i, a,b ; long c ;rf = fopen(, r) ;wf = fopen(,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*100+a%10+b/10*10+b%10*1000;第 16 题 (分) 题号 :325 难度 : 中 /*【程序设计】功能:在键盘上输入一个 3 行 3 列矩阵的各个元素的值(

27、值 为整数),然后输出主对角线元素的平方和 , 并在 fun() 函数中输出。*/ #include void wwjt();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();int fun(int a33)*Program* End *void wwjt()FILE *IN,*OUT;int m;int n;int i33;int o;IN=fopen(,r); if(IN=NULL)printf(Read FILE Error);OUT=fop

28、en(,w);if(OUT=NULL)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;sum=0;for(i=0;i3;i+)sum=sum+aii*aii;return sum;第 17 题 (分)题号 :352难度 : 易/*【程序设计】功能:根据整型形参 m,计算如下公式的值: y=1/2 1/4 1/6 . 1/2m 。例如:若 m=9,则

29、应输出:*/#include void wwjt();double fun(int m)*Program*/* 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(,r); if(IN=NULL) printf(Read FILE Error);OUT=fopen(,w); if(OUT=NULL) printf(Write FILE Erro

30、r); for(i=0;i5;i+) fscanf(IN,%d,&t); o=fun(t);fprintf(OUT,%fn,o);fclose(IN); fclose(OUT);答案: double y=0;int i;for(i=1; i=m; i+)y+=(2*i); return(y);第 18 题 (分)题号 :312难度 : 中/*【程序设计】功能:调用函数 fun 判断一个三位数是否 水仙花数 。 在 main 函数中从键盘输入一个三位数,并输 出判断结果。请编写 fun 函数。说明:所谓 水仙花数 是指一 3 位数,其各位数字立方和 等于该数本身。例如: 153 是一个水仙花数,

31、因为 153=1+125+27 。*/ #include void wwjt();int fun(int n) *Program*Endmain()int n,flag;scanf(%d,&n);flag=fun(n);if(flag)printf(%d是水仙花数 n,n);elseprintf(%d不是水仙花数 n,n);wwjt();void wwjt()FILE *IN,*OUT;int iIN,i;int iOUT;IN=fopen(,r);if(IN=NULL)printf(Please Verify The Currernt Dir.it May Be Changed); OUT=

32、fopen(,w);if(OUT=NULL)printf(Please Verify The Current Dir. it May Be Changed); for(i=0;i10;i+)fscanf(IN,%d,&iIN);iOUT=fun(iIN);fprintf(OUT,%dn,iOUT);fclose(IN); fclose(OUT);答案: int bw,sw,gw;bw=n/100;sw=(n-bw*100)/10;gw=n%10;if(n=bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1;else return 0;第 19 题 (分)题号 :29难度/

33、*【程序设计】功能:对任意输入的 x ,用下式计算并输出 y 5 x10:中 第4 章的值*/ #include void wwjt();*Program*Endint fun(int n) void main ()int x,y;printf(enter x:);scanf(%d,&x);y=fun(x);printf(x=%d,y=%dn,x,y); wwjt();void wwjt()FILE *IN,*OUT;int i;int iIN;long int iOUT;IN=fopen(,r);if(IN=NULL)printf(Please Verify The Currernt Dir

34、.it May Be Changed); OUT=fopen(,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,%ldn,iOUT);fclose(IN); fclose(OUT);答案: int m;if(n=10)if(n10)m=-5;else m=0;else m=5;return m;第 20 题 (分)题号 :316难度 : 易/*【程序设计】功能:统计出若干个学生

35、的平均成绩,最高分以及得最高 分的人数。例如:输入 10 名学生的成绩分别为 92, 87,68,56, 92, 84 , 67,75,92, 66,则输出平均成绩为, 最高分为 92,得最高分的人数为 3 人。*/ #include void wwjt();float Max=0; int J=0;float fun(float array,int n) *Program* End *main( )float a10,ave;int i=0;for(i=0;i10;i+)scanf(%f,&ai); ave=fun(a,10); printf(ave=%fn,ave); printf(max

36、=%fn,Max); printf(Total:%dn,J); wwjt();void wwjt()FILE *IN,*OUT;float iIN10,iOUT;int iCOUNT;IN=fopen(,r);if(IN=NULL)printf(Please Verify The Currernt Dir.it May Be Changed); OUT=fopen(,w); if(OUT=NULL)printf(Please Verify The Current Dir. it May Be Changed); for(iCOUNT=0;iCOUNT10;iCOUNT+) fscanf(IN,

37、%f,&iINiCOUNT);iOUT=fun(iIN,10); fprintf(OUT,%f %fn,iOUT,Max);fclose(IN); fclose(OUT);答案: int i;float sum=0,ave;Max=array0;for(i=0;in;i+) if(Maxarray i) Max=array i; sum=sum+array i; ave=sum/n; for(i=0;in;i+) if(array i=Max) J+; return(ave);第 21 题 (分)题号 :389难度 : 易/*【程序设计】功能:编写函数求表达式的和( n 的值由主函数输入)1-

38、1/2+1/3-1/4+1/m例如:当 n=20 时 , 表达式的值为。*/#include void wwjt();double sum(int n)*Program*/* End */main()int n;scanf(%d,&n); printf(sum=%fn,sum(n); wwjt();void wwjt()FILE *IN,*OUT;int n;int i10;double o;IN=fopen(,r);if(IN=NULL)printf(Read FILE Error);OUT=fopen(,w);if(OUT=NULL)printf(Write FILE Error);for

39、(n=0;n5;n+) fscanf(IN,%d,&in);for(n=0;n5;n+)o = sum(in);fprintf(OUT,%fn,o);fclose(IN); fclose(OUT);答案: float s=0;int i,k=1;for(i=1;i=n;i+) s=s+k*i;k=-k;return(s);第 22 题 (分)题号 :322难度 : 中/*【程序设计】功能:判断一个整数 w的各位数字平方之和能否被5 整除,可以被 5 整除则返回 1,否则返回 0。*/ #include #include void wwjt();int fun(int w) main()*Pro

40、gram* End *int m; printf(Enter m: ); scanf(%d, &m);printf(nThe result is %dn, fun(m); wwjt();void wwjt()FILE *IN,*OUT;int c ;int t;int o;IN=fopen(,r); if(IN=NULL) printf(Read FILE Error);OUT=fopen(,w); if(OUT=NULL)printf(Write FILE Error); for(c=1;c=5;c+) fscanf(IN,%d,&t); o=fun(t);fprintf(OUT,%dn,o

41、);fclose(IN); fclose(OUT);答案: int k,s=0;dos=s+(w%10)*(w%10); w=w/10;while(w!=0); if(s%5=0)k=1; else k=0; return(k);难度 : 易第1章第 23 题 (分)题号 :22/*【程序设计】功能:从键盘为一维整型数组输入 10 个整数,调用 fun 函数找出其中最小的数,并在 main 函数中输出。 请编写 fun 函数。*/ #include void wwjt();int fun(int x,int n) *Program* End *main()int a10,i,min;for(i

42、=0;i10;i+)scanf(%d,&ai); for(i=0;i10;i+) printf(%3d,ai); printf(n); min=fun(a,10); printf(%dn,min); wwjt();void wwjt()FILE *IN,*OUT;int iIN10,i;int iOUT,iCOUNT;IN=fopen(,r);if(IN=NULL)printf(Please Verify The Currernt Dir.it May Be Changed); OUT=fopen(,w);if(OUT=NULL)printf(Please Verify The Current

43、 Dir. it May Be Changed); for(i=0;i10;i+)for(iCOUNT=0;iCOUNT10;iCOUNT+) fscanf(IN,%d,&iINiCOUNT);iOUT=fun(iIN,10);fprintf(OUT,%dn,iOUT);fclose(IN); fclose(OUT);答案: int min,i;min=x0;for(i=1;in;i+)if(ximin) min=xi;return min;第 24 题 (分)题号 :327难度 : 易/*【程序设计】功能:能计算从 1 开始到 n的自然数的和, n 由键盘输入, 并在 main() 函数中输

44、出。*/#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(,r);if(IN=NULL)printf(Read FILE Error);OUT=fopen(,w);if(OUT=NULL)printf(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=1;i=n;i+)su

温馨提示

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

评论

0/150

提交评论