试题二(共15分) 阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 逻辑覆盖法是设计白盒测试用例的主要方法之一,它是通过对程序逻辑结构的遍历实现程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。 struct _ProtobufCIntRange{ int start_value unsigned orig_index }; typedef struct _ProtobufCIntRange ProtobufCIntRange int int_range_lookup (unsigned n_ranges, const ProtobufCIntRange *ranges, int value){ unsigned start,n; ∥1 start=0; n=n_ranges while(n>1){ //2 unsigned mid= start+ n/2 if(value< ranges[mid].start_value){ //3 n=mid-start //4 } else if(value>=ranges[mid].start value+ (int)(ranges[mid+1].orig_index-ranges[mid].orig_index){ //5 unsigned new_start= mid+1 //6 n=start+n-new_start, start = new_start } else //7 return (value - ranges[mid].start_value)+ ranges[mid],orig_index } if(n>0){ //8 unsigned start_orig_index= ranges[start].orig_index unsigned range_size=ranges[start+1].orig_index - start_orig_index if (ranges[start].start_value<=value && value< (int)(ranges[start].start_value+ range_size》 //9, 10 return (value - ranges[start].start_value)+start_orig_index //11 } retum -1, //12 } //13 【问题1】(5分) 请给出满足100%DC(判定覆盖)所需的逻辑条件。 【问题2】 (7分) 请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。 【问题3】(3分) 请给出【问题2】中控制流图的线性无关路径。