参考答案和解析
3
更多“设有一个顺序栈S,元素s1, s2, s3, s4, s5, s6依次进栈,如果6个元素的出栈顺序为s2, s3, s4, s6, s5, s1,则顺序栈的容量至少应为________。 A.6 B. 5 C. 4 D. 3”相关问题
  • 第1题:

    一个栈(Stack)对象有三种状态:S1——栈空;S2——栈非空也非满;S3——栈满。则各个状态的条件如下:

    S1:(t0)创建栈对象时初始化,这是系统做的

    (t1)在S2状态下执行置空运算setEmpty()

    (t2)在S3状态下执行置空运算setEmpty()

    (t3)在S2状态下执行出栈运算Pop()

    S2:(t4)在S1状态下执行进栈运算Push()

    (t5)在S3状态下执行出栈运算Pop()

    S3:(t6)在S2状态下执行进栈运算Push()

    为简化问题,假设栈Stack的容量为2,栈元素的数据类型为整数。

    根据题意,画出栈对象的状态迁移图;


    正确答案:根据题意状态转换图如下:
    根据题意,状态转换图如下:

  • 第2题:

    设栈S的初始状态为空。元素a,b,c,d,e,f依次通过栈S,若出栈的顺序为b,d,c,f,e,a,则栈S的容量至少应该为

    A.3

    B.4

    C.5

    D.6


    正确答案:A
    解析:根据题中给定的条件,可以作如下的模拟操作:①元素a,b进栈,栈中有 2个元素,分别为a,b;②元素b出栈后,元素c, d进栈,栈中有3个元素,分别为a,c,d;③元素 d,c出栈后,元素e,f进栈,栈中有3个元素,分别为a,e,f;④最后,元素f,e,a出栈,栈为空。可以看出,进栈的顺序为a,b,c,d,e,f,出栈的顺序为b,d,c,f,e,a,满足题目要求。每次进栈操作后,栈中最多有3个元素,所以,为了顺利完成这些操作,栈的容量应至少为3。本题的正确答案为A。

  • 第3题:

    ● 进程P1、P2、P3、P4和P5 的前趋图如下:

    若用PV操作控制进程P1~P5并发执行的过程,则需要设置 6 个信号量 S1、S2、S3、S4、S5和S6,且信号量S1~S6的初值都等于零。下图中 a和 b 处应分别填写 (23) ;c和d处应分别填写 (24) ,e和f处应分别填写 (25) 。

    (23)

    A. P(S1) P(S2) 和P(S3) P(S4)

    B. P(S1) V(S2) 和P(S2) V(S1)

    C. V(S1) V(S2) 和V(S3) V(S4)

    D. P(S1) P(S2) 和V(S1) V(S2)

    (24)

    A. P(S1) P(S2) 和V(S3) V(S4)

    B. P(S1) P(S3) 和V(S5) V(S6)

    C. V(S1) V(S2) 和P(S3) P(S4)

    D. P(S1) V(S3) 和P(S2) V(S4)

    (25)

    A. P(S3) P(S4) 和V(S5) V(S6)

    B. V(S5) V(S6) 和P(S5) P(S6)

    C. P(S2) P(S5) 和P(S4) P(S6)

    D. P(S4) V(S5) 和P(S5) V(S6)


    正确答案:C,B,C

  • 第4题:

    (4)

    A.P(S2)、V(S3)V(S5)和P(S4)P(S5)

    B.V(S2)、P(S3)V(S5)和V(S4)P(S5)

    C.P(S2)、V(S3)P(S5)和P(S4)V(S5)

    D.V(S2)、V(S3)P(S5)和P(S4)V(S5)


    正确答案:A
    同3题解析

  • 第5题:

    ( )

    A.P(S2)、V(S3)V(S5)和P(S4)P(S5)

    B.V(S2)、P(S3)V(S5)和V(S4)P(S5)

    C.P(S2)、V(S3)P(S5)和P(S4)V(S5)

    D.V(S2)、V(S3)P(S5)和P(S4)V(S5)


    正确答案:A
    同3题解析

  • 第6题:

    设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应为______。

    A.2

    B.3

    C.4

    D.5


    正确答案:B
    解析:栈的特点是先进后出。根据题中的进出栈顺序,在s6进栈后,栈中元素最多,除了栈项元素s6外,还有s1和s5。因此顺序栈的容量至少应为3。

  • 第7题:

    进程P1、P2 、P3、P4 和P5的前趋图如下所示:若用PV操作控制进程P1、P2、P3、P4和P5并发执行的过程,需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于零。如下的进程执行图中a和b处应分别填写( );c和d处应分别填写( );e和f处应分别填写( )。

    A.V (S1)和P(S2)V(S3)B.P(S1)和V(S2)V(S3)C.V(S1)和V(S2)V(S3)D.P(S1)和P(S2)V(S3)A.P(S2)和P(S4)B.V(S2)和P(S4)C.P(S2)和V(S4)D.V(S2)和V(S4)A.P(S4)和V(S5)B.V(S5)和P(S4)C.V(S4)和P(S5)D.V(S4)和V(S5)


    正确答案:B,C,A

  • 第8题:


    若用PV操作控制进程P1~P4并发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,且信号量S4-S5的初值都等于0。下图中a、b和c处应分别填写();d、e和f处应分别填写(请作答此空)。

    A.P(S2)、V(S3)V(S5)和P(S4)P(S5)
    B.V(S2)、P(S3)V(ss)和V(S4)P(S5)
    C.P(S2)、V(S3)P(S5)和P(S4)V(S5)
    D.V(S2)、V(S3)P(S5)和P(S4)V(S5)

    答案:A
    解析:
    因为P1是P2和P3的前驱,当P1执行完需通知P2和P3,应采用V(S1)V(S2)操作分别通知P2和P3,故a处应填写V(S1)V(S2);又因为P2是P1和P3的后继,当P2执行前应测试P1和P3是否执行完,应采用P(S1)P(S3)操作测试P1和P3是否执行完,故b处应填写P(S1)P(S3);同理,P2是P4的前驱,当P2执行完应通知P4,应采用V(S4)操作分别通知P4,故C处应填写V(S4)。
    因为P3是P1的后继,当P3执行前应测试P1是否执行完,应采用P(S2)操作测试P1是否执行完,故d处应填写P(S2);又因为P3是P2和P4的前驱,当P3执行完应通知P2和P4,应采用V(S3)V(S5)操作通知P5,故e处应填写V(S3)V(S5);P4是P2和P3的后继,当P4执行前应测试P2和P3是否执行完,应采用P(S4)P(S5)操作测试P2和P3是否执行完,故f处应填写P(S4)P(S5)。

  • 第9题:

    若用PV操作控制进程P1、P2、P3、P4和P5并发执行的过程,则需要设置5个信号S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于零。下图中e和f处应分别填写(56)。

    A.P(S4)和V(S4)V(S5)
    B.V(S5)和P(S4)P(S5)
    C.V(S3)和V(S4)V(S5)
    D.P(S3)和P(S4)V(P5)

    答案:B
    解析:

  • 第10题:

    进程P1、P2、P3、P4和P5的前趋图如下:

    若用PV操作控制进程P1~P5并发执行的过程,则需要设置6个信号S1、S2、S3、S4、S5和S6,且信号量S1-S6的初值都等于零。下图中a和b处应分别填写( );c和d处应分别填写(请作答此空),e和f处应分别填写( )。

    A. P(S1)P(S2)和V(S3)V(S4)
    B. P(S1)P(S3)和V(S5)V(S6)
    C. V(S1)V(S2)和P(S3)P(S4)
    D. P(S1)V(S3)和P(S2)V(S4)

    答案:B
    解析:
    本题主要考查用PV操作控制进程的并发执行。首先我们需要弄清楚前驱图中给出的各进制的执行顺序。从图中我们不难看出进程P1和P2没有前驱,也就是可以首先并发执行,而进程P3的前驱是P1和P2,P4的前驱是P1和P3,P5的前驱是P2和P3。那么怎么理解前驱呢?其实前驱就是指只有在前驱进程完成后,该进程才能开始执行。
    在本题的前驱图中我们不难看出,有6条路径,分别是P1->P3,P1->P4,P2->P3,P2->P5,P3->P4,P3->P5。而且题目也告诉我们分别有6初值为0个信号量(S1-S6),要我们用PV操作来控制进程P1~P5的并发执行。这里我们就需要清楚P与V这两种操作。
    P原语的主要操作是:
    (1)信号量(sem)减1;   
    (2)若相减结果大于等于零,则进程继续执行;   
    (3)若相减结果小于零,则阻塞一个在该信号量上的进程,然后再返回原进程继续执行或转进程调度。
    V原语的主要操作是:   
    (1)信号量(sem)加1;   
    (2)若相加结果大于零,则进程继续执行;   
    (3)若相加结果小于或等于零,则唤醒一阻塞在该信号量上的进程,然后再返回原进程继续执行或转进程调度。
    总而言之,进行P操作的主要目的是阻塞某信号量上的进程,而进行V操作的主要目的是唤醒某信号量上的进程。
    下面我们具体来求解这个题目。a空处,是在进程P1执行完成以后,那么根据题目的前驱图我们可以知道,这个时候它应该唤醒它的后继进程P3和P4,因此需要执行两个V操作,同样的道路,b空处也需要执行两个V操作,因此可以知道第一空答案选C。
    至于C空处,它是在进程P3执行前进行的处理。根据前驱的意义,我们可以知道执行P3要在P1和P2完成后,因此这个时候,它首先需要判断P1和P2进程是否完成,如何它们完成的话,会分别执行唤醒P3的V操作(换句话说就是会给相应的信号量进行加1操作),那么这个时候我们也可以通过同样的信号量来判断,即对相应的信号量进行减1操作,判断它是否大于0,如果大于等于0,则执行P3。从题目给出的答案来看,这两个信号量应该分别是S1和S3。那么执行完P3后,它也需要唤醒它的后继进程P4和P5,因此需要执行两个V操作,因此D空处应该是两个V操作。综上所述,我们可以知道第二空的答案选B。
    分析到这里后,第三空的答案应该就很明显了,P4和P5进程在执行前,都需要做与P3进程执行前一样的判断,因此都需要进行两个P操作。所以本题答案选C。
    其实做这类题也不难,首先需要我们对PV操作要有一个透彻的理解,另外就是能分析出题目执行的逻辑关系。

  • 第11题:

    设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s6,s5,s1则顺序栈的容量至少应为()。


    正确答案:3

  • 第12题:

    单选题
    Refer to the exhibit. The command spanning-tree guard root is configured on interface Gi0/0 on both  switch S2 and S5. The global configuration command spanning-tree uplinkfast has been configured on both switch S2 and S5. The link between switch S4 and S5 fails. Will Host A be able to reach Host B?()
    A

     Yes. Traffic can pass either from switch S6 to S3 to S2 to S1, or, from switch S6 to S5 to S2 to S1.

    B

     No. Traffic will pass from switch S6 to S5 and dead-end at interface Gi 0/0.

    C

     No. Traffic will loop back and forth between switch S5 and S2.

    D

     Yes. Traffic will pass from switch S6 to S3 to S2 to S1.

    E

     No. Traffic will either pass from switch S6 to S5 and dead-end, or traffic will pass from switch S6 to S3 to S2 and dead-end.


    正确答案: A
    解析: 暂无解析

  • 第13题:

    设有栈S和队列Q,其初始状态为空,元素a1、a2、83、a4、85、86依次入栈,出栈的元素则进入队列Q,若6个元素出栈的顺序是g2、a4、83、86、s5、a1,则栈的容量至少是 ( )

    A.6

    B.4

    C.3

    D.2


    正确答案:C

  • 第14题:

    设有栈S和队列Q,其初始状态为空,元素a1、a2、a3、a4、a5、a6依次入栈,出栈的元素进入队列Q,若6个元素出队列的顺序是a2、a4、a3、a6、a5、a1,则栈的容量至少是______。

    A.6

    B.4

    C.3

    D.2


    正确答案:C

  • 第15题:

    设有栈S和队列Q,其状态为空,元素a1,a2,a3,a4,a5,a6依次入栈,出栈的元素则进入队列Q,若6个元素出队列的顺序是a2,a3,a4,a6,a5,a1,则栈的容量至少是A.6 B.4 C.3 D.2


    正确答案:C
    本题主要考查栈和队列的基本特性。栈是限定仅在表尾进行插入和删除操作的线性表,而队列则只允许在队尾进行插入操作,在队头进行删除操作。栈对数据元素的操作具有先进后出的特点,而队列对数据元素的操作具有先进先出的特点。
    本题要求对栈和队列一起操作,将出栈S的元素进入队列Q,元素出队的顺序是a2,a3,a4,a6,a5,a1,根据队列的特性,那么元素入队的顺序也应该为a2,a3,a4,a6,a5,a1,这也就说明元素出栈的顺序为a2,a3,a4,a6,a5,a1,但元素入栈的顺序是a1,a2,a3,a4,a5,a6,根据这两个序列,我们可以推断出元素入栈出栈的过程为:首先a1入栈,它不马上出栈,而是让a2入栈,然后a2出栈,a3、a4分别入栈后又出栈,接着a5入栈,而不接着出栈,而是让a6入栈,这时,栈S中元素的个数为3个,分别是a1,a5,a6。因此,栈的容量至少为3。

  • 第16题:

    设有一顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素出栈的顺序是s2,s3,s4,s5,s6,s1,则栈的容量至少应该是 ( )

    A.2

    B.3

    C.5

    D.6


    正确答案:B

  • 第17题:

    设有栈S和队列Q,其初始状态为空,元素a、a、 a、a、a、a依次入栈,出栈的元素进入队列Q,若6个元素出队列的顺序是a、a、a、a、a、,则栈的容量至少是______。

    A.6

    B.4

    C.3

    D.2


    正确答案:C

  • 第18题:

    进程P1.P2.P3.P4和P5的前趋图如下图所示:

    若用PV操作控制进程P1.P2.P3.P4和P5并发执行的过程,则需要设置5个信号量S1.S2.S3.S4和S5,且信号量SI~S5的初值都等于零。下图中a和b处应分别填写();c和d处应分别填写(),e和f处应分别填写()

    A.V(S1)P(S2)和V(S3)

    B.P(S1)V(S2)和V(S3)

    C.V(S1)V(S2)和V(S3)

    D.P(S1)P(S2)和V(S3)@@@SXB@@@A.P(S2)和P(S4)

    B.P(S2)和V(S4)

    C.V(S2)和P(S4)

    D.V(S2)和V(S4)@@@SXB@@@A.P(S4)和V(S4)V(S5)

    B.V(S5)和V(S3)P(S5)

    C.V(S3)和P(S4)P(S5)

    D.P(S3)和P(S4)P(S5)


    正确答案:C,B,B

  • 第19题:

    进程P1 、P2、P3、P4、P5 和 P6 的前趋图如下所示:若用 PV 操作控制这6个进程的同步与互斥的程序如下,那么程序中的空①和空②处应分别为( ); 空③和空④处应分别为( );空⑤和空⑥处应分别为( )。

    A. V (S1) V (S2) 和 P (S2) B. P (S1) P (S2) 和 V (S2) C. V (S1) V (S2) 和 P (S1) D. P (S1) P (S2) 和 V (S1) A. V (S3) 和 V (S5) V (S6) B. P (S3) 和 V (S5) V (S6) C. V (S3) 和 P (S5) P (S6) D. P (S3) 和 P (S5) P (S6) A. P (S6) 和 P (S7) V (S8) B. V (S6) 和 V (S7) V (S8) C. P (S6) 和 P (S7) P (S8) D. V (S7) 和 P (S7) P (S8)


    正确答案:C,B,D

  • 第20题:

    若用PV操作控制进程P1、P2、P3、P4和P5并发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于零。下图中a、b和c处应分别填写( );d和e处应分别填写( ),f和g处应分别填写(请作答此空)。

    A. P(S3)和V(S4)V(S5)
    B. V(S3)和P(S4)和P(S5)
    C. P(S3)和P(S4)P(S5)
    D. V(S3)和V(S4)和V(S5)

    答案:C
    解析:
    试题的正确的答案为C。根据前驱图,P4进程执行前需要等待P2进程的结果,故空f处需要1个P操作;P5进程执行前需要等待P3和P4进程的结果,故空g处需要2个P操作。根据排除法可选项只有选项C能满足要求。

  • 第21题:

    进程P1、P2、P3、P4和P5的前趋图如下:

    若用PV操作控制进程P1~P5并发执行的过程,则需要设置6个信号S1、S2、S3、S4、S5和S6,且信号量S1-S6的初值都等于零。下图中a和b处应分别填写(请作答此空);c和d处应分别填写( ),e和f处应分别填写( )。

    A. P(S1)P(S2)和P(S3)P(S4)
    B. P(S1)V(S2)和P(S2)V(S1)
    C. V(S1)V(S2)和V(S3)V(S4)
    D. P(S1)P(S2)和V(S1)V(S2)

    答案:C
    解析:
    本题主要考查用PV操作控制进程的并发执行。首先我们需要弄清楚前驱图中给出的各进制的执行顺序。从图中我们不难看出进程P1和P2没有前驱,也就是可以首先并发执行,而进程P3的前驱是P1和P2,P4的前驱是P1和P3,P5的前驱是P2和P3。那么怎么理解前驱呢?其实前驱就是指只有在前驱进程完成后,该进程才能开始执行。
    在本题的前驱图中我们不难看出,有6条路径,分别是P1->P3,P1->P4,P2->P3,P2->P5,P3->P4,P3->P5。而且题目也告诉我们分别有6初值为0个信号量(S1-S6),要我们用PV操作来控制进程P1~P5的并发执行。这里我们就需要清楚P与V这两种操作。
    P原语的主要操作是:
    (1)信号量(sem)减1;   
    (2)若相减结果大于等于零,则进程继续执行;   
    (3)若相减结果小于零,则阻塞一个在该信号量上的进程,然后再返回原进程继续执行或转进程调度。
    V原语的主要操作是:   
    (1)信号量(sem)加1;   
    (2)若相加结果大于零,则进程继续执行;   
    (3)若相加结果小于或等于零,则唤醒一阻塞在该信号量上的进程,然后再返回原进程继续执行或转进程调度。
    总而言之,进行P操作的主要目的是阻塞某信号量上的进程,而进行V操作的主要目的是唤醒某信号量上的进程。
    下面我们具体来求解这个题目。a空处,是在进程P1执行完成以后,那么根据题目的前驱图我们可以知道,这个时候它应该唤醒它的后继进程P3和P4,因此需要执行两个V操作,同样的道路,b空处也需要执行两个V操作,因此可以知道第一空答案选C。
    至于C空处,它是在进程P3执行前进行的处理。根据前驱的意义,我们可以知道执行P3要在P1和P2完成后,因此这个时候,它首先需要判断P1和P2进程是否完成,如何它们完成的话,会分别执行唤醒P3的V操作(换句话说就是会给相应的信号量进行加1操作),那么这个时候我们也可以通过同样的信号量来判断,即对相应的信号量进行减1操作,判断它是否大于0,如果大于等于0,则执行P3。从题目给出的答案来看,这两个信号量应该分别是S1和S3。那么执行完P3后,它也需要唤醒它的后继进程P4和P5,因此需要执行两个V操作,因此D空处应该是两个V操作。综上所述,我们可以知道第二空的答案选B。
    分析到这里后,第三空的答案应该就很明显了,P4和P5进程在执行前,都需要做与P3进程执行前一样的判断,因此都需要进行两个P操作。所以本题答案选C。
    其实做这类题也不难,首先需要我们对PV操作要有一个透彻的理解,另外就是能分析出题目执行的逻辑关系。

  • 第22题:

    进程P1、P2、P3、P4和P5的前趋图如下:

    若用PV操作控制进程P1~P5并发执行的过程,则需要设置6个信号S1、S2、S3、S4、S5和S6,且信号量S1-S6的初值都等于零。下图中a和b处应分别填写( );c和d处应分别填写( ),e和f处应分别填写(请作答此空)。

    A. P(S3)P(S4)和V(S5)V(S6)
    B. V(S5)V(S6)和P(S5)P(S6)
    C. P(S2)P(S5)和P(S4)P(S6)
    D. P(S4)V(S5)和P(S5)V(S6)

    答案:C
    解析:
    本题主要考查用PV操作控制进程的并发执行。首先我们需要弄清楚前驱图中给出的各进制的执行顺序。从图中我们不难看出进程P1和P2没有前驱,也就是可以首先并发执行,而进程P3的前驱是P1和P2,P4的前驱是P1和P3,P5的前驱是P2和P3。那么怎么理解前驱呢?其实前驱就是指只有在前驱进程完成后,该进程才能开始执行。
    在本题的前驱图中我们不难看出,有6条路径,分别是P1->P3,P1->P4,P2->P3,P2->P5,P3->P4,P3->P5。而且题目也告诉我们分别有6初值为0个信号量(S1-S6),要我们用PV操作来控制进程P1~P5的并发执行。这里我们就需要清楚P与V这两种操作。
    P原语的主要操作是:
    (1)信号量(sem)减1;   
    (2)若相减结果大于等于零,则进程继续执行;   
    (3)若相减结果小于零,则阻塞一个在该信号量上的进程,然后再返回原进程继续执行或转进程调度。
    V原语的主要操作是:   
    (1)信号量(sem)加1;   
    (2)若相加结果大于零,则进程继续执行;   
    (3)若相加结果小于或等于零,则唤醒一阻塞在该信号量上的进程,然后再返回原进程继续执行或转进程调度。
    总而言之,进行P操作的主要目的是阻塞某信号量上的进程,而进行V操作的主要目的是唤醒某信号量上的进程。
    下面我们具体来求解这个题目。a空处,是在进程P1执行完成以后,那么根据题目的前驱图我们可以知道,这个时候它应该唤醒它的后继进程P3和P4,因此需要执行两个V操作,同样的道路,b空处也需要执行两个V操作,因此可以知道第一空答案选C。
    至于C空处,它是在进程P3执行前进行的处理。根据前驱的意义,我们可以知道执行P3要在P1和P2完成后,因此这个时候,它首先需要判断P1和P2进程是否完成,如何它们完成的话,会分别执行唤醒P3的V操作(换句话说就是会给相应的信号量进行加1操作),那么这个时候我们也可以通过同样的信号量来判断,即对相应的信号量进行减1操作,判断它是否大于0,如果大于等于0,则执行P3。从题目给出的答案来看,这两个信号量应该分别是S1和S3。那么执行完P3后,它也需要唤醒它的后继进程P4和P5,因此需要执行两个V操作,因此D空处应该是两个V操作。综上所述,我们可以知道第二空的答案选B。
    分析到这里后,第三空的答案应该就很明显了,P4和P5进程在执行前,都需要做与P3进程执行前一样的判断,因此都需要进行两个P操作。所以本题答案选C。
    其实做这类题也不难,首先需要我们对PV操作要有一个透彻的理解,另外就是能分析出题目执行的逻辑关系。

  • 第23题:

    单选题
    S1={1,2,...,8,9},S2={2,4,6,8},S3={1,3,5,7,9},S4={3,4,5},S5={3,5},在条件X⊆S1且X⊄S3下,X与(  )集合可能相等。
    A

    X=S2或S3

    B

    X=S4或S5

    C

    X=S1,S2或S4

    D

    X与S1,…,S5中任何集合都不相等


    正确答案: A
    解析:
    X⊆S1且X⊄S3意味着X是S1的子集,但不是S3的子集。S5是S3的真子集,所以排除。而S1,S2,S4是S1的子集但不是S3的子集。所以X可能等于S1,S2或S4,故本题选C。

  • 第24题:

    单选题
    设有一顺序栈,元素1,2,3,4,5依次进栈,如果出栈顺序是2,4,3,5,1则栈的容量至少是:()
    A

    1

    B

    2

    C

    3

    D

    4


    正确答案: B
    解析: 暂无解析