軟件設(shè)計師下午考試科目為案例分析,考試題型為主觀題,4道必答題,2道(5、6題)選答題,考試時長2個半小時,共75分。為幫助廣大軟考中級軟件設(shè)計師考生更好備考,信管網(wǎng)特整理匯總了軟件設(shè)計師部分真題、答案及解析供考生查閱,并提供免費在線模擬答題、歷年真題免費下載等服務(wù),了解軟件設(shè)計師更多備考信息請關(guān)注信管網(wǎng)。
相關(guān)推薦:
點擊查看:軟件設(shè)計師在線培訓(xùn)課程 丨 免費試聽課程
免費練習(xí):軟件設(shè)計師考試題庫(模擬試題、章節(jié)練習(xí)、每日一練)
閱讀以下說明和c代碼,將應(yīng)填入 (n) 處。
[說明]
在一公文處理系統(tǒng)中,開發(fā)者定義了一個公文結(jié)構(gòu)officedoc,其中定義了公文應(yīng)該具有的屬性(字段)。當(dāng)公文的內(nèi)容或狀態(tài)發(fā)生變化時,與之相關(guān)聯(lián)的docexplorer結(jié)構(gòu)的值都需要發(fā)生改變。一個officedoc結(jié)構(gòu)能夠關(guān)聯(lián)一組docexplorer結(jié)構(gòu)。當(dāng)officedoc結(jié)構(gòu)的內(nèi)容或狀態(tài)發(fā)生變化時,所有與之相關(guān)聯(lián)的docexplorer結(jié)構(gòu)都將被更新,這種應(yīng)用被稱為觀察者模式。以下代碼采用c語言實現(xiàn),能夠正確編譯通過。
[c代碼]
#include
#define obs_maxnum 20 /*一個officedoc變量最多能夠關(guān)聯(lián)的*/
/*doeexplorer變量的個數(shù)*/
typedef void( (1) )(struct officedoc*,street docexplorer*);
struct docexplorer{
func update;/* docexplorer結(jié)構(gòu)采用的更新函數(shù)*/
/*其他的結(jié)構(gòu)字段省略*/
};
struct officedoc{
(2) myobs[obs_maxnum];
/*存儲所有與officedoc相關(guān)聯(lián)的doeexplorer結(jié)構(gòu)指針*/
int index;/*與officedoc結(jié)構(gòu)變量相關(guān)聯(lián)的docexplorer結(jié)構(gòu)變量的個數(shù)*/
};
void attach(struet officedoc *doc, struet docexplorer *ob){
/*關(guān)聯(lián)obersver結(jié)構(gòu)ob與officedoe結(jié)構(gòu)doc*/
int loop=0;
if(doc->index >=obs_maxnum || ob==null) return;
for(loop=0; loop index; loop++)
if(doc->myobs[loop]==ob)return;
doc->myobs[doe->index]=ob;
doc->index++;
)
void detach(struct officedoc *doc, struct docexplorer *ob){
/*解除doc結(jié)構(gòu)與ob結(jié)構(gòu)間的關(guān)系*/
int loop;
if(ob==null)return;
for(loop=0; loop index; loop6++){
if(doc->myobs[loop]==ob){
if(loop<=doc->index-2)
doe->myobs[loop]=doc->myobs[ (3) ];
doc->myobs[doe->indox-1]=null;
doe->index--;
break;
}
}
}
void updatel(struct officedoc *doc,struct docexplorer *ob){
/*更新ob結(jié)構(gòu)的值,更新代碼省略*/
}
void update2(stmct officedoc *doc, struct docexplorer *ob){
/*更新ob結(jié)構(gòu)的值,更新代碼省略*/
}
void notifyobs(struet officedoc *doc){
/*當(dāng)doc結(jié)構(gòu)的值發(fā)生變化時,通知與之關(guān)聯(lián)的所有docexplorer結(jié)構(gòu)變量*/
int loop;
for(loop=0; loop index; loop++){
(doc->myobs[loop])->update( (4) );
}
}
void main(){
stmct officedoc doc;/*定義一officedoc變量*/
struct docexplorer explorer1, explorer2;/*定義兩個docexplorer變量*/
/*初始化與officedoc變量相關(guān)的docexplorer變量個數(shù)為0*/
doc.index=0;
explorer1.update=update1;/*設(shè)置explorer1變量的更新函數(shù)*/
explorer2.update=update2;/*設(shè)置explorer2變量的更新函數(shù)*/
attaeh(&doc,&explorer1);/*關(guān)聯(lián)explorer1與doc對象*/
attach(&doc,&explorer2);/*關(guān)聯(lián)explorer2與doc對象*/
/*其他代碼省略*/
(5) ;/*通知與officedoc相關(guān)的所有docexplorer變量*/
return;
}
信管網(wǎng)參考答案:
(1) *func
(2) struct DocExplorer*
(3) doc->index-1,或等價形式
(4) doc和doc->myObs[loop],或等價形式
(5) notifyObs(&doc)
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權(quán)威部門公布的內(nèi)容為準(zhǔn)!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學(xué)生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學(xué)員考試保駕護(hù)航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
發(fā)表評論 查看完整評論 | |