已知计算个人所得税的C源程序如下:
/*sds.c*/
double sds(double y)
double x;
if(y<=2000) x=0;
else if(y<=3600)
x=(y-2000)*0.05;
else if(y<=6600)
x=sds(3600)+(y-3600)*0.1;
else if(y<=21600)
x=sds(6600)+(y-6600)*0.2;
else if(y<=61600)
x=sds(21600)+(y-21600)*0.3;
else if(y<=101600)
x=sds(61600)+(y-61600)*0.4;
else x=sds(101600)+(y-101600)*0.5;
return(x);
#include<stdio.h>
int main()
double y,x;
printf("请输入收入:\n");
scanf("%If",&y);
x=sds(y);
printf("应缴个人所得税为:sds(%9.2f)=%9.2f",y,x);
return 0;
设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句覆盖率或分支覆盖率无法达到100%,需说明为什么。
参考答案:
测试用例:
用例1:输入:y=1000.00;输出:应缴个人所得税sds(1000.00)=0.00
用例2:输入:y=3600.00;输出:应缴个人所得税sds(3600.00)=80.00
用例3:输入:y=6600.00;输出:应缴个人所得税sds(6600.00)=380.00
用例4:输入:y=21600.00;输出:应缴个人所得税sds(21600.00)=3380.00
用例5:输入:y=61600.00;输出:应缴个人所得税sds(61600.00)=15380.00
用例6:输入:y=101600.00;输出:应缴个人所得税sds(101600.00)=31380.00
用例7:输入:y=102000.00;输出:应缴个人所得税sds(102000.00)=31580.00