首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言函数,将应填入(n)处。 【说明】 已知1900年1月1日是星期一,下面的函数count_5_13(int year)用于计算给定的年份year中有几个“黑色星期五”。“黑色星期五”指既是13日又是星期五的日期。 函
阅读以下说明和C语言函数,将应填入(n)处。 【说明】 已知1900年1月1日是星期一,下面的函数count_5_13(int year)用于计算给定的年份year中有几个“黑色星期五”。“黑色星期五”指既是13日又是星期五的日期。 函
admin
2009-01-20
28
问题
阅读以下说明和C语言函数,将应填入(n)处。
【说明】
已知1900年1月1日是星期一,下面的函数count_5_13(int year)用于计算给定的年份year中有几个“黑色星期五”。“黑色星期五”指既是13日又是星期五的日期。
函数count_5_13(int year)首先算出年份year的1月13日是星期几,然后依次计算每个月的13日是星期几,若是星期五,则计数。
程序中使用了函数isLeapYear(int year),其功能是判断给定年份是否为闰年,返回值为1(或0)表示year是(或不是)闰年。
【C语言函数】
int count_5_13(int year)
{
int date; /*date为0表示星期日,为1~6分别表示星期一至星期六*/
long days=0; /*days记录天数*/
int m,y,c=0; /*c用于表示黑色星期五的个数*/
if (year<1900) return-1;
/*计算从1900年1月1日起至给定年份year的1月13日间隔的天数*/
days=12;
for (y= 1900; y < year; y++) {
days +=365;
if (isLeapYear(y))(1);
}
date=((days%7) +1) %7; /*算出给定年份year的1月13日是星期几*/
c=((2)) ?1:0;
for(m=1;(3);m++) {
switch (m) {
case 1:case 3: case 5: case 7:case 8:case 10:case 12:
days=31; break;
case 4: case 6: case 9: case 11:
days=30; break;
case 2:days=28;
if((4)) days=29;
break;
}/*end of switch*/
date=((days%7)+ (5) )%7;
if (date==5) c++;
} /*end of for*/
return c;
}
选项
答案
(1)days++,days+=1,days=days+1,或其等价表示 (2)date==5,或其等价表示 (3)m<12,或其等价表示 (4)isLeapYear(year),或year%4==0 && year%100!=0||year%400==0,或其等价表示 (5)date
解析
本题考查基本程序设计能力。
题中程序用于计算给定年份中“黑色星期五”(既是13日又是星期五的日期)的数目。 基本的常识为平年每年365天、闰年366天。若今天是星期三(date),则7天后的那天也是星期三,依此类推,可算出m天后为星期几((date+m)%7,为0表示星期日)。
题目中给出了1900年1月1日是星期一,因此,对于给定的日期,首先需要算出其距离1900.1.1的天数,然后用上式计算该日期对应星期几。
要计算给定年份中有几个“黑色星期五”,可先计算出该年份的1月13日是星期几,然后计算该年内每月的13日是星期几。所以,程序中首先计算出1900年1月1日至给定年份的1月13日共有多少天(days)。
在计算给定日期段的天数时,需要考虑大、小月,对于2月份,则需要考虑当前年号是否为闰年。期间若跨年度,则按每年365天(闰年366天)累加天数。对于以下代码段:
for (y == 1900; y < year; y++) {
days+=365;
if(isLeapYear(y)) (1) ;
}
显然,程序中空(1)处应填入days++或其等价表示形式。
根据程序中的注释,经语句date=((days%7)+1)%7;处理后,date表示给定年份的1月13日是星期几,而c用于表示“黑色星期五”的个数,因此空(2)处应填入 date==5。
在下面的代码中,计算给定年份2月份之后每个月的13日星期几(计算天数时需要考虑大、小月,2月份要考虑是否为闰年),其中m表示月号。
for(m=1; (3) ;m++) {
switch (m) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
days=31; break;
case 4: case 6: case 9: case 11:
days=30; break;
case 2:days=28;
if( (4) ) days=29;
break;
}/*end of switch*/
由于1月13日已经考虑过,因此需要考虑的日期为2月至12月的每个13日,当月份m为12时,再计算出的日期就是下一年度的1月13日了,因此空(3)处应填入 m<12,空(4)处显然是判断当前年号是否为闰年,因此应填入isLeapYear(year)或 isLeapYear(y)。
对于代码date=((days%7)+ (5) %7;,之前已用date表示上个月13日是星期几,days表示间隔的天数,因此空(5)处应填入date。
转载请注明原文地址:https://jikaoti.com/ti/QZW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel中,设A1单元格中的值为2014-5-24,若在A2单元格中输入日期函数“=DAY(A1)”,按回车键后,则A2单元格中的值为(52)。
常用的统计图表有:柱形图、条形图、折线图、饼图等。下图所示的统计图表类型为__________。
欲在桌面上移动窗口位置可以拖曳(36)。
企业建立数据处理系统需要考虑的原则不包括________。
计算机操作人员对软件响应性的要求不包括(24)。
计算机处理的数字数据有数值数据和字符数据之分。对信息处理技术员来说,它们的主要区别是______。
信息处理技术员资格考试的试卷包括信息处理基础知识、计算机基础知识、法律法规知识、专业英语、办公软件使用技能五个方面。某次考试后,对这五个方面分别统计了各考生的得分率以及全国的平均得分率。为了直观展现每个考生在各个方面的水平以及该考生的整体水平,并与全国平均
设有关系R、S、T如下所示,则(55)________________。
操作系统的资源管理功能不包括________________。
随机试题
A.醛固酮分泌增多B.血浆晶体渗透压升高C.血浆胶体渗透压降低D.ADH分泌减少血Na+减少或血K+增多时
女,29岁。结婚两年未育,现停经8周感下腹隐痛伴阴道少许流血3天。妇科检查阴道少许血液,宫颈口未扩张,子宫约50天孕大,软,双附件正常。最可能的诊断是
A、堇菜科,含苷类和黄酮类成分B、报春花科,水浸后,对光可见黑色或褐色条纹C、菊科,含抗疟有效成分D、唇形科,含有橙皮苷结晶E、爵床科,含钟乳体青蒿的来源及特征为
地籍按表现形式分类,划分为()。
沿海经济开放区某城市一中外合资日化企业为增值税一般纳税人,主要业务是以外购化妆品生产和销售成套化妆品,2003年度(减免税期限已过)有关生产经营情况如下:(1)期初库存外购已税化妆品100万元。本期外购已税化妆品取得经税务机关认证的防伪税控增值税专
某年4月14日晚17点左右,曾某向警方报案称,下班后发现家中被盗,现场有明显翻动迹象。经民警详细勘验,在一被撬抽屉表面发现了一枚指纹。对此,有关指纹提取程序包括:①在指纹边贴放比例尺②把指纹粘贴在指纹卡上③进行局部拍照④对指纹进行拍照固定⑤用胶带
某一天,小张发现办公桌上的台历已经有7天没有翻了,就一次翻了7张,这7张的日期加起来之和是77,那么这一天是()。
根据国家统计局农民工统计监测调查,截至2012年12月31日,全国农民工总数为22542万人。其中本乡镇以外就业的外出农民工数量为14041万人,占农民工总数的62.3%;本乡镇以内的本地农民工数量为8501万人,占农民工总数的37.7%。在外出务工的农民
阅读下面一段说明文,完成下列5题。什么是星云?过去人们往往把天空中一切云雾状的天体都说成是星云。其实,离我们非常遥远的位于银河系以外的云雾状天体,并不是星云,而是与银河系类似的庞大的恒星系统。根据它们的外貌,人们有时也称其为河外星云,即银河系以外的星云。
American【D1】______willnotreturntothemoonasplannedifUSCongresspassesPresidentObama’sproposedbudget.Obama’sb
最新回复
(
0
)