编写程序,对用户输入的年份和月份求该月有多少天。要求:求天数函数原型为 int Count(int year,int month)//返回year年month月的天数,由主函数调用实现;数据输入输出在主函数中实现,如果用户输入月份超过1~12范围,给出“输入月份错误”信息。 提示:每年1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月闰年有29天,非闰年有28天。

编写程序,对用户输入的年份和月份求该月有多少天。要求:求天数函数原型为 int Count(int year,int month)//返回year年month月的天数,由主函数调用实现;数据输入输出在主函数中实现,如果用户输入月份超过1~12范围,给出“输入月份错误”信息。 提示:每年1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月闰年有29天,非闰年有28天。


参考答案和解析
DisplayDaysOfMonth.java

相关考题:

●试题八阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。【说明】设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期的基本运算,如某日期加上天数、某日期减去天数、两日期相差的天数等。在Date类中设计如下重载运算符函数:Date operator+(int days):返回某日期加上天数得到的日期。Date operator-(int days):返回某日期减去天数得到的日期。int operator-(Date&b):返回两日期相差的天数。【程序】#includeiostream.hint day tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};∥day_tab二维数组存放各月天数,第一行对应非闰年,第二行对应闰年class Date{int year,month,day;∥年,月,日int leap(int);∥判断是否为闰年int dton(Date&);Date ntod(int);public:Date(){}Date(int y,int mint d){year=y;month=m;day=d;}void setday(intd){day=d;}void setmonth(int m){month=m;}void setyear(int y){year=y;}int getday(){return day;}int getmonth(){return month:}int getyear(){return year;)Date operator+(int days)∥+运算符重载函数{static Date date;int number= (1) ;date=ntod(number);return date;}Date operator-(int days)∥-运算符重载函数{staffs Date date;int number= (2) ;number-=days;date=ntod(number);return date;}int operator-(Date &b)∥-运算符重载函数{int days= (3) ;return days;}void disp(){coutyear"."month"."dayendl;}};int Date::leap(int year){if( (4) )∥是闰年return 1;∥不是闰年elsereturn0:}int Date::dton(Date &d)∥求从公元0年0月0日到d日期的天数{inty,m,days=0;for(y=1;y=d.year;y++)if( (5) )days+=366;∥闰年时加366天else days+=365;∥非闰年时加365天for(m=0;md.month-1;m++)if( (6) )days+=day_tab[1][m];elsedays+=day_tab[0][m];days+=D.day;return days;}Date Date::ntod(intn)∥将从公元0年0月0日的天数转换成日期{int y=1,m=1,d,rest=n,lp;while (1){if(leap(y))if(rest=366)break;else rest-=366;else∥非闰年if(rest=365)break;else rest-=365;y++;}y--;Ip=Ieap(y);while (1){if(Ip)∥闰年if(restday_tab[1][m-1])rest-=day_tab[1][m-1];else break;else∥非闰年if(restday_tab[0][m-1])rest-=day_tab[0][m-1];else break;m++;}d=rest;return Date(y;m,d);}void main(){Date now(2003,10,1),then(2005,6,5);cout"now:";now.disp();cout"then:";then.disp();cout"相差天数:"(then-now)endl;Date dl=now+1000,d2=now-1000;cout"now+1000:";d1.disp();cout"now-1000:":d2.disp();}

●试题七阅读以下说明和C++代码,将解答写入答题纸的对应栏内。【说明】请编写一个函数int SeqSearch(int list[],int start,int n,int key),该函数从start开始,在大小为n的数组list中查找key值,返回最先找到的key值的位置,如果没有找到则返回-1。请修改程序中画线部分的错误并将不同情况下的输出结果补充完整。【程序】文件search.cpp的内容如下:#include iostream.hint SeqSearch(int list[],int start,int n,int key){for(int i=start;i=n;i++)// (1){if(list[i]=key) // (2){return i;}}return -1;}void main(){int A[10];int key,count=0,pos;cout" Enter a list of 10 integers: ";for(pos=0;pos10;pos++){cinA; // (3)}cout"Enter a key: ";cinkey;pos=0;while((pos=SeqSearch(A,pos,10,key))!=-1){count++;pos++;}coutkey" occurs "count(count!=1?" times":" time")" in the list."endl;}第一种情况:输入2 3 12 6 8 45 8 33 7 输入key:8输出: (4)第二种情况:输入2 3 12 6 8 45 8 33 7 输入key:9输出: (5)

