女人久久久www免费人成看片,国内自拍偷拍网,国产一区二区三区免费在线观看,欧美精品三区四区,91久久国产综合久久91,欧美成人精品第一区二区三区 ,美女成人在线观看

軟題庫(kù) 學(xué)習(xí)課程
試卷年份2004年下半年
試題題型【分析簡(jiǎn)答題】
試題內(nèi)容

閱讀以下說(shuō)明和C++代碼,將應(yīng)填入  (n)  處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。
說(shuō)明
通常情況下,用戶可以對(duì)應(yīng)用系統(tǒng)進(jìn)行配置,并將配置信息保存在配置文件中。應(yīng)用系統(tǒng)在啟動(dòng)時(shí)首先將配置文件加載到內(nèi)存中,這些內(nèi)存配置信息應(yīng)該有且僅有一份。下面的代碼應(yīng)用了單身模式(Singleton)以保證Configure類只能有一個(gè)實(shí)例。這樣, Configure類的使用者無(wú)法定義該類的多個(gè)實(shí)例,否則會(huì)產(chǎn)生編譯錯(cuò)誤。
C++代碼
#include<iostream.h>
class Configure{
(1)  :
Configure(){}    //構(gòu)造函數(shù)
public:
static Configure*Instance();
public:
int GetConf~ureData(){return data;}    //獲取配置信息
int SetConfigureDate(int m_data)
{data=m_data;  return data;}    //設(shè)置配置信息
private:
static Configure*_instance;
int data;    //配置信息
};
(2)  =NULL;
Configure*Configure∷Instance(){
if(_instance=NULL){
_instance=  (3)  ;
//加載配置文件并設(shè)置內(nèi)存配置信息,此處省略
}
return  (4)  ;
}
void main()(
Configure*t=NULL;
t=  (5)  ;
int d=t→GetConfigureData();
//獲取配置信息后進(jìn)行其他工作,此處省略
}

查看答案

相關(guān)試題

3題:

試題3
閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
某指紋門禁系統(tǒng)的體系結(jié)構(gòu)如圖3-1所示,其主要部件有:主機(jī)(MainFrame)、鎖控器(LockController)、指紋采集器(FingerReader)和電控鎖(Lock)。
(1)系統(tǒng)中的每個(gè)電控鎖都有一個(gè)惟一的編號(hào)。鎖的狀態(tài)有兩種:“已鎖住”和“未
鎖住”。
(2)在主機(jī)上可以設(shè)置每把鎖的安全級(jí)別以及用戶的開(kāi)鎖權(quán)限。只有當(dāng)用戶的開(kāi)鎖權(quán)限大于或等于鎖的安全級(jí)別并且鎖處于“已鎖住”狀態(tài)時(shí),才能將鎖打開(kāi)。
(3)用戶的指紋信息、開(kāi)鎖權(quán)限以及鎖的安全級(jí)別都保存在主機(jī)上的數(shù)據(jù)庫(kù)中。
(4)用戶開(kāi)鎖時(shí),只需按一下指紋采集器。指紋采集器將發(fā)送一個(gè)中斷事件給鎖控器,鎖控器從指紋采集器讀取用戶的指紋并將指紋信息發(fā)送到主機(jī),主機(jī)根據(jù)數(shù)據(jù)庫(kù)中存儲(chǔ)的信息來(lái)判斷用戶是否具有開(kāi)鎖權(quán)限,若有且鎖當(dāng)前處于“已鎖住”狀態(tài),則將鎖打開(kāi);否則系統(tǒng)報(bào)警。
該系統(tǒng)采用面向?qū)ο蠓椒ㄩ_(kāi)發(fā),系統(tǒng)中的類以及類之間的關(guān)系用UML類圖表示,圖3-2是該系統(tǒng)類圖的一部分;系統(tǒng)的動(dòng)態(tài)行為采用UML序列圖表示,圖3-3是用戶成功開(kāi)鎖的序列圖。


【問(wèn)題1】
圖3-2是該系統(tǒng)類圖的一部分,依據(jù)上述說(shuō)明中給出的術(shù)語(yǔ),給出類Lock的主要屬性。


【問(wèn)題2】
依據(jù)上述說(shuō)明中給出的詞語(yǔ),將圖3-3中的(1)~(5)處補(bǔ)充完整。


【問(wèn)題3】
組裝(composition)和聚集(aggregation)是UML中兩種非常重要的關(guān)系。請(qǐng)說(shuō)明組裝和聚集分別表示什么含義?兩者的區(qū)別是什么?

答案解析與討論:m.xiexiliangjiufa.com/st/2451724247.html

4題:

