问答题

论述题3(20分): 已知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,输......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题