一个系统的模块结构图如下所示,用{×,×,×}表示这个系统的测试模块组合。下面的选项中(71)表示自顶向下的测试,(72)表示三明治式测试。
A.{A){A,B,C,D,E}{A,B,C,D,E,F,G,H,I,J,K}
B.{F}{G){H}{I}{J}{K}{B,F,G}{C,H}{D,I,J}{E,K}{A,B,C,D,E,F,G,H,I,J,K}
C.{K}{J}{I}{H}{G}{F}{B}{C}{D}{E}{A,B,C,D,E,F,G,H,I,J,K}
D.{A}{F}{G}{H}{I}{J}{K}{B,F,G}{C,H}{D,I,J}{E,K}{A,B,C,D,E,F,G,H,I,J,K}
A.Python支持+=、%=这样的增量赋值操作符。
B.在Python 2.x中,默认情况下10/3 == 3的判别结果是False,而Python 3.x中则不同。
C.Python内置支持复数运算,可以使用j或者J来表示。
D.%运算符表示运算对象取余。
设数组a[1…7,6…10]中的元素以列为主序存放,每个元素占用2个存储单元,则数组元素 a[i,j](1≤i≤7,6≤j≤10)的地址可以表示为(46)。
A.a-84+i+7j
B.a-22+5i+j
C.a-86+i+7j
D.a-22+i+7j
(60)
A.N
B.E
C.2E
D.N+E
A.N
B.E
C.2E
D.N+E
若i、j已定义成int型,则以下程序段中内循环体的总执行次数是()。
A)20
B)24
C)25
D)30
在活动图8-8中,节点表示项目中各个工作阶段的里程碑,连接各个节点的边表示活动,边上的数字表示活动持续的时间。在下面的活动图中,从A到J的关键路径是(27),关键路径长度是(28),从E开始的活动启动的最早时间是(29)。
A.ABEGJ
B.ADFHJ
C.ACFGJ
D.ADFB
A.scanf(“%2d%2d%2d”,&i,&j,&k);
B.scanf(“%d %d %d”,&i,&j,&k);
C.scanf(“%d,%d,%d”,&i,&j,&k);
D.scanf(“i=%d, j=%d,k=%d”,&i,&j,&k);
阅读以下说明和C程序,将应填入(n)处的字句写在对应栏内。
【说明】
并行计算中需要将N个作业分配给N个处理器同时去完成,每个处理器都能承担这N个作业,但耗时不同。下面的程序用回溯法计算总耗时最小的一种作业分配方案,在该方案中为每个处理器分配1个不同的作业。
程序中,N个作业从0开始依次编号,N个处理器也从0开始依次编号,主要的变量说明如下:
c[i][j]:将作业i分配给处理器j的耗时;
job[i]:值为0表示作业i未分配,值为j表示作业i分配给处理器j;
processor[k]:值为0表示处理器k未分配作业,值为1表示处理器k已分配作业;
mincost:最小总耗时。
【C程序】
include<stdio.h>
define N 8/*N表示作业数和处理器数*/
int c[N][N];
unsigned int mincost=65535/*设置min的初始值,大于可能的总耗时*/
int job[N],temp[N],processor[N];
void Assign(int k,unsigned int cost)
{
int i;
if (1)&& cost<mincost){
mincost = cost
for(i=0;i<N;i++)temp[i]=job[i];
}
else {
for(i=0;i<N;i++)/*分配作业k*/
if (2)&& cost+c[k][i]<mincost){
processor[i]=1;job[k]=(3);
Assign (4),cost+c[k][i]);
(5);job[k]=0;
}/ * if * /
}
}/ *Assign * /
void main()
{
int i,j;
for(i=0;i<N;i++){/*设置每个作业由不同处理器承担时耗时及全局数组的初值*/
processor[i]=0;job[i]=0;temp[i]=0;
for(j=0;j<N;j++)
scanf("%d",&c[i][j]);
}
Assign(0,0);/*从作业0开始分配*/
printf("\n最小耗时=%d\n",mincost);
for(i=0;i<N;i++)
printf("Job%d is assigned to Processor%d\n",i,temp[i]);
}/*main*/