参考答案:
【问题1】(3分)
*string && * String !=’-’ ;
!*string && * String =’-’ (或者是判定结果出现真假的等价答案)
!*String ;
*String
*string && * String !=’ ’ &&*String !=’\n’ && *String!=’\t’ ;
!*string && * String =’ ’ &&*String =’\n’ && *String=’\t’ (或者是判定结果出现真假的等价答案)
【问题2】(8分)
V(g)=8
【问题3】(4分)
1、2、5、6、13.
1、2、3、5、6、13
1、2、3、4、2、5、6、13
1、2、5、7、12、1. . .
1、2、5、7、8、12、1. . .
1、2、5、7、8、9、12、1. . .
1、2、5、7、8、9、10、12、1. . .
1、2、5、7、8、9、10、11、7、12、1. . .
详细解析:
【问题1】
需要找出判定覆盖所需的逻辑条件,这种主要从两种结构中查找,即条件结构和循环结构。
题干代码中有条件为:
while(*string&& *string!='-') ;if(!*string) ;while(*string && *string!="&& *string!='\n'&& *string!= '\t')
满足问题1要求的条件为括号中的代码。即参考答案中的代码段。
【问题2】
题干代码中有条件为:
while(*string&& *string!='-') ;if(!*string) ;while(*string && *string!="&& *string!='\n'&& *string!= '\t')
满足问题1要求的条件为括号中的代码。即参考答案中的代码段。
【问题2】
需要绘制控制流图,此题代码中有多个循环,所以在绘制控制流图的时候,要注意走向,对于循环来说,真假都是从开始结点出发,只是若循环条件为真,则执行循环体,若循环条件为假,则结束循环,执行循环后面的代码。
控制流图的效果图为参考答案中的图例。环路复杂度为8,可以数结点数和边数,通过公式边数-结点数+2求得;也可以数区域数,数区域数记得是封闭的区域数+1。
【问题3】
控制流图的效果图为参考答案中的图例。环路复杂度为8,可以数结点数和边数,通过公式边数-结点数+2求得;也可以数区域数,数区域数记得是封闭的区域数+1。
【问题3】
列出线性无关路径:
此题能回答正确的关键在于问题2的控制流图是否画对。线性无关路径即不走与之前完全重复的路径。也就是走之前至少有一条没有走过的路径。
此题能回答正确的关键在于问题2的控制流图是否画对。线性无关路径即不走与之前完全重复的路径。也就是走之前至少有一条没有走过的路径。