资源描述:
《c语言-2010春c语言上机试卷c03答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2010年春二级C语言上机试卷(试卷代号C03)答案一、改错题(16分)【程序功能】输入一个正确日期且年份在1900~9999范围内,输出该日期之后第一天的日期。提示:能被4整除并且不能被100整除的年份是闰年,能被400整除的年份也是闰年,其他年份则是平年。【测试数据与运行结果】第一次运行输入:2008-1-31输出:2008-2-1第二次运行输入:2008-12-31输出:2009-1-1第三次运行输入:2008-2-28输出:2008-2-29【含有错误的源程序】#includestructd{inty,
2、m,d;};intleap(inty){returny%4==0&&y%100!=0
3、
4、y%400==0;}next(structddt)/*语法错,中,改为structdnext(structddt)*/{intp,mon[2][13]={{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}};structdnextd=dt;p=leap(dt.y);if(dt.d<=mon[p][dt.m])/*算法错,中,改为if(d
5、t.d6、%d-%d-%d",d2.y,d2.m,d2.d);getch();C语言2010年春C03答案第3页}二、编程题(24分)【程序功能】若两个素数之和等于偶数x,则称这两个素数为“与偶数x关联的素数对”。由哥德巴赫猜想可知:任何大于等于6的偶数x都会有一个或多个素数对与之关联。在与x关联的所有素数对中,有一对素数的乘积值大于所有其他对素数的乘积值,称这个素数对为“与x关联且乘积值最大的素数对”。例如:(3,37)、(11,29)和(17,23)都是与40关联的素数对,这些素数对中乘积值最大的素数队是(17,23)。因此,称(17
7、,23)为“与40关联且乘积值最大的素数对”。程序为一维数组中每个大于等于6的偶数,找出与其关联且乘积值最大的素数对。【编程要求】1.编写函数intgetMax(intx[],intn,inty[][3])实现如下功能:取x指向的一维数组n个元素中所有大于等于6的偶数。求与每个偶数关联且乘积值最大的素数对。将每个偶数及乘积值最大素数对保存到y指向的数组中。函数返回y数组中有效数据的行数。2.编写函数main实现如下功能:声明一维数组a和二维数组b并用测试数据初始化a数组。用a、b数组作实参调用getMax函数。按所给格式将b数组
8、中数据输出到屏幕及文件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#includeintisPrime(intx){inti=0,flag=1;for(i=2;i<=sqrt(x);i++)if(x%i==0){flag=0;break;}returnflag;}intge
9、tMax(intx[],intn,inty[][3]){inti,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;}}C语言2010年春C03答案第3页y[c][0]=tmp;y[c][1]=prm1;y[c]
10、[2]=prm2;c++;}}returnc;}voidmain(){inta[]={2,12,22,3,13,23,4,14,24},b[9][3]={0},i,k;FILE*fp;if((fp=fopen("myf2.out","w"))==NULL){pr