c语言-2010春C语言上机试卷C03答案.doc_第1页
c语言-2010春C语言上机试卷C03答案.doc_第2页
c语言-2010春C语言上机试卷C03答案.doc_第3页
全文预览已结束

下载本文档

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

文档简介

2010年春 二级 C语言 上机试卷(试卷代号C03) 答案一、改错题(16分)【程序功能】输入一个正确日期且年份在19009999范围内,输出该日期之后第一天的日期。提示:能被4整除并且不能被100整除的年份是闰年,能被400整除的年份也是闰年,其他年份则是平年。【测试数据与运行结果】第一次运行输入:2008-1-31输出:2008-2-1第二次运行输入:2008-12-31输出:2009-1-1第三次运行输入:2008-2-28输出:2008-2-29【含有错误的源程序】#includestruct d int y,m,d; ; int leap(int y) return y%4=0&y%100!=0|y%400=0; next(struct d dt) /*语法错,中,改为struct d next(struct d dt) */ int p,mon213=0,31,28,31,30,31,30,31,31,30,31,30,31, 0,31,29,31,30,31,30,31,31,30,31,30,31; struct d nextd=dt; p=leap(dt.y); if(dt.d=monpdt.m) /*算法错,中,改为if(dt.dmonpdt.m) */ nextd.d+; else if(dt.m12) nextd.m+; nextd.d=1; else nextd.y+; nextd.m=nextd.d=0; /*算法错,易,改为nextd.m=nextd.d=1;*/ return nextd; void main() struct d d1,d2; puts(ninput a date:); scanf(%d-%d-%d,&d1.y,&d1.m,&d1.d); d2=next(); /*语法错,易,改为d2=next(d1); */ printf(%d-%d-%d,d2.y,d2.m,d2.d); getch();二、编程题(24分)【程序功能】若两个素数之和等于偶数x,则称这两个素数为“与偶数x关联的素数对”。由哥德巴赫猜想可知:任何大于等于6的偶数x都会有一个或多个素数对与之关联。在与x关联的所有素数对中,有一对素数的乘积值大于所有其他对素数的乘积值,称这个素数对为“与x关联且乘积值最大的素数对”。例如:(3,37)、(11,29)和(17,23)都是与40关联的素数对,这些素数对中乘积值最大的素数队是(17,23)。因此,称(17,23)为“与40关联且乘积值最大的素数对”。程序为一维数组中每个大于等于6的偶数,找出与其关联且乘积值最大的素数对。【编程要求】1编写函数int getMax(int x, int n, int y3)实现如下功能:取x指向的一维数组n个元素中所有大于等于6的偶数。求与每个偶数关联且乘积值最大的素数对。将每个偶数及乘积值最大素数对保存到y指向的数组中。函数返回y数组中有效数据的行数。2编写函数main实现如下功能:声明一维数组a和二维数组b并用测试数据初始化a数组。用a、b数组作实参调用getMax函数。按所给格式将b数组中数据输出到屏幕及文件myf2.out中。最后将考生本人的准考证号输出到文件myf2.out中。【测试数据与运行结果】a数组初始化数据: 2,12,22,3,13,23,4,14,24 输出:12: ( 5, 7) 22: ( 5,17) 14: ( 3,11) 24: (11,13)【参考答案】#include #include int isPrime(int x) int i=0,flag=1; for(i=2;i=sqrt(x);i+) if(x%i=0) flag=0;break; return flag;int getMax(int x, int n, int y3) int i,k,tmp,max,prm1,prm2,c=0; for(i=0;i=6 & tmp%2=0) max=prm1=prm2=0; for(k=3;kmax ) max=k*(tmp-k); prm1=k; prm2=tmp-k; yc0=tmp; yc1=prm1; yc2=prm2; c+; return c;void main() int a=2,12,22,3,13,23,4,14,24,b93=0,i,k; FILE *fp; if( ( fp= fopen(myf2.out,w)=NULL) printf(Can not open the file!); exit(0); k=getMax(a,9,b); for(i=0;ik;i+) fprintf(fp,n %2d: (%2d,%2d) ,bi0,bi1,bi2); printf(n %2d: (%2d,

温馨提示

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

评论

0/150

提交评论