試題4
閱讀下列說(shuō)明和圖,回答問(wèn)題1至問(wèn)題3,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
在并發(fā)系統(tǒng)設(shè)計(jì)中,通過(guò)對(duì)信號(hào)量S的P、V操作實(shí)現(xiàn)進(jìn)程的同步與互斥控制。
P(S):S:=S-1,若S≥0,則執(zhí)行P操作的進(jìn)程繼續(xù)執(zhí)行:若S<0,則置該進(jìn)程為阻塞狀態(tài),并將其插入阻塞隊(duì)列。
V(S):S:=S+1,若S>0,則執(zhí)行V操作的進(jìn)程繼續(xù)執(zhí)行;若S≤0,則從阻塞隊(duì)列喚醒一個(gè)進(jìn)程,并將其插入就緒隊(duì)列,然后執(zhí)行V操作的進(jìn)程繼續(xù)執(zhí)行。


【問(wèn)題1】
在某并發(fā)系統(tǒng)中,有一個(gè)發(fā)送進(jìn)程A、一個(gè)接收進(jìn)程B、一個(gè)環(huán)形緩沖區(qū)BUFFER、信號(hào)量S1和S2。發(fā)送進(jìn)程不斷地產(chǎn)生消息并寫(xiě)入緩沖區(qū)BUFFER,接收進(jìn)程不斷地從緩沖區(qū)BUFFER取消息。假設(shè)發(fā)送進(jìn)程和接收進(jìn)程可以并發(fā)地執(zhí)行,那么,當(dāng)緩沖區(qū)的容量為N時(shí),如何使用P、V操作才能保證系統(tǒng)的正常工作。發(fā)送進(jìn)程A和接收進(jìn)程B的工作流程如圖4-1所示。請(qǐng)?jiān)趫D4-1中的空(1)~(4)處填入正確的內(nèi)容。


【問(wèn)題2】
若系統(tǒng)中有多個(gè)發(fā)送進(jìn)程和接收進(jìn)程,進(jìn)程間的工作流程如圖4-2所示,其中空 (1)~(4)的內(nèi)容與圖4-1相同。發(fā)送進(jìn)程產(chǎn)生消息并順序地寫(xiě)入環(huán)形緩沖區(qū)BUFFER,接收者進(jìn)程順序地從BUFFER中取消息,且每條消息只能讀取一次。為了保證進(jìn)程間的正常通信,增加了信號(hào)量SA和SB。
①請(qǐng)說(shuō)明信號(hào)量SA和SB的物理意義,并在圖4-2中的空(5)和空(6)處填入正確的內(nèi)容。
②請(qǐng)從圖4-2的(a)~(1)中選擇四個(gè)位置正確地插入P(SA)、V(SA)、P(SB)、V(SB)。


【問(wèn)題3】
設(shè)系統(tǒng)中只有進(jìn)程A和進(jìn)程B,除了互斥地使用CPU和打印機(jī)R外,進(jìn)程A和B不使用其他資源。另外,進(jìn)程B的優(yōu)先級(jí)比A高,而進(jìn)程A先于B準(zhǔn)備好。進(jìn)程A和 B的執(zhí)行情況如圖4-3所示,其中粗實(shí)線表示進(jìn)程在執(zhí)行中,細(xì)實(shí)線表示打印機(jī)R在使用中(每個(gè)進(jìn)程具有三種狀態(tài):運(yùn)行、就緒和阻塞)。


請(qǐng)分別說(shuō)明進(jìn)程A和B在圖4-3所示的t1、t2、t3、t4時(shí)刻所處的狀態(tài);若是阻塞狀態(tài),請(qǐng)說(shuō)明阻塞原因。



答案解析與討論:m.xiexiliangjiufa.com/st/2451810881.html

5題:

13、閱讀下列函數(shù)說(shuō)明和c代碼,將應(yīng)填入  (n)  處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
函數(shù)int Toplogical(Linded WDipaph  G.的功能是對(duì)圖G中的頂點(diǎn)進(jìn)行拓?fù)渑判颍⒎祷仃P(guān)鍵路徑的長(zhǎng)度。其中圖G表示一個(gè)具有n個(gè)頂點(diǎn)的AOE-網(wǎng),圖中頂點(diǎn)從1~n依次編號(hào),圖G的存儲(chǔ)結(jié)構(gòu)采用鄰接表表示,其數(shù)據(jù)類型定義如下:
typedefstruct Gnode{               /* 鄰接表的表結(jié)點(diǎn)類型*/
iht adjvex;                  /* 鄰接頂點(diǎn)編號(hào)*/
iht weight;                 /* 弧上的權(quán)值*/
street Gnode *nextarc;          /* 指示下一個(gè)弧的結(jié)點(diǎn)*/
}Gnode;
typedef struct Adjlist{           /* 鄰接表的頭結(jié)點(diǎn)類型*/
char vdata;                  /*頂點(diǎn)的數(shù)據(jù)信息*/
struct Gnode *Firstadj;        /* 指向鄰接表的第一個(gè)表結(jié)點(diǎn)*/
}Adjlist;
typedef street LinkedWDigraph{      /* 圖的類型*/
int n, e;                  /* 圖中頂點(diǎn)個(gè)數(shù)和邊數(shù)*/
struct Adjlist *head;         /*指向圖中第一個(gè)頂點(diǎn)的鄰接表的頭結(jié)點(diǎn) */
} LinkedWDigraph;
例如,某AOE-網(wǎng)如圖5-1所示,其鄰接表存儲(chǔ)結(jié)構(gòu)如圖5-2所示。

