首页 > 题库 > 职业考证 > 软考 > 软件评测师 > 案例题

阅读下列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中控制流图的线性无关路径。

参考答案: 查看答案 查看解析 查看视频解析 下载APP畅快刷题

相关知识点试题

相关试卷