试题二(共 15 分)
阅读以下说明和 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;
}
订单号:
遇到问题请联系在线客服
订单号:
遇到问题请联系在线客服