简述一下算法的功能: statusA(1inkedlistL) {//L是无表头结点的单链表 if(L&&L—>next)
简述一下算法的功能:
status A (1inkedlist L)
{//L是无表头结点的单链表
if (L&&L—>next)
{Q=L;L=L—>next;P=L;
while(P—>next)P=P—>next;
P—>next=Q;Q—>next=NULL;
}
return ok;
)//A
简述一下算法的功能:
status A (1inkedlist L)
{//L是无表头结点的单链表
if (L&&L—>next)
{Q=L;L=L—>next;P=L;
while(P—>next)P=P—>next;
P—>next=Q;Q—>next=NULL;
}
return ok;
)//A
第1题
已知线性表的存储结构为顺序表,阅读下列算法,并回答问题:
(1)设线性表L=(21,-7,-8,19,0,-11,34,30,-10),写出执行f30(&L)后的L状态;
(2)简述算法f30的功能。
void f30(SeqList*L){
int i,j;
for(i=j=0;i<L—>length;i++)
if(L—>data[i]>=0){
if(i!=j)L—>data[j]=L—>data[i];
j++;
}
L—>length=j;
}
第3题
阅读下列算法,并回答问题:
(1)Q、Q1和Q2都是队列结构,设队列Q=(1,0,-5,2,-4,-6,9),其中1为队头元素,写出执行f31(&Q,&Q1,&Q2)之后队列Q、Q1和Q2的状态;
(2)简述算法f31的功能。
(注:InitQueue、EnQueue、DeQueue和QueueEmpty分别是队列初始化、入队、出队和判队空的操作)
void f31(Queue*Q,Queue*Q1,Queue*Q2){
int e;
InitQueue(Q1);
InitQueue(Q2);
while(!QueueEmpty(Q)){
e=DeQueue(Q);
if(e>=0)EnQueue(Q1,e);
else EnQueue(Q2,e);
}
}
第4题
阅读下列算法,并回答问题:
(1)设顺序表L=(3,7,11,14,20,51),写出执行f30(&L,15)之后的L;
(2)设顺序表L=(4,7,10,14,20,51),写出执行f30(&L,10)之后的L;
(3)简述算法的功能。
void f30(SeqList*L,DataType x)
{
int i=0,j;
while(i<L->length&&x>L->data[i])i++
if(i<L—>length&& x==L—>data[i]{
for(j=i+1;j<L—>length;j++)
L—>data[j-1]=L—>data[j];
L—>length--;
}else{
for(j=L—>length;j>i;j--)
L—>data[j]=L—>data[j-1];
L—>data[i]=x;
L—>length++;
}
}
第5题
阅读下列算法,并回答问题:
(1)设串s="OneWorldOneDream",t="One",pos是一维整型数组,写出算法f32(s,t,pos)执行之后得到的返回值和pos中的值;
(2)简述算法f32的功能。
int strlen(char*s); /*返回串S的长度*/
int index(char*st,char*t);
/*若串t在串st中出现,则返回在串st中首次出现的下标值,否则返回-1*/
int f32(char*s,char*t,int pos[])
{ int i,j,k,ls,It;
Is=strlen(s);
lt=strlen(t);
if(ls==0|| It==0)return-1;
k=0;
i=0;
do {
j=index(s+i,t);
if(j>=0)
{ pos[k++]=i+j;
i+=j+it;
}
}while(i+it<=is&&j>=0);
return k;
}
第6题
A.将功能开关旋至电容检测挡,两只表笔分别与被测电容的两只引脚接触,如果表内蜂鸣器急速地响了一下,对换表笔又响了一下,同时显示“1”,则说明该电容是好的;如果蜂鸣器响声不断,则说明该电容漏电或内部断路;反复对换表笔,蜂鸣器始终不响,总是显示“1”,则说明该电容短路
B.将功能开关旋至电容检测挡,两只表笔分别与被测电容的两只引脚接触,如果表内蜂鸣器急速地响了一下,对换表笔又响了一下,同时显示“0”,则说明该电容是好的;如果蜂鸣器响声不断,则说明该电容漏电或内部短路;反复对换表笔,蜂鸣器始终不响,总是显示“0”,则说明该电容断路
C.将功能开关旋至电容检测挡,两只表笔分别与被测电容的两只引脚接触,如果表内蜂鸣器急速地响了一下,对换表笔又响了一下,同时显示“1”,则说明该电容是好的;如果蜂鸣器响声不断,则说明该电容漏电或内部短路;反复对换表笔,蜂鸣器始终不响,总是显示“1”,则说明该电容断路
D.将功能开关旋至电容检测挡,两只表笔分别与被测电容的两只引脚接触,如果表内蜂鸣器急速地响了一下,对换表笔又响了一下,同时显示“0”,则说明该电容是好的;如果蜂鸣器响声不断,则说明该电容漏电或内部断路;反复对换表笔,蜂鸣器始终不响,总是显示“0”,则说明该电容短路
第7题
阅读下列对正整数关键字序列L操作的算法,并回答问题:
(1)设L=(28,19,27,49,56,12,10,25,20,50),写出f33(L,4)的返回值;
(2)简述函数f33的功能。
int Partition(SeqList*L,int low,int high);
//对L[low…high]做划分,返回基准记录的位置,并使左部的关键字
//都小于或等于基准记录的关键字,右部的关键字都大于基准记录的关键字
int f33(SeqList L,int k){
int low,high,pivotpos;
low=1;
high=L.length;
if(k<low||k>high)
return-1;
do {
pivotpos=Partition(&L,low,high);//调用快速排序的划分算法
if(pivotpos<k)
low=pivotpos+1;
else if(pivotpos>k)
high=pivotpos-1;
}while(pivotpos!=k);
return L.data[pivotpos];
}
第9题
A.重1核算法计算出来的一定是复原重置成本
B.物价指数法计算出来的可以是更新重置成本
C.当规模经济效益指数为1时,规模效益指数就是功能价值法
D.规模经济效益指数法比功能价值法更准确
第10题
(1)画出描述算法的任务分布图;
(2)画出任务执行的时空图;
(3)计算吞吐率、加速比、效率。