- 0
- 0
- 约7.06千字
- 约 6页
- 2026-02-06 发布于北京
- 举报
2009年秋二级C语言上机试卷(试卷代号C01)
一、改错题(16分)
输入两个正确日期且年份在19009999范围内,计算并输出两个日期之间间隔的天数。
提示:能被4整除并且不能被100整除的年份是闰年,能被400整除的年份也是闰年,
其他年份则是平年。
【测试数据与运行结果】
显示:firstdate:
输入:1980-2-1
显示:seconddate:
输入:2009-8-1
输出:10774days
【含有错误的源程序】
#includestdio.h
#defineleap(inty)((y)%40(y)%100!=0||(y)%4000)
/*语法错,易,改为#defineleap(y)((y)%40(y)%100!=0||(y)%4000)*/
structd
{inty,m,d;};
intdays(structdd1,structdd2)
{intmon[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}};
inti;longtd=0;
for(i=d1.y;id2.y;i++)
tdleap(i)?366:365;/*算法错,中,改为td+=leap(i)?366:365;*/
for(i=1;id1.m;i++)
td-=mon[leap(d1.y)][i];
td-=d1.d-1;
for(i=1;id2.m;i++)
td+mon[leap(d2.y)][i];
td+d2.d-1;
returntd;
}
voidmain()
{structd1,d2;/*语法错,易,改为structdd1,d2;*/
puts(firstdate:);
scanf(%d-%d-%d,d1.y,d1.m,d1.d);
puts(seconddate:);
scanf(%d-%d-%d,d2.y,d2.m,d2.d);
printf(%ddays\n,days(d1.y,d2.y));
/*语法错,中,改为printf(%dds\n,days(d1,d2));*/
getch();
}
二、编程题(24分)
输入两个自然数P和Q(PQ),找出满足下列条件的整数组(K,M,N):
(1)P≤KM≤Q
(2)K*K+M*M=N*N
【编程要求】
1.编写函数intchlm(intp,intq,inta[][3])实现以下功能:查找K、M在[p,q]范围内取值且
满足以上条件的所有整数组(K,M,N)。若找到则将这些整数组保存到a指向的数组中,
函数返回找到的整数组的组数。若找不到则函数返回0。
2.编写函数main实现以下功能:一个二维数组a变量p、q,输入两个自然数并保存
到p和q中(pq),调用chlm函数在[p,q]范围内查找满足以上条件的整数组。若找不
到则在屏幕上输出“notfound”,否则将查找结果保存到a数组中,输出a数组数据到
屏
您可能关注的文档
最近下载
- DL 5190.8-2019 电力建设施工技术规范 第8部分: 加工配制.docx VIP
- 2025及未来5年中国智能水表行业竞争格局分析及投资战略咨询报告.docx
- NB_T 47014-2023承压设备焊接工艺评定.pdf VIP
- 《组织效能提升》课件.ppt VIP
- 建筑施工 - L17J104复合外模板现浇混凝土保温系统建筑构造(山东图集2018.1.1实施).pdf VIP
- 2026届高三语文最新综合练习语言文字运用强化试卷.pdf VIP
- JVC摄像机DT-V1710CGEB用户手册.pdf
- 林学概论-考试资料汇编.pdf VIP
- 水库公路复建工程工程地质勘察报告(详细勘察).doc VIP
- 力劲DCC400吨压铸机说明书.pdf VIP
原创力文档

文档评论(0)