軟件設(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í)、每日一練)
閱讀下列函數(shù)說明、圖和c代碼,將應(yīng)填入 (n) 處的字句。
[說明]
散列文件的存儲單位稱為桶(bucket)。假如一個桶能存放m個記錄,當(dāng)桶中已有 m個同義詞(散列函數(shù)值相同)的記錄時,存放第m+1個同義詞會發(fā)生“溢出”。此時需要將第m+1個同義詞存放到另一個稱為“溢出桶”的桶中。相對地,稱存放前m個同義詞的桶為“基桶”。溢出桶和基桶大小相同,用指針鏈接。查找指定元素記錄時,首先在基桶中查找。若找到,則成功返回,否則沿指針到溢出桶中進行查找。
例如:設(shè)散列函數(shù)為hash(key)=key mod 7,記錄的關(guān)鍵字序列為15,14,21,87,97,293,35,24,149,19,63,16,103,77,5,153,145,356,51,68,705,453,建立的散列文件內(nèi)容如圖4-1所示。
[圖4-1]
為簡化起見,散列文件的存儲單位以內(nèi)存單元表示。
函數(shù)inserttohashtable(int newelemkey)的功能是:將元素neweiemkey插入散列桶中,若插入成功則返回0,否則返回-1。
采用的散列函數(shù)為hash(newelemkey)=newelemkey % p,其中p為設(shè)定的基桶數(shù)目。
函數(shù)中使用的預(yù)定義符號如下:
#define nullkey -1 /*散列桶的空閑單元標(biāo)識*/
#define p 7 /*散列文件中基桶的數(shù)目*/
#define items 3 /*基桶和溢出桶的容量*/
typedef struct bucketnode{ /*基桶和溢出桶的類型定義*/
int kcydata[items];
struct bucketnode *link;
}bucket;
bucket bucket[p]; /*基桶空間定義*/
[函數(shù)]
int lnserttohashtable(int newelemkey){
/*將元素newelemkey插入散列桶中,若插入成功則返回0,否則返回-1*/
/*設(shè)插入第一個元素前基桶的所有keydata[]、link域已分別初始化為nullkey、
null*/
int index; /*基桶編號*/
int i,k;
bucket *s,*front,*t;
(1) ;
for(i=0; i
if(bucket[index].keydata[i]=nullkey){
bucket[index].keydata[i]=newelemkey; break;
}
if( (2) ) return 0;
/*若基桶已滿,則在溢出桶中查找空閑單元,若找不到則申請新的溢出桶*/
(3) ; t=bucket[index].link;
if(t!=null) {/*有溢出桶*/
while (t!=null){
for(k=0; k
if(t->keydata[k]=nullkey){/*在溢出桶鏈表中找到空閑單元*/
t->keydata[k]=newelemkey; break;
}/*if*/
front=t;
if( (4) )t=t->link;
else break;
}/*while*/
}/*if*/
if( (5) ) {/*申請新溢出桶并將元素存入*/
s=(bucket*)malloe(sizeof(bucket));
if(!s) return-1;
s->link=null;
for(k=0; k
s->keydata[k]=nullkey;
s->keydata[0]=newelemkey;
(6) ;
}/*if*/
return 0;
}/*inserttohashtable*/
信管網(wǎng)參考答案:
(1) Index=NewElemKey % P
(2) i
(3) front=&Bucket[Index]
(4) k==ITEMS
(5) t==NULL,或!t
(6) front->Link=s
溫馨提示:因考試政策、內(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é)員考試保駕護航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
發(fā)表評論 查看完整評論 | |