问答题
已知C源程序如下:
/*Input today’s date,output tomorrow’s date*/
/*version 2*/
#include<stdio.h>
struct ydate
{ int day;int month;int year;};
int leap(struct ydate d)
{ if((d.year%4==0&&d.year%100!=0)||(d.year%400==0))
return 1;
else
return 0;
}
int numdays(struct ydate d)
{ int day;
static int daytab[]=
{31,28,31,30,31,30,31,31,30,31,30,31);
if(leap(d)&&d.month==2)
day=29;
else
day=daytab[d.month-1];
return day;
}
int main(void)
{ struct ydate today,tomorrow;
printf("format of date is:year,month,day 输入的年、月、日之间应用逗号隔开\n");
printf("today is:");
scanf("%d,%d,%d",&today.year,&today.month,&today.day);
while(0>=today.year
|| today.year>65535 || 0>=today.month || today.month>12) ||
0>=today.day || today.day>numdays(today))
{ printf("input date error!reenter the day!\n");
printf("today is:");
scanf("%d,%d,%d",&today.year,&today.month,&today.day);
}
if(today.day!=numdays(today))
{ tomorrow.year=today.year;
tomorrow.month=today.month;
tomorrow.day=today.day+1;
}
else if(today.month==12)
{ tomorrow.year=today.year+1;
tomorrow.month=1;
tomorrow.day=1;
}
else
{ tomorrow.year=today.year;
tomorrow.month=today.month+1;
tomorrow.day=1;
}
printf("tomorrow is:%d,%d,%d\n\",
tomorrow.year,tomorrow.month,tomorrow.day);
}
设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句或分支覆盖率无法达到100%.需说明为什么。
【参考答案】
根据以上分析,设计测试用例如下:
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
点击查看答案
<上一题
目录
下一题>
热门
试题
问答题
根据状态转换图和状态转换表,导出基本路径测试的测试用例及其覆盖的测试路径。
点击查看答案
问答题
点击查看答案
相关试题
设计一组测试用例,使该程序所有函数的语句...