已知C源程序如下: /*分数运算 fsys.c*/ #include<stdio.h> int main() { long int a,b,c,d,i,x,y,z; char op; printf("两分数b/a

admin2011-05-12  16

问题 已知C源程序如下:
   /*分数运算  fsys.c*/
   #include<stdio.h>
   int main()
   {
   long int a,b,c,d,i,x,y,z;
   char op;
   printf("两分数b/a,d/c作+、-、*、/四则运算。结果为分数。\n");
   printf("请输入分数运算式:b/a op d/c\n");
   scanf("%ld/%ld%c%ld%ld",&b,&a,&op,&d,&C) ;
   if(a==0||c==0){
   printf("分母为0,输入错误!\n");
   return(0);
   }
   if(op==’+’){
   y=b*c+d*a;
   x=a*c;    /*运算结果均为y/x*/
   }
   if(op==’-’){
   y=b*c-d*a;
   x=a*c;
   }
   if(op==’*’){
   y=b*d;
   x=a*c;
   }
   if(op==’/’){
   y=b*c;
   x=a*d;
   }
   z=x;
   if(x>y)z=y;
   i=z;
   while(i>1){
   if(x%i==0&&y%i==0){x=x/i;y=y/i;continue;};
   i——;
   }
   printf("%ld/%ld%c%ld/%ld=%ld/%ld.\n",b,a,op,d,c,y,x);
   return 0;
   }

设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句覆盖率或分支覆盖率无法达到100%,需说明为什么。

选项

答案测试用例: 用例1:输入:2/0+3/1;输出;分母为0,输入错误!返回; 用例2:输入:2/1+3/0;输出:分母为0,输入错误!返回; 用例3:输入:2/1+3/1;输出:2/1+3/1=5/1;正常;返回; 用例4:输入:3/1-2/1;输出:3/1-2/1=1/1;正常;返回; 用例5;输入:3/1*2/1,输出:3/1*2/1=6/1;正常;返回; 用例6:输入:3/1/2/1;输出:3/1/2/1=3/2;正常;返回; 用例7:输入:1/5+3/5;输出:1/5+3/5=4/5;正常,返回; 用例8:输入:2/8+6/8;输出:2/8+6/8=1/1;正常;返回; 结论:利用上面的测试用例,即可使该程序的语句覆盖率或分支覆盖率达到100%。

解析
转载请注明原文地址:https://jikaoti.com/ti/mwE7FFFM
0

相关试题推荐
最新回复(0)