问题 问答题

针对以下C语言程序,请按要求回答问题。
下面是一个简单的C语言程序:
int funcl(int a,b,c)
int k=1;
if((a>0 || b<0)) k=k+a;
else k=k+b;
if(c>0) k=k+c;
return k;

设计测试用例,分别使函数的各种逻辑覆盖率尽量达到100%。如果认为该函数的某种逻辑覆盖率无法达到100%,需要说明原因。

答案

参考答案:经过分析不难知,上面这个程序包含:
1)5个语句:每行一个语句;
2)3个条件:a>0;b<0;c>0;
3)4个分支:有两个if语句,每个if语句有两个分支;
4)6个条件组合:条件表达式(a>0) || (b<0)共有两个条件a>0和b<0,故有4个条件组合;条件表达式(c>0)只有一个条件c>0,故有两个条件组合。所以该程序共有6个条件组合;
5)4条路径:从程序的入口到出口的路径共有4条,分别是:
Path1:1—2—3—5—6—8
Path2:1—2—3—5—7—8
Path3:1—2—4—5—6—8
Path4:1—2—4—5—7—8

单项选择题
单项选择题