【函數(shù)】
iht Toplogical(LinkedWDigraph G.
{ Gnode *p;
intj, w, top = 0;
iht *Stack, *ye, *indegree;
ye = (int *)malloe((G.n+1) * sizeof(int));
indegree = (int *)malloc((G.n+1)*sizeof(int));   /* 存儲(chǔ)網(wǎng)中各頂點(diǎn)的入度*/
Stack = (int *)malloe((G.n+1)*sizeof(int));     /* 存儲(chǔ)入度為0的頂點(diǎn)的編號(hào)*/
if(!ve||!indegree || !Stack)      exit(0);
for (j = 1;j <= G.n;j++) {
ve[j] = 0;    indegree[j]= 0;
}/*for*/
for(j= 1;j<=G.n;j++) { /* 求網(wǎng)中各頂點(diǎn)的入度*/
p = G.head[j].Firstadj;
while (p) {
(1)  ;  p = p→nextarc;
}/*while*/
}/*for*/
for (j = 1; j <= G.n; j++)                  /*求網(wǎng)中入度為0的頂點(diǎn)并保存其編號(hào)*/
if (!indegree[j])     Stack[++top] =j;
while (top > 0) {
w=   (2)  ;
printf("%e  ", G.head[w].vdata);
p = G.head[w].Firstadj;
while (p) {
(3)   ;
if ( !indegree [p→adjvex])
Staek[++top] = p→adjvex;
if(   (4)  )
ve[p→adjvex] = ve[w] + p→weight;
p = p→nextarc;
}/* while */
}/* while */ return   (5)   ; }/*Toplogieal*/



答案解析與討論:m.xiexiliangjiufa.com/st/2451929526.html

7題:

閱讀以下說(shuō)明和Java代碼,將應(yīng)填入  (n)  處的字句寫(xiě)在答題紙的對(duì)應(yīng)欄內(nèi)。
說(shuō)明
類Queue表示隊(duì)列,類中的方法如下表所示。





類Node表示隊(duì)列中的元素;類EmptyQueueException 給出了隊(duì)列操作中的異常處理操作。
Java 代碼
public class TestMain{                            // 主類
public static void main(String args[]) {
Queue q = new Queue();
q.enqueue("first!");
q.enqueue("second!");
q.enqueue("third!");
(1)  {
while(true)
System.out.println(q. dequeue());
}
catch(   (2)  )  ( }
}
}
public class Queue {                              // 隊(duì)列
Node m_FirstNode;
public Queue() { m_FirstNode = null; }
public boolean isEmpty() {
if(m_FirstNode == null)  return true;
else  return false;
}
public void enqueue(Object newNode) {// 入隊(duì)操作
Node next = m_FirstNode;
if(next==null)  m_FirstNode = new Node(newNode);
else {
while(next.getNext() != null)  next = next.getNext();
next.setNext(new Node(newNode));
}
}
public Object dequeue()     (3)   {// 出隊(duì)操作
Object node;
if (isEmpty())
(4)   ;      // 隊(duì)列為空,拋出異常
else {
node = m_FirstNode.getObject();
m_FirstNode = m_FirstNode.getNext();
return node;
}
}
}
public class Node {                              // 隊(duì)列中的元素
Object m_Data;
Node m_Next;
public Node(Object data)          { m_Data = data;   m_Next = null; }
public Node(Object data, Node next)  { m_Data = data;   m_Next = next; }
public void setObject(Object data)   { m_Data = data; }
public Object getObject0          { return m_Data; }
public void setNext(Node next)      { m_Next = next; }
public Node getNext()             { return m_Next; }
}


public class EmptyQueueException extends     (5)   {  // 異常處理類
public EmptyQueueException0  {
System.out.println("隊(duì)列已空 ! ");
}
}

答案解析與討論:m.xiexiliangjiufa.com/st/2452113389.html