阅读下列C 程序,回答问题1至问题3,将解答填入答题纸的对应栏内。
【C程序】
long long yajl_integer(const unsigned char *number,size_t length){ //1
long long ret=0;
long sign=1;
const unsigned char *pos=number;
if(*pos=='-'){ //2
pos++;sign=-1; //3
}
if(*pos=='+'){ //4
pos++; //5
}
while(pos<number+length){ //6
if(ret>MAX_VALUE_TO_MULTIPLY){ //7
errno=ERANGE;
return sign==1?LLONG_MAX:LLONG_MIN; //8
}
ret*=10;
if(LLONG_MAX-ret<(*pos-'0')){ //9
errno=ERANGE;
return sign==1?LLONG_MAX:LLONG_MIN; //10
}
if(*pos<'0'||*pos>'9'){ //11、12
errno=ERANGE;
return sign==1?LLONG_MAX:LLONG_MIN; //13
}
ret+=(*pos++-'0'); //14
}
return sign *ret; //15;
} //16
【问题1】(6分)
请针对上述C程序给出满足100%判定覆盖所需的逻辑条件。
【问题2】(6分)
请画出上述C程序的控制流图,并计算其控制流图的环路复杂度(圈复杂度)V(G)。
【问题3】(8分)
请给出问题2中控制流图的线性无关路径。