1 / 5

阅读下列说明,回答问题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
   }
   retun -1,   //12
}    //13