下列给定的程序中,函数fun()的功能是:求输入的两个数中较小的数。例如:输入5 10,结果为min is 5。[注意] 部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。[试题源程序]include <stdio.h>include <conio.h>int fun(int x, (1) ;int z;z=x<y (2) x:y;return(z);}main()int a, b, c;scanf("%d, %d\n", (3) );c=fun(a, b);printf("min is%d:, c);}

有以下程序: Class Date { public: Date(int y,int m,mt d); { year=y; month=m; day=d; } Date(int y=2000) { year=y; month=10; day=1; } Date(Date D) { year=d.year; month=d.month; day=d.day; } Void prinA.2B.3C.4D.5

( 9 )下面的函数利用递归实现了求 1+2+3+ …… +n 的功能:int sum ( int n ) {if ( n==0 )return 0;elsereturn n+sum ( n-1 ) ;}在执行 sum ( 10 )的过程中,递归调用 sum 函数的次数是【 9 】 。

() 阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。[说明] 使用等价类划分法为NextDate函数设计测试用例。 NextDate函数包含三个输入变量month、day、year(month、day、year均为整数,并且满足:1≤ month ≤12;1≤ day ≤31;1912 ≤year ≤2050),函数的输出为输入日期后一天的日期。 [问题1] (5分) 请列举出5种常用的黑盒测试用例设计方法。[问题2] (6分) 分析NextDate函数的规格说明,列出输入域等价类表。[问题3] (4分) 根据等价类表设计能覆盖所有等价类的测试用例。

有以下程序:class Date{public:Date(int y,int m,int d);{year=y;month=mday=d;}Date(int y=2000){year=y;month=10;day=1;}Date(Date d){year=d.year;month=d.month;day=d.day;}void print( ){cout<<year<<"."<<month<<"."<<day<<endl;}private:int year,month,day;};Date fun(Date d){Date temp;temp=d;return temp;}int main( ){Date datel(2000,1,1),date2(0,0,0);Date date3(datel);date2=fun(date3);return 0;}程序执行时,Date类的拷贝构造函数被调用的次数是A.2B.3C.4D.5

请补充fun函数,该函数的功能是:判断一个年份是否为闰年。例如,1900年不是闰年,2004是闰年。[注意] 部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。[试题源程序]include<stdio.h>include<conio.h>int fun(int n){int fiag=0;if(n%4==0){if( (1) )fiag=1;}if( (2) )flag=1;return (3) ;}void main(){int year;clrscr();printf("Input the year:");scanf("%d", &year);if(fun(year))printf("%d is a leap year.\n", year);elseprintf("%d is not a leap year.\n", year);}

阅读以下说明和C语言函数,填补空缺。[说明]已知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)) ________ ;}date=((days%7)+1)%7;/*算出给定年份year的1月13日是星期几+/c=( ________ )?1:0;for(m=1; ________ ; 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( ________ )days=29;break;}/*end of switch*/date=((days%7)+ ________ )%7;if (date==5) c++;} /*end of for*/return c;}

