问答题

以下是某C程序段,其功能是计算出某一天是一年中的第几天,请仔细阅读程序并完成要求。
#include
struct days
{
int year;
int month;
int date;
}day;
void main()
{
struct days *p;
int num=0, i;
int m[13]={0,31,28,31,30,3l,30,3l,3l,30,31,30,31);
p=&day;
printf("please input the day:\n");
seanf("% d % d % d, &(p->year), &(p->month),&(p->date));
for(i=0; i<(p->month); i++)
num+=m[i];
num+=(p->date);
if((p->year)%4= =0&&(p>year)%100 !=0 || (p->year)%400==0)
if((p->>month)>2)
num++;
printf(" This day is % d day in the year.\n ", num);
}
设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句或分支覆盖率无法达到100%,需说明为什么。

【参考答案】

该过程该过程控制流图的圈复杂性度量G(V)为3,所以设计三个用例包含三条独立路径。
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)