【简答题】
试题四(10分)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
[说明]
以下代码由C语言书写,在输入三个整数后,能够输出最大数和最小数。
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( max < c ) /*判断2*/
max = c;
else if( min > c ) /*判断3*/
min = c;
printf( "max=%d\nmin=%d", max, min );
return 0;
}
[问题1](3分)
请画出该程序段的控制流图,并分析该控制流图中有多少条线性独立路径(V(G)的值)。
[问题2](2分)
为了用分支(判定)覆盖方法测试该程序,需要设计测试用例,使其能对该程序中的每个判断语句的各种分支情况全部进行过测试。
对两组输入数据(1)a=3,b=5,c=7;(2)a=4,b=6,c=5,请分别写出程序中各个判断语句的执行结果(以T表示真,以F表示假),填入答题纸的相应栏中。[问题3](5分)
上述两组测试数据是否能实现该程序的分支(判定)覆盖?如果能,请说明理由。如果不能,请再增设一组输入数据,使其能实现分支(判定)覆盖。