当前位置:首页
>
查试题
>
阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。【说明】函数GetDateld(DATE date)的功能是计算并返回指定合法日期date是其所在年份的第几天。例如,date表示2008年1月25日时,函数的返回值为25,date表示2008年3月3日时,函数返回值为63。函数Kday_Date(int theyear,int k)的功能是计算并返回指定合法年份theyear(theyear≥1900)的第k天(1≤k≤365)所对应的日期。例如,2008年的第60天是2008年2月29日,2009 年的第60天是2009年3月1日。函数isLeapYear(int y)的功能是判断y代表的年份是否为闰年,是则返回1,否则返回0。DATE 类型定义如下: typedef struct { int year ,month ,day; }DATE; 【C函数1】 int GetDateld( DATE date ) { const int days _month[13] = { 0,31,28,31,30,31,30,31,31,30, 31,30 ,31 ); int i ,date_id = date.day; for ( i = 0; i < (1) ; i++ ) date_id += days_month[i]; if ( (2) && isLeapYear(date.year) ) date_id++; return date_id; }【C函数2】 (3) Kday_Date(int theyear ,int k) { int i; DATE date; int days_month(13) = { 0,31,28,31,30,31,30,31,31,30,31,30,31}; assert(k>=1 && k<=365 && theyear>=1900); /*不满足断言时程序终止*/ date .year = (4) ; if (isLeapYear(date.year)) days_month[2]++; for (i=1; ; ) { k = k - days_month[i++]; if (k<=0) { date .day = k + (5) ; date.month = i-1; break; } } return date; }