以下代码由C语言书写,在输入3个整数后,能够输出最大数和最小数。
int main(void){int a, b, c, max, min;printf("input three numbers: ");scanf("%d%d%d", &a, &b, &c);if(a>b) /*判断1*/{max=a;min=b;}else{max=b;min=a;}if(maximage.pngc) /*判断2*/max=c;else if(min>c) /*判断3*/min=c;printf("max=%d\nmin=%d", max, min);return 0;}
【问题1】请画出该程序段控制流图,并分析该控制流图中有多少条线性独立路径(VG.值)。【问题2】为了用分支(判定)覆盖方法测试该程序,需要设计测试用例,使其能对该程序中每个判断语句各种分支情况全部进行过测试。对两组输入数据(1)a=3,b=5,c=7;(2)a=4,b=6,c=5,请分别写出程序中各个判断语句执行结果(以T表示真,以F表示假)。【问题3】上述两组测试数据是否能实现该程序分支(判定)覆盖?如果能,请说明理由。如果不能,请再增设一组输入数据,使其能实现分支(判定)覆盖。
正确答案及解析
正确答案
解析
1、控制流图:

有4条线性独立路径,或V(G)=4。2、

3、不能,给出a,b,c三个数值满足a>b>c
你可能感兴趣的试题

-
- A.V(S2)和P(S4)
- B.P(S2)和V(S4)
- C.P(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案

-
- A.V(S1)P(S2)和V(S3)
- B.P(S1)V(S2)和V(S3)
- C.V(S1)V(S2)和V(S3)
- D.P(S1)P(S2)和V(S3)
- 查看答案

-
- A.P(S4)和V(S4)V(S5)
- B.V(S5)和P(S4)P(S5)
- C.V(S3)和V(S4)V(S5)
- D.P(S3)和P(S4)V(P5)
- 查看答案

-
- A.P(S3)和V(S4)V(S5)
- B.V(S3)和P(S4)P(S5)
- C.P(S3)和P(S4)P(S5)
- D.V(S3)和V(S4)V(S5)
- 查看答案

-
- A.P(S2)和P(S4)
- B.P(S2)和V(S4)
- C.V(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案