设向量组α1,α2,α3线性无关,判断向量组线性相关性并证明之
设向量组α1,α2,α3线性无关,判断向量组线性相关性并证明之
设向量组α1,α2,α3线性无关,判断向量组线性相关性并证明之
A.(1/4,3/4)
B.(1/3,2/3)
C.(1/2,1/2)
D.(2/3,1/3)
设随机向量(X,Y)的概率密度为:
(1)确定常数A的值;
(2)求关于X和关于Y的边缘密度,并判定其独立性;
(3)计算P{0≤X≤1/2,0≤Y≤1/3}。
阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。
【C程序】
【问题1】(6分)
请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。
【问题2】(9分)
请画出上述程序的控制流图,并计算其环路复杂度V(G)。
【问题3】(5分)
请给出问题2中控制流图的线性无关路径。
A.1 2 3 4 5 6 7
B.1 5 2 6 3 7 4
C.5 1 2 6 3 4 7
D.5 1 2 3 7 6 4
(50)
A. 能被3整除
B. 0、1出现的次数相等
C. 0和1的出现次数都为偶数
D. 能被2整除
阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。 【C程序】 int count(int x,int z){ inty=0; while(x>0){ //l if(x==1) //2 y=7; //3 else{ //4 y=x+z+4; if(y=7||y=21) //5,6 x=1; //7 } x--; //8 } return y; //9 }
【问题1】(3分) 请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。 【问题2】(7分) 请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。 【问题3】(5分) 请给出问题2中控制流图的线性无关路径。
试题四(共15分)
阅读下列说明和c代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
设某一机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。供应商j供应的部件i具有重量Wij和价格Cij。设计一个算法,求解总价格不超过上限cc的最小重量的机器组成。
采用回溯法来求解该问题:
首先定义解空间。解空间由长度为n的向量组成,其中每个分量取值来自集合{l,2,…,m},将解空间用树形结构表示。
接着从根结点开始,以深度优先的方式搜索整个解空间。从根结点开始,根结点成为活结点,同时也成为当前的扩展结点。向纵深方向考虑第一个部件从第一个供应商处购买,得到一个新结点。判断当前的机器价格(C11)是否超过上限(cc),重量(W11)是否比当前已知的解(最小重量)大,若是,应回溯至最近的一个活结点;若否,则该新结点成为活结点,同时也成为当前的扩展结点,根结点不再是扩展结点。继续向纵深方向考虑第二个部件从第一个供应商处购买,得到一个新结点。同样判断当前的机器价格(C11+C21)是否超过上限(cc),重量(W11+W21)是否比当前已知的解(最小重量)大。若是,应回溯至最近的一个活结点;若否,则该新结点成为活结点,同时也成为当前的扩展结点,原来的结点不再是扩展结点。以这种方式递归地在解空间中搜索,直到找到所要求的解或者解空间中已无活结点为止。
【C代码】
下面是该算法的C语言实现。
(1)变量说明
n:机器的部件数
m:供应商数
cc:价格上限
w[][]:二维数组,w[i][j]表示第j个供应商供应的第i个部件的重量
c[][]:二维数组,c[i][j]表示第j个供应商供应的第i个部件的价格
best1W:满足价格上限约束条件的最小机器重量
bestC:最小重量机器的价格
bestX[].最优解,一维数组,bestX[i]表示第i个部件来自哪个供应商
cw:搜索过程中机器的重量
cp:搜索过程中机器的价格
x[]:搜索过程中产生的解,x[i]表示第i个部件来自哪个供应商
i:当前考虑的部件,从0到n-l
j:循环变量
(2)函数backtrack
Int n=3;
Int m=3;
int cc=4:
int w[3][3]={{1,2,3},{3,2,1},{2,2,2}};
int c[3][3]={{1,2,3},{3,2,1},{2,2,2}};
int bestW=8;
int bestC=0;
int bestX[3]={0,0,0};
int cw=0;
int cp=0;
int x[3]={0,0,0};
int backtrack(int i){
int j=0;
int found=0;
if(i>n-1){/*得到问题解*/
bestW= cw;
bestC= cp;
for(j=0;j<n;j++){
(1)____;
}
return 1;
}
if(cp<=cc){/*有解*/
found=1;
}
for(j=0; (2)____;j++){
/*第i个部件从第j个供应商购买*/
(3) ;
cw=cw+w[i][j];
cp=cp+c[i][i][j];
if(cp<=cc && (4) {/*深度搜索,扩展当前结点*/
if(backtrack(i+1)){found=1;}
}
/*回溯*/
cw= cw -w[i][j];
(5) ;
}
return found;
}
从下列的2道试题(试题五和试题六)中任选1道解答。
如果解答的试题数超过1道,则题号小的1道解答有效。
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
逻辑覆盖法是设计白盒测试用例的主要方法之一,通过对程序逻辑结构的遍历实现
程序的覆盖。针对以下由C语言编写的程序,按要求回答问题。
【问题1] (6分)
请给出满足100%DC(判定覆盖)所需的逻辑条件。
【问题2] (10分)
请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。
【问题3](4分)
请给出问题2中控制流图的线性无关路径。
阅读下列说明,回答问题1至问题3。
【说明】
以下代码由C语言书写,在输入3个整数后,能够输出最大数和最小数。
int main(void)
{
int a, b, c, max, min;
printf("input three numbers: ");
scanf("%d%d%d", &a, &b, &c);
if(a>b) /*判断1*/
{
max=a;
min=b;
}
else
{
max=b;
min=a;
}
if(max<c) /*判断2*/
max=c;
else if(min>c) /*判断3*/
min=c;
printf("max=%d\nmin=%d", max, min);
return 0;
}
请画出该程序段的控制流图,并分析该控制流图中有多少条线性独立路径(V(G)的值)。
为了用分支(判定)覆盖方法测试该程序,需要设计测试用例,使其能对该程序中的每个判断语句的各种分支情况全部进行过测试。
对两组输入数据(1)a=3,b=5,c=7;(2)a=4,b=6,c=5,请分别写出程序中各个判断语句的执行结果(以T表示真,以F表示假),填入答题纸的相应栏中。
上述两组测试数据是否能实现该程序的分支(判定)覆盖?如果能,请说明理由。如果不能,请再增设一组输入数据,使其能实现分支(判定)覆盖。
请帮忙给出每个问题的正确答案和分析,谢谢!
试题二(共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】中控制流图的线性无关路径。
试题四(14 分)
回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
[问题1](5 分)
某计算机系统设备安装工程双代号网络计划如图 4.1 所示。该图中已标出每个节点的最早时间和最迟时间, 请判断对图 4.1 的解释是正确的还是错误的, 并填写表 4.1 (在判断栏中,正确的填写“√” ,错误的填写“×” 。 )
[问题2](5 分)
请指出下面关于软件可维护性有关叙述是否正确(填写对或错,每个选项 0.5 分) 。
(1) 在进行需求分析时需同时考虑如何实现软件可维护性问题。
(2) 完成测试作业后,为了缩短源程序的长度应删去程序中的注解。
(3) 尽可能在软件生产过程中保证各阶段文档的正确性。
(4) 编程时应尽可能使用全局变量。
(5) 在程序易修改的前提下,选择时间效率和空间效率尽可能高的算法。
(6) 尽可能考虑硬件的备件的供应。
(7) 重视程序结构的设计,使程序具有较好的层次结构。
(8) 使用维护工具或支撑环境。
(9) 在进行概要设计时应加强模块间的联系。
(10) 提高程序的可读性,尽可能使用高级语言编写程序。
[问题 3](4 分)
请指出图 4-2 所示的排列图有哪些错误?
图中: (1)开发设备保养差,有故障,效率低
(2)测试设备配置数量不够
(3)开发人员离职情况严重
(4)其它原因
(5)开发模式不合理