【C程序】
int count(int x,int z){
int y=0;
while(x>0){ //1
if(x==1) //2
y=7; //3
else{ //4
y=x+z+4;
if(y=7||y=21) //5,6
x=1; //7
}
x--; //8
}
return y; //9
}
问题:1.1
请针对上述C程序给出满足100%DC(判定覆盖)所需逻辑条件。
问题:1.2
请画出上述程序控制流图,并计算其控制流图环路复杂度V(G)。
问题:1.3
请给出问题2中控制流图线性无关路径
正确答案及解析
正确答案
解析
1.1
x>0;x<=0
x==1;x!=1
y==7或者y==21;y!=7且y!=21
1.2
V(g)=5
1.3
线性无关路径是指包括一组以前没有处理语句或条件一条路径。从控制流图来看,一条线性无关路径是至少包含有一条在其他线性无关路径中从未有过边路径:

1.1
本题中判定有x>0;x==1;y=7||y=21;三个判定点,所以要符合100%判定覆盖要求,就需要使得每个判定结果真假值都出现1次,即:x>0;x<=0;x==1;x!=1;y==7或者y==21;y!=7且y!=21。
1.2
控制流图是描述程序控制流一种图示方法。其基本符号有圆圈和箭线:圆圈为控制流图中一个结点,表示一个或多个无分支语句;带箭头线段称为边或连接,表示控制流。基本结构如下所示:


控制流程图环路复杂性 V(G)等于:
(1)控制流程图中区域个数。
(2)边数-结点数+2。
(3)判定数+1。所以,V(g)=5。
你可能感兴趣的试题

-
- 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)
- 查看答案