问答题
.阅读下列说明,回答问题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;
else
maxday=28;
}
else
maxday=29;
}
else
maxday=28;
}
else
{
if(month==4||month==6||month==9||month==11)
maxday=30;
else
maxday=31;
}
}
return maxday;
}
问答题
1. 【问题1】
请画出以上代码的控制流图。
问答题
2. 【问题2】
请计算上述控制流图的环路复杂度V(g)。
问答题
3. 【问题3】
假设year的取值范围是1000<year<2001,请使用基本路径测试法为变量year、month设计测试用例(写出year取值、month取值、maxday预期结果),使之满足基本路径覆盖要求。
【正确答案】
| 用例编号
|
year取值
|
month取值
|
Maxday 预期结果
|
| 1
|
1001~2000之间任意整数
|
[1,12]之外的任意整数
|
0
|
| 2
|
1001~2000之间不能被4整除的任意整 数,如1001、1002、1003等
|
2
|
28
|
| 3
|
1001~2000之间能被4整除但不能被 100整除的任意整数,如1004、1008、 1012、1016等
|
2
|
29
|
| 4
|
1001~2000之间能被100整除但不能被 400整除的任意整数,如1100、1300、 1400、1500、1700、1800、1900
|
2
|
28
|
| 5
|
1001~2000之间能被400整除的任意整 数,如1200、1600、2000
|
2
|
29
|
| 6
|
1001~2000之间任意整数
|
1、3、5、7、8、10、12中 的任意一个
|
31
|
| 7
|
1001~2000之间任意整数
|
4、6、9、11中的任意一个
|
30
|
【答案解析】