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

阅读下列C程序,回答问题1至问题3。
【C程序】

int tb_base64_decode (char* ib, int in, char* ob, int on){//1
extern int tb_arrayn(char []);
static char table[] ={
0x3e, 0xff,0xff,0xff,0x3f,0x34, 0x35, 0x36
, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0xff
, 0xff, 0xff,0xff, 0xff,0xff,0xff,0x00, 0x01
, 0x02,0x03,0x04, 0x05,0x06,0x07,0x08,0x09
, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xl0, 0x11
, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19
, 0xff, 0xff, 0xff, 0xff,0xff, 0xff,0x1a, 0x1b
, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23
, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b
, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33
};
int i=0;
int v=0;
char * op = ob;
int tn = tb_arrayn(table);
for (i =0; i < in && ib[i] && ib[i] != '=';i++) { //2,3,4
int idx = ib[i] - 43;
if (idx ≥ tn || table[idx] == Oxff) //5,6
return 0; //7
v = (v << 6) + table[idx];
if (i & 3) { //8
if (op - ob < on) //9
*op++=v >>(6-2*(i & 3)); //10
}
}
return (op - ob) ; //11
} //12

【问题1】 (4分)
请针对上述C程序给出满足100%DC (判定覆盖)所需的逻辑条件。
【问题2】(8分)
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
【问题3】(8分)
请给出问题2中控制流图的线性无关路径。

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

相关知识点试题

相关试卷