第9题: [简答题]考虑有三个吸烟者进程和一个经销商进程的系统。每个吸烟者连续不断地做烟卷并抽他做好的烟卷。做一个烟卷需要烟草、纸和火柴三种原料。这三个吸烟者分别掌握有烟草、纸和火柴。经销商源源不断地提供上述三种原料,但他只将其中的两种原料放在桌子上,具有另一种原料的吸烟者就可做烟卷并抽烟,且在做完后给经销商发信号,然后经销商再拿出两种原料放在桌上,如此反复。试设计一个使经销商和抽烟者同步的算法。 参考答案:本题是一个有限缓冲区的生产者消费者问题,关键是找到缓冲区资源,以及谁是生产者、谁是消费者。 本题中烟草、纸和火柴应该看作是产品,桌子是缓冲区。问题是有几种产品。烟草、纸和火柴三种原料又不能简单地看成是三种产品,因为它们并不是以单独的形式被三个吸烟者进程所竞争的,而是以固定的组合被三个进程所申请的。因此可以考虑:设置三个信号量r、s和t,分别代表三种原料组合,即r表示烟草和纸,s表示纸和火柴,t表示烟草和火柴,初值均为0;桌面上一次只能放一种组合,可以看作是放一个产品的缓冲区,设置信号量empty初值为1,控制经销商往桌子上放原料;对于三个吸烟者的申请动作也要加以判断,用三个变量smoker1、smoker2、smoker3,初值为false,当为true时,表示申请资源,得到资源后置为false。四个进程循环往复,并发执行。 parbegin 经销商进程: Begin P(empty); if smoker1=true then Begin 放烟草和纸; V(r); End if smoker2=true then Begin 放纸和火柴; V(s); End if smoker3=true then Begin 放烟草和火柴; V(t); End End 吸烟者1进程: Begin smoker1:=true; P(r); 取走原料; smoker1:=false; V(empty); Smoking; End 吸烟者2进程: Begin smoker2:=true; P(s); 取走原料; smoker2:=false; V(empty); Smoking; End 吸烟者3进程: Begin smoker3:=true; P(t); 取走原料; smoker3:=false; V(empty); Smoking; End Parend
第30题: [填空题]下面程序段执行后消息框的输出结果是______。
a=12345
Do
a=a/10
b=a Mod 10
Loop While b>=3
MsgBox a 参考答案:L 答案解析:[解析] 本题考查VBA中循环的知识。对于这种循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件如何至少执行一次循环体。在Unt
第31题: [单项选择]在三角测量中,最弱边是指( )。 A. 边长最短的边 B. 边长最长的边 C. 相对精度最低的边 D. 边长中误差最大的边 参考答案:C
第32题: [多项选择]关于领导—成员交换理论的陈述,正确的有()。 A. 领导对团体内的成员同样对待 B. 领导把下属分成“圈里人”和“圈外人” C. 领导往往对“圈外人”投入更多的时间和更少的正式领导权威 D. 领导者和下属两者都作为个体.通过团体进行反馈 E. 领导者的自我图式通过下属的行为反应也在改变 参考答案:B, D, E 答案解析:领导—成员交换理论认为,团体中领导者与下属在确立关系和角色的早期,就把下属分出“圈里人”和“圈外人”的类别。对于同一个领导者而言,属于“圈里人”的下属与领导打交道时,比“圈外人”困难少,能够感觉到领导