C语言期末复习试题.docx
- 文档编号:27322235
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:136
- 大小:32.70KB
C语言期末复习试题.docx
《C语言期末复习试题.docx》由会员分享,可在线阅读,更多相关《C语言期末复习试题.docx(136页珍藏版)》请在冰豆网上搜索。
C语言期末复习试题
试卷编号:
10767
所属语言:
C语言
试卷方案:
TC_150********4
试卷总分:
570分
共有题型:
1种
一、程序设计共57题(共计570分)
第1题(10.0分)题号:
374难度:
易第2章
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数实现两个数据的交换,在主函数中输入任
意三个数据,调用函数对这三个数据从大到小排序。
------------------------------------------------*/
#include
voidwwjt();
voidswap(int*a,int*b)
{
/**********Program**********/
/**********End**********/
}
main()
{
intx,y,z;
scanf("%d%d%d",&x,&y,&z);
if(x if(x if(y printf("%3d%3d%3d",x,y,z); wwjt(); } voidwwjt() { FILE*IN,*OUT; intm,n; inti[2]; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFILEError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFILEError"); } for(n=0;n<3;n++) { for(m=0;m<2;m++) { fscanf(IN,"%d",&i[m]); } swap(&i[0],&i[1]); fprintf(OUT,"%d\n",i[0]); fprintf(OUT,"%d\n",i[1]); } fclose(IN); fclose(OUT); } 答案: ---------------------- intk; k=*a; *a=*b; *b=k; ---------------------- 第2题(10.0分)题号: 381难度: 易第2章 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 求一批数中小于平均值的数的个数。 ------------------------------------------------*/ #include voidwwjt(); intaverage_num(inta[],intn) { /**********Program**********/ /**********End**********/ } main() { intn,a[100],i,num; scanf("%d",&n); for(i=0;i scanf("%d",&a[i]); num=average_num(a,n); printf("thenumis: %d\n",num); wwjt(); } voidwwjt() { FILE*IN,*OUT; intn; inti[10]; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFILEError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFILEError"); } for(n=0;n<5;n++) { fscanf(IN,"%d",&i[n]); } o=average_num(i,5); fprintf(OUT,"%d\n",o); fclose(IN); fclose(OUT); } 答案: ---------------------- inti,sum=0,k=0; doubleaverage; for(i=0;i sum=sum+a[i]; average=sum*1.0/n; for(i=0;i if(average>a[i])k++; return(k); ---------------------- 第3题(10.0分)题号: 406难度: 易第2章 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 编写函数fun求1000以内所有7的倍数之和。 ------------------------------------------------*/ #defineN1000 #include voidwwjt(); intfun(intm) { /**********Program**********/ /**********End**********/ } voidmain() { intsum; sum=fun(7); printf("%d以内所有%d的倍数之和为: %d\n",N,7,sum); wwjt(); } voidwwjt() { FILE*IN,*OUT; intn; inti[10]; into; OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFILEError"); } o=fun(6); fprintf(OUT,"%d\n",o); fclose(IN); fclose(OUT); } 答案: ---------------------- ints=0,i; for(i=1;i if(i%m==0) s+=i; returns; ---------------------- 第4题(10.0分)题号: 324难度: 易第2章 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 能计算从1开始到n的自然数中偶数的平方的和,n由 键盘输入,并在main()函数中输出。 (n是偶数) ------------------------------------------------*/ #include voidwwjt(); intfun(intn) { /**********Program**********/ /**********End**********/ } main() { intm; printf("Enterm: "); scanf("%d",&m); printf("\nTheresultis%d\n",fun(m)); wwjt(); } voidwwjt() { FILE*IN,*OUT; intt; into; intc; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFILEError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFILEError"); } for(c=1;c<=5;c++) { fscanf(IN,"%d",&t); o=fun(t); fprintf(OUT,"%d\n",o); } fclose(IN); fclose(OUT); } 答案: ---------------------- intsum,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的值 要求: 使用程序中定义的变量 -------------------------------------------------------*/ #include"stdio.h" voidwwjt(); //函数功能: 求1-3+5-7+…-+n的值 intfun(intn) { inti,s=0,f=1;//i定义为循环变量,s为1-3+5-7+…-n的值 /**********Program**********/ /**********End**********/ returns; } main() { printf("%d",fun(101)); wwjt(); } voidwwjt() { FILE*IN,*OUT; inti,n; IN=fopen("in.dat","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrentDir..ItMayBeChanged"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("PleaseVerifyTheCurrentDir..ItMayBeChanged"); } for(i=0;i<5;i++) { fscanf(IN,"%i",&n); fprintf(OUT,"%ld\n",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/6+1/7+1/8+1/9+1/10...+1/(m+5) 例如: 若m=9,则应输出: 1.168229 ------------------------------------------------*/ #include voidwwjt(); doublefun(intm) { /**********Program**********/ /**********End**********/ } main() { intn; printf("Entern: "); scanf("%d",&n); printf("\nTheresultis%1f\n",fun(n)); wwjt(); } voidwwjt() { FILE*IN,*OUT; inti; intt; doubleo; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFILEError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFILEError"); } for(i=0;i<5;i++) { fscanf(IN,"%d",&t); o=fun(t); fprintf(OUT,"%f\n",o); } fclose(IN); fclose(OUT); } 答案: ---------------------- doubley=0; inti; for(i=0;i<=m;i++) {y+=1.0/(i+5);} return(y); ---------------------- 第7题(10.0分)题号: 392难度: 中第2章 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 求一批数中最大值和最小值的积。 ------------------------------------------------*/ #defineN30 #include"stdlib.h" #include voidwwjt(); intmax_min(inta[],intn) { /**********Program**********/ /**********End**********/ } main() { inta[N],i,k; for(i=0;i a[i]=random(51)+10; for(i=0;i { printf("%5d",a[i]); if((i+1)%5==0)printf("\n"); } k=max_min(a,N); printf("theresultis: %d\n",k); wwjt(); } voidwwjt() { FILE*IN,*OUT; intn; inti[10]; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFILEError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFILEError"); } for(n=0;n<10;n++) { fscanf(IN,"%d",&i[n]); } o=max_min(i,10); fprintf(OUT,"%d\n",o); fclose(IN); fclose(OUT); } 答案: ---------------------- inti,max,min; max=min=a[0]; for(i=1;i if(a[i]>max)max=a[i]; elseif(a[i] return(max*min); ---------------------- 第8题(10.0分)题号: 342难度: 中第2章 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出矩阵第一行与第三行元素之和, 并在fun()函数中输出。 ------------------------------------------------*/ #include voidwwjt(); voidfun(inta[3][3]) { /**********Program**********/ /**********End**********/ } main() { inti,j,s,a[3][3]; for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&a[i][j]); } s=fun(a); printf("Sum=%d\n",s); wwjt(); } voidwwjt() { FILE*IN,*OUT; intm; intn; inti[3][3]; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFILEError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFILEError"); } for(m=0;m<3;m++) { for(n=0;n<3;n++) fscanf(IN,"%d",&i[m][n]); } o=fun(i); { fprintf(OUT,"%d\n",o); getch(); } fclose(IN); fclose(OUT); } 答案: ---------------------- intsum; inti,j; sum=0; for(i=0;i<3;i+=2) for(j=0;j<3;j++) sum=sum+a[i][j]; returnsum; ---------------------- 第9题(10.0分)题号: 364难度: 中第2章 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 求一个四位数的各位数字的立方和。 -----------------------------------------------*/ #include voidwwjt(); intfun(intn) { /**********Program**********/ /**********End**********/ } main() { intk; k=fun(1234); printf("k=%d\n",k); wwjt(); } voidwwjt() { FILE*IN,*OUT; intiIN,iOUT,i; IN=fopen("in.dat","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrerntDir..itMayBeChanged"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("PleaseVerifyTheCurrentDir..itMayBeChanged"); } for(i=0;i<5;i++) { fscanf(IN,"%d",&iIN); iOUT=fun(iIN); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); } 答案: ---------------------- intd,s=0; while(n>0) {d=n%10; s+=d*d*d; n/=10; } returns; ---------------------- 第10题(10.0分)题号: 502难度: 中第20章 #include /*------------------------------------------------------- 【程序设计】 --------------------------------------------------------- 题目: 用while语句求1~100的累计和。 -------------------------------------------------------*/ voidwwjt(); intfun(intn) { /**********Program**********/ /**********End**********/ } voidmain() { intsum=0; sum=fun(100); printf("sum=%d\n",sum); wwjt(); } voidwwjt() { FILE*IN,*OUT; inti; intiIN,iOUT; IN=fopen("in.dat","r"); if(IN==NULL) { printf("PleaseVerifyTheCurrerntDir..itMayBeChanged"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("PleaseVerifyTheCurrentDir..itMayBeChanged"); } for(i=0;i<5;i++) { fscanf(IN,"%d",&iIN); iOUT=fun(iIN); fprintf(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 复习 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)