以下是某C程序段,其功能为计算输入数字的阶乘。请仔细阅读程序并完成要求。
#include<stdio. h>
#include<stdlib. h>
int main()
{
int i=0;/*i为计数器*/
int n;
int factorial=1;/*保存阶乘的结果*/
puts("*************************************"):
puts("*The program will compute *");
puts("*the factotial of an integer *");
puts("*************************************"):
puts("please input the number n:");
scanf("%d",&n);
if(n<0)/*判断输入的数是否大于或等于0*/
{
printf("please input an interger>=0. \n");
return 0;
}
if(n==0)/*0的阶乘是1*/
{
printf("factorial of 0 is 1.\n");
return 0;
}
i=1;
while(i<=n)
{
factorial = factorial * i;
i++:
}
printf("factorial of % d is:%d. \n",n,factorial);
getch();
return 0:
}
设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句或分支覆盖率无法达到100%,需说明为理由。 |
参考答案:
解析:测试用例的设计只要覆盖所有的分支情况即可。设计如下: N=-9,0,12