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