28次机试试题.doc_第1页
28次机试试题.doc_第2页
28次机试试题.doc_第3页
28次机试试题.doc_第4页
28次机试试题.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

四川省第二十八次计算机二级考试C与C+语言 机试试题(2008年4月20日)(第一套) (60分钟)一、程序调试题(40分)磁盘上有一C程序test1-1.c,其功能是:将具有N个元素的数组的后m个元素移到前m个位置。例如,若输入m=3,数组元素为:1 2 3 4 5 6 7 8 9 10,则输出结果为:8 9 10 1 2 3 4 5 6 7。要求将结果显示在屏幕上并写入文件test1-1.dat中。请更改程序中的错误,使程序能得出正确结果。注意:不得增行或删行,也不得更改程序结构。源程序如下:# include stdio.h# define N 10void main() int aN,k,m,r,*t; FILE *fp; fp=fopen(test1-1.dat,w); if(fp=NULL) printf(File can not open!n); exit(0); printf(nInput m:); scanf(%d,m); printf(nInput 10 numbers:n); for(k=0;kN;k+) scanf(%d,a); for(r=0;r0;k-) ak=ak-1; ak=t; for(k=0;k2) printf(paramelers missing!n); exit(0); if(f1=fopen(*argv1,w)=NULL) printf(cannot open file1!n); exit(0); if(f2=fopen(test2-1.in,r)=NULL) printf(cannot open file2!n); exit(0); while(!feof(f2) void rev(); fputc(n,f1); fclose(f1); fclose(f2);void rev(void) char c; if(!feof(f2)|(c=fgetc(f2)!=n) rev(); fputc(c,f2); 二、编写程序test2-2.c(60分)从键盘上输入整数m和k,将大于且紧靠m的k个素数存入数组xx中,将结果显示在屏幕上。要求:(1)在num函数中完成找出紧靠m的k个素数,并存入数组xx中。函数num的定义形式为:void num(int m,int k,int xx)(2)main函数完成数据的输入和输出。(第三套)(60分钟)一、程序调试题(40分)磁盘上有一个名为test3-1.c的C程序文件,其中函数fun的功能是:找出被2、3、5整除时余数均为1的最小的10个自然数,并存放到一个整型数组中。在main函数中调用函数fun,输出最后结果,并将结果输出到文本文件test3-1.txt中。请改正程序中的错误,使其能得到正确的结果。注意:不得增行或删行,也不得更改程序结构。源程序如下:# include void fun(int a) int i; int cnt=0; for(i=1;cnt10;i+) if(i%2=1|i%3=1|i%5=1) acnt=i; cnt+; void main() int a10; int i; FILE *fp; if(fp=fopen(test3-1.txt,w)=null) printf(Cannot open the file.n); exit(0); fun(); for(i=0;i10;i+) printf(%4d,ai); fprintf(%4d,ai); fclose(fp);二、编写程序test3-2.c(60分)请编写函数fun,它的功能是:去掉数组a中的最大数和最小数,计算剩余数的平均值,并把平均值作为函数值返回。在main函数中输入n个互不相同的整数,例如(n=10):95,89,70,65,82,56,60,80,66,74,调用函数fun,输出结果:73.25。28-1套 参考答案:一、程序调试题(文件名为 test1-1.c)( 40 分 )# include stdio.h# define N 10void main() int aN,k,m,r,*t; /* 改为:t */ FILE *fp; fp=fopen(test1-1.dat,w); /*改为:test1-1.dat */ if(fp=NULL) printf(File can not open!n); exit(0); printf(nInput m:); scanf(%d,m); /* 改为:&m */ printf(nInput 10 numbers:n); for(k=0;kN;k+) scanf(%d,a); /* 改为:a+k */ for(r=0;r0;k-) ak=ak-1; ak=t; /* 改为:a0 */ for(k=0;kN;k+) printf(%4d,ak); fprintf(fp,%4d,ak); fclose(fp);评分标准:每改对一处得8分二、编程题(程序文件取名为 test1-2.c)(60分)评分标准:1fun函数编写:1) 函数定义正确,能正确的定义和使用返回值10分2) 参数定义、传递正确 10分3) 算法正确,能按要求求出所有满足条件的二位数 15分2main函数:1) 能正确定义数组,并能正确进行输出 15分2) 能正确调用函数 10分参考程序:# include int fun(int a) int i,j=0; for(i=999;i=100;i-) if(i/100-i/10%10=i%10) aj=i; j+; return j;void main() int a100; int i,n; n=fun(a); for(i=0;i2) /* 改为: */ printf(paramelers missing!n); exit(0); if(f1=fopen(*argv1,w)=NULL)/* 改为:argv1 */ printf(cannot open file1!n); exit(0); if(f2=fopen(test2-1.in,r)=NULL) printf(cannot open file2!n); exit(0); while(!feof(f2) void rev(); /* 去掉void */ fputc(n,f1); fclose(f1); fclose(f2);void rev(void) char c; if(!feof(f2)|(c=fgetc(f2)!=n) /* 改为:& */ rev(); fputc(c,f2); /* 改为:f1 */ 评分标准:每改对一处得8分二、编程题(程序文件取名为 test2-2.c)(60分)评分标准:1、输入、输出方法正确10分2、函数定义及参数传递正确 10分3、求素数方法正确 20分 4、将素数正确存入数组xx中 10分 5、输出结果正确 10分参考程序:# include void num(int m,int k,int xx) int data=m+1; int half,n=0,i; while(1) half=data/2; for(j=2;jhalf) xxn+=data; if(n=k) break; data+; void main() int m,n,xx10000; printf(Enter m,n:); scanf(%d,%d,&m,&n); num(m,n,xx); for(m=0;mn;m+) printf(%d ,xxm); printf(n);28-3套 参考答案:一、程序调试题(文件名为 test3-1.c)( 40 分 )# include void fun(int a) int i; int cnt=0; for(i=1;cnt10;i+) /* 改为: = */ if(i%2=1|i%3=1|i%5=1) /* 改为:& */ acnt=i; cnt+; void main() int a10; int i; FILE *fp; if(fp=fopen(test3-1.txt,w)=null) /* 改为:NULL */ printf(Cannot open the file.n); exit(0); fun(); /* 改为:fun(a) */ for(i=0;i10;i+) printf(%4d,ai); fprintf(%4d,ai); /* 改为:fp,%4d */ fclose(fp);评分标准:每改对一处得8分二、编程题(程序文件取名为 test3-2.c)(60分)评分标准:1fun函数编写40分:1) 函数定义、形参书写正确、有正确的返回值 10分2) 能正确的求出最大值和最小值 20分3) 能正确的求出平均分 10分2main函数20分:1) 能正确定义实参一维数组,并能正确的对整型数组进行输入 10分2) 正确调用fun函数并输出正确结果 10分参考程序:# include double fun(int a,int n) int i,max,min; double s=0,aver; max=min=a0; for(i=0;in;i+) s=s+ai; if(maxai) min=ai; aver=(s-max-min

温馨提示

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

评论

0/150

提交评论