


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2010年春 二级 C语言 上机试卷(试卷代号C05) 答案一、改错题(16分)【程序功能】一个数列中相邻的n个数被称为n阶子序列。程序实现在二维数组a的每一行中找出和值最大的3阶子序列,并将这些子序列的起始列下标及和值保存在二维数组b中。函数sta在pa指向的一维数组m个元素中找出和值最大的n阶子序列,将找到的子序列起始下标保存到pos指向的变量中,函数返回最大和值。【测试数据与运行结果】数组初始化数据: 1 2 3 4 51 2 3 2 16 5 4 3 2输出:positon: a02 max:12positon: a11 max: 7 positon: a20 max:15【含有错误的源程序】#include stdio.hint sta(int *pa,int m,int n,int *pos) int i=0,j=0, max=1,sum; int b; /* 语法错,中,改为 int *b */ if(nm) b=(int *)malloc(sizeof(int)*(m-n+1); for(i=0;i=m-n;i+) for(sum=0,j=i+1;ji+n;j+) /* 算法错,中,改为:for(sum=0,j=i;ji+n;j+)或for(sum=pai,j=i+1;ji+n;j+) */ sum=sum+paj ; bi=sum; max=b0; for(i=1;imax) max=bi ; *pos=i; free(b); return max ;void main() int a3=1,2,3,4,5,1,2,3,2,1,6,5,4,3,2,b32=0,i,n,*p=&n; /* 语法错,易,改为 int a35=1,2,3,4,5,1,2,3,2,1,6,5,4,3,2 */ for(i=0;i3;i+) bi1=sta(ai,5,3,p); bi0=p; /* 语义错,中, 改为bi0=n; 或 bi0=*p; */ printf(n positon: a%d%d max:%4d,i, bi0,bi1); getch();二、编程题(24分)【程序功能】判断求余运算“%”对于一个数组是否封闭。求余运算“%”对于一个数组的封闭性定义为:对于一维数组a中的任意两个元素ai和aj ( i j ),若当aj不为0时ai%aj的值都存在于a数组中,则称求余运算“”对于a数组是封闭的。【编程要求】1. 编写函数int judge( int a , int n)实现以下功能:判断求余运算对于a指向的包含n个元素的数组是否封闭,若封闭则函数返回1,否则函数返回0。2编写函数main实现以下功能:声明一维数组a和b并用测试数据初始化,分别用a数组和b数组作实参两次调用judge函数,判断求余运算“%”对于a数组及b数组是否封闭,若封闭则输出“yes”,否则输出“no”。将a数组和b数组中数据及判断结果输出到屏幕及文件myf2.out中。最后将考生本人的准考证号输出到文件myf2.out中。【测试数据与运行结果】a数组初始化数据: 1,3,22,4,15,2,7,5,0 b数组初始化数据: 1,3,8,4,6,7,5,0 输出: 1 3 22 4 15 2 7 5 0 yes 1 3 8 4 6 7 5 0 no【参考答案】#include int belong( int a ,int n,int x) int i; for(i=0;in;i+) if(x=ai) return 1; return 0;int judge (int a , int n ) int i,j; for(i=0;in;i+) for(j=0;jn;j+) if(i!=j) if(aj!=0&!belong(a,n,ai%aj) return 0; return 1;main( ) FILE *fp; int a=1,3,22,4,15,2,7,5,0,b=1,3,8,4,6,7,5,0,i,m; if( ( fp= fopen(d:myf2.out,w)=NULL) printf(Can not open the file!); exit(0); m= judge (a,9); for(i=0;i9;i+) printf(%4d,ai); fprintf(fp,%4d,ai); if(m) printf( yesn); fprintf(fp, yesn); else printf( non); fprintf(fp, non); m= judge (b,8); for(i=0;i8;i+) printf(%4d,bi); fprintf(fp,%4d,bi); if(m) printf( yesn); fprintf(fp, yesn); else printf( no
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论