阅读下列说明,回答问题1至问题3。【说明】以下代码由C语言书写,能根据指定的年、月计算当月所含天数。int GetMaxDay( int year, int month ){int maxday = 0;if ( month >= 1 month <= 12 ){if ( month == 2 ){if ( year % 4 == 0 ){if ( year % 100 == 0 ){if ( year % 400 == 0 )maxday = 29;elsemaxday = 28;}elsemaxday = 29;}elsemaxday = 28;}else{if ( month == 4 || month == 6 || month == 9 || month == || )maxday = 30;elsemaxday = 31;}}return maxday; }请画出以上代码的控制流图。请计算上述控制流图的环路复杂度V(G)。假设year的取值范围是1000<year<2001,请使用基本路径测试法为变量year、 month设计测试用例(写出year取值、month取值、maxday预期结果),使之满足基本路径覆盖要求。请帮忙给出每个问题的正确答案和分析,谢谢!

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期的基本运算,如某日期加上天数、某日期减去天数、两日期相差的天数等。在Date类中设计如下重载运算符函数:Date operator + (int days) : 返回某日期加上天数得到的日期。Date operator - (int days) : 返回某日期减去天数得到的日期。int operator - (Dateb): 返回两日期相差的天数。【程序】include<iostream.h>int day tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};//day_tab二维数组存放各月天数,第一行对应非闰年,第二行对应闰年class Date{int year, month, day //年,月,日int leap(int); //判断是否闰年int dton(Date)Date ntod(int)public:Date() { }Date (int y, int mint d) I year = y; month = m; day = d;}void setday(intd){day = d;}void setmonth(int m) {month = m;}void setyear(int y) {year =y;}int getday() {return day;}int getmonth() {return month:}int getyear() {return yea;}Date operator + (int days) //+运算符重载函数{static Date date;int number =(1)date = ntod(number)return date}Date operator - (int days) //-运算符重载函数{staffs Date date;int number=(2);number - = days;date = ntod(number)return date;}int operator - (Date b) //-运算符重载函数{int days=(3);return days;}void disp(){cout<<year<<"."<<month<<". "<<day<<endl;}};int Date: :leap( int year)if((4)) //是闰年return 1; //不是闰年elsereturn0:}int Date:: dton( Date d) //求从公元0年0月0日到d日期的天数{inty,m,days =0;for(y=1;y<=d. year;y++)if((5))days+ =366; //闰年时加366天else days + = 365; //非闰年时加365天for(m =0;m<d. month-1;m++)if((6))days += day_tab[1] [m];elsedays +=day_tab[0] [m];days + = d. day;return days;}Date Date::ntod(intn) //将从元0年0月0日的天数转换成日期{int y=1,m = 1,d,rest = n,lp;while(1){ if(leap(y))if(rest<= 366) break;else rest - = 366;else //非闰年if(rest = 365 ) break;else rest-=365;

