问题 问答题

已知计算个人所得税的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

单项选择题
单项选择题