c语言-2010春C语言上机试卷C05答案.doc

上传人:wux****ua 文档编号:9011120 上传时间:2020-04-02 格式:DOC 页数:3 大小:43.50KB
返回 下载 相关 举报
c语言-2010春C语言上机试卷C05答案.doc_第1页
第1页 / 共3页
c语言-2010春C语言上机试卷C05答案.doc_第2页
第2页 / 共3页
c语言-2010春C语言上机试卷C05答案.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述
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( non); fprintf(fp, non); fprintf(fp,nMy exam number is :0112400123); fclose(fp); getch();
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!