从下列的3道式题(试题五至试题七)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。阅读以下说明和C++码,将应填入(n)处的字名写在的对应栏内。[说明] 利用c++的各种控制语句编写一个万年历程序,要求:显示任何年份的日历,日历以月份顺序排列,每月以星期顺序排列,类似于一般挂历上的格式。本程序包含如下两个函数:Leap ()用于判定指定的年份是闰年,Week ()用于计算year年份的1月1日是星期几,其判定规则为:(1) 如果year 年份为1994年,则为星期六。(2) 如果year 年份大于1994年,则星期值weekno 按下列公式计算:differ=(year-1994)*(365%6)+(year-1993)/4-(year-2001)/100+(year-2001)/400 date=6+differ%7weekno=(date6)? date-7:date(3) 如果year 年份小于1994年,则星期值weekno 按下列公式计算:differ=(1994-year)*(365%7)+(1996-year)/4-(2001-year)/100+(2000-year)/400 weekno=6-dder%7include "iostream. h"include "iomanip. h"int leap(int n){if( (1) )return 0elsereturn 1;}int week( int year ){int a1, differ, date, weekno;if (year = = 1994)a1 =0;else if (year > 1994)a1=1;else a1= -1;switch(a1){case 0: return 6; break;case 1:{(2)date = 6 + differ% 7; weekno = ( date > 6) ? date - 7 date;}return weekno; break;case - 1:{differ = ( 1994 - year) * (365%7) + (1996 - year)/4 - (2001 - year)/100 + (2000 - year)/400;weekno =6-differ%7; } return weekno; break;}}void main( )}int i,year,m2,n,j;cout < < “Please input 某年数:”;cin> >year;if ( ! leap(year) )(3);elsem2 =28;int month [12]: {31 ,m2,31,30,31,30,31,31,30,31,30,31 };(4)for ( i=0; i<12; i+ + ){cout< < < <end1< <setw(4*n) < <";for(j=1 ;j< =month [i] ;j+ +){cout< <setw(4) < <j;n+ +;if(n> =7){(5)cout < < end1;}}}}

请完成下列Java程序:输出某年的某月有多少天数,要求生成2个输入对话框,一个输入年份,一个输入月份,并且能检查输入的数字是否符合要求,如果符合要求,则根据输入的年份和月份计算出这一年的这一月有多少天。提示:闰年为年数能被4整除但是不能被100整除。注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:import javax.swing. JOptionPane;public class ex10_2 {public static void main(String[] args) (String strIn;int nYear,nMonth,nNumOfDays=0;strIn=JOptionPane.showInputDialog(,,year.);nYear=Integer.parseInt(strIn);if(nYear<0) {System.out.println("Invalidate number of year!")return;} strIn=JOptionPane.showInputDialog("month.);nMonth=Integer.parseInt(strIn);if(_____________) {System.out.println("Invalidate number of month!"return;}switch(nMonth){case 1:case 3:case 5:case 7:case 8:case 10:case 12:nNumOfDays=31;break;case 4:case 6:case 9:case 11:nNumOfDays=30;break;case 2:if(________________)nNumOfDays=29;elsenNumOfDays=28;break;}System.out.println("Number of days:"+ nNumOfDays);}}

阅读以下说明和C++代码,将解答写入对应栏内。【说明】请编写一个函数int SeqSearch(int list[],int start,int n,int key),该函数从start开始,在大小为n的数组list中查找key值,返回最先找到的key值的位置,如果没有找到则返回-1。请修改程序中画线部分的错误并将不同情况下的输出结果补充完整。【程序】文件search.cpp的内容如下:include <iostream. h >int SeqSearch( int list[ ] ,int start,int n,int key){for(int i=start;i<=n;i++) //(1){if( list[i] = key)//(2){return i;}}return -1;}void main( ){int A[10]int key,count=0,pos;cout <<" Enter a list of 10 integers:";for(pos=0;pos<10;pos++){cin >>A; //(3)}cout <<" Enter a key; ";cin >> key;pos=0;while(( pos = SeqSearch ( A, pos, 10, key)) !=-1 ){count ++;pos ++;}cout<<key<<"occurs" <<count<< (count!=1?" times":" time") <<" in the list,"<< endl;}第一种情况:输入2 3 12 6 8 45 8 33 7输入key:8输出:(4)第二种情况:输入2 3 126 8 45 8 33 7输入k6y:9输出:(5)

阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】函数count months(DATE start,DATE end)的功能是:计算两个给定日期之间所包含的完整月份数。该函数先算出起止日期中所含的完整年数,再计算余下的完整月份数。规定两个相邻年份的同月同日之间的间隔为1年。例如,2007.5.30—2008.5.30的间隔为1年。若相邻两年中前一年是闰年,并且日期是2月29日,则到下一年的2月28日为1年,即2008.2.29—2009.2.28的间隔为1年。规定两个相邻月份的相同日之间的间隔为1个月,但需要特别考虑月末的特殊情况。例如,2007.1.29—2007.2.28的间隔为1个月,同理,2007.1.30—2007.2.28、2007.1.31—2007.2.28的间隔都是1个月。计算起止日期间隔不足一年的完整月份数时,分如下两种情况。(1)起止日期不跨年度。先用终止日期的月号减去起始日期的月号得到月份数,然后再根据情况进行修正。例如,起止日期为2008.3.31—2008.9.20,通过月号算出月份数为6。修正时,通过调用函数makevalid将2008.9.31改为2008.9.30,与终止日期2008.9.20比较后,将月份数修正为5。(2)起止日期跨年度。计算方法如下例所示:对于起止日期2008.7.25—2009.3.31,先计算2008.7.25—2008.12.25的月份数为5,再算出2008.12.25—2009.3.25的月份数为 3,因此2008.7.25—2009.3.31之间的完整月份数为8。日期数据类型定义如下:typedef struct{int year; int month; int day; /*日期的年号(4位)、月和口号*/}DATE;程序中使用的函数cmp_date()、isLeap Year()和makevalid()说明如下。[*]【C语言函数】int count_months (DATE start,DATE end){int years = 0, months = 0;DATE r;if (cmp_date(start,end) > 0) {r = start; start = end; end = r;}years = end.year - start.year; /*计算年数*/r = start;r.year = end.year;if (cmp_date(r, end) > 0) { /*修正年数*/(1);r.year--;}if (r.year < end.year) { /*跨年度时,先计算到12月的月份数*/months =(2);r.month = 12;}months += (end.month + 12 - r.month) % 12;r.year = end.year; r.month = end.month;makevalid ((3)); /*将日期r修正为有效日期*/if (cmp_date(r,end) > 0) /*修正月份数*/(4);months +=(5); /*计算总月份数*/return months;}使用的函数cmp_date()、isLeap Year()和makevalid()说明如下。[*]

有以下程序: class Date { public: Date(int y,int m,int D) ; { year =y; month=m; day=d; } Date(int y=2000) { year=y; month=10; day=1; } Date(Date D) { year=d.year; month=d.month; day=d.day; } void print () { cout<<year<<"."<<month<<"."<<day<<end1; } private: int year,month,day; }; Date fun(Date D) { Date temp; temp=d; return temp; } int main() { Date date1(2000,1,1),date2(0,0,0); Date date3(date1); date2=fun(date3); return 0; } 程序执行时,Date类的拷贝构造函数被调用的次数是A.2B.3C.4D.5

阅读以下说明和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;}

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】下面程序的功能是计算并输出某年某月的天数,函数IsLeap Year()能够判断是否是闰年。【C++程序】include < iostream >using namespace std;(1) Month {Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };class Date {public:Date( int year, Month m_ month) {this→year = year;if( (2) ) month: Jan;else month = m_ month;};~Date(){};bool IsLeap Year( ) {return ((year%4= =0 year% 100 ! =0)|| year%400= =0);};int CaculateDays( ) {switch(m_month ) {case (3) ;{if (4) return 29;else return 28;}case Jan: case Mar: case May: case Jul: case Aug: case Oct: case Dec: return 31;case Apr: case Jun: case Sop: case Nov: return 30;}}private:int year;Month month;};void main( ) {Date day(2000,Feb);cout < <day. (5) ( );}

请编写一个函数printdate(int year,int month,int day),该函数实现将输入的3个数字转换成英语数字纪年输出的功能,如输入March9,1978,则输出1978 3 9。注意:使用switch结构实现该函数的基本功能并应该能够判断错误的输入。部分源程序已存在文件test40_2.cpp中。请勿修改主函数main和其他函数中的任何内容,仅在函数printdate的花括号中填写若干语句。源程序文件rest40_2.cpp清单如下:include<iostream.h>void printdate(int year, int month, int day){}void main(){printdate(1978,3,9);}

请补充函数fun(),该函数的功能是:判断某一个年份是否为闰年。例如,1900年不是闰年,2004是闰年。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:include<stdio.h>include<conio.h>int fun(int n){int flag=0;if (n%4=0){if (【 】)flag=1;}if (【 】)flag=1;return【 】;}main(){int year;clrscr();printf("Input the year:");scanf("%d", year);if (fun(year))printf("%d is a leap year. \n", year);elseprintf("%d is not a leap year.\n",year);}

有以下程序: class Date { public: Date(int y,int m,int d); { year = y; month = m; day = d; } Date(int y = 2000) { year = y; month = 10; day = 1; } Date(Date d) { year = d.year; month = d.month; day = d.day; } void print() { cout<<year<<"."<<month<<"."<<day<<endl; } private: int year,month,day; }; Date fun(Date d) { Date temp; temp = d; resurn temp; } int main () { Date date1 (2000,1,1),date2 (0,0,0); Date date3 (date1); date2 = fun(date3); return 0; } 程序执行时,Date类的拷贝构造函数被调用的次数是A.2B.3C.4D.5

NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天 的日期。 例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日 。 要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件: (1)1≤month≤12 (2)1≤day≤31 (3)1912≤year≤2050 (1) 给出边界值健壮性测试的测试用例 (2)给出边界值最坏情况测试和边界值健壮最坏情况测试的测试用例个数

有以下程序: Class Date {public: Date(int y,int m,int d); {year=y; month=m; day=d;} Date(int y=2000) {year=y; month=10; day=1;) Date(Date D) {year=d.year; month=d.month; day=d.day;} void print() {cout<<year<<“.”<<moA.2B.3C.4D.5

试题二(共 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;}

阅读下列C程序,回答下列问题。[C程序] int GetMaxDay( int year, intmonth ) { int maxday = 0; //1 if ( month >= 1 //8 else //9 maxday = 28; } else //10 maxday = 29; } else //11 maxday = 28; } else{ //12 if(month==4||month==6||month==9||month==11) //13, 14, 15, 16 maxday = 30; //17 else //18 maxday = 31; } } return maxday; //19 }3、请给出问题2中控制流图的线性无关路径。

请结合等价类方法给出getNumDaysInMonth(int month,int year)方法的测试用例,其中getNumDaysInMonth方法根据给定的月份和年份返回该月份的总天数。

程序:  class MyDate{   private int year; private int month; private int day;  public MyDate(int year,int month,int day){  this.year=year;  this.month=month;      this.day=day; }  //Override Method }  为了让new MyDate(1980,11,9)==new MyDate(1980,11,9) 返回true,必须在Override Method处覆盖哪个方法?() A、 hashCodeB、 equalsC、 toStringD、 notify

问答题请结合等价类方法给出getNumDaysInMonth(int month,int year)方法的测试用例,其中getNumDaysInMonth方法根据给定的月份和年份返回该月份的总天数。