●阅读下列说明,回答问题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分)
上述两组测试数据是否能实现该程序的分支(判定)覆盖?如果能,请说明理由。如果不能,请再增设一组输入数据,使其能实现分支(判定)覆盖。
各省软考办 | ||||||||||