专业软件设计师网站|培训机构|服务商(加客服微信:cnitpm或QQ:800184589进软件设计师学霸群)

软题库 培训课程
当前位置:信管网 >> 软件设计师 >> 案例分析 >> 文章内容
软件设计师《案例分析》真题及答案15
来源:信管网 2021年08月13日 【所有评论 分享到微信

软件设计师下午考试科目为案例分析,考试题型为主观题,4道必答题,2道(5、6题)选答题,考试时长2个半小时,共75分。为帮助广大软考中级软件设计师考生更好备考,信管网特整理汇总了软件设计师部分真题、答案及解析供考生查阅,并提供免费在线模拟答题、历年真题免费下载等服务,了解软件设计师更多备考信息请关注信管网。

相关推荐:

点击查看/下载:软件设计师历年真题汇总

点击查看:软件设计师在线培训课程免费试听课程

免费练习:软件设计师考试题库(模拟试题、章节练习、每日一练)

阅读下列函数说明、图和c代码,将应填入 (n) 处的字句。

[说明]

散列文件的存储单位称为桶(bucket)。假如一个桶能存放m个记录,当桶中已有 m个同义词(散列函数值相同)的记录时,存放第m+1个同义词会发生“溢出”。此时需要将第m+1个同义词存放到另一个称为“溢出桶”的桶中。相对地,称存放前m个同义词的桶为“基桶”。溢出桶和基桶大小相同,用指针链接。查找指定元素记录时,首先在基桶中查找。若找到,则成功返回,否则沿指针到溢出桶中进行查找。

例如:设散列函数为hash(key)=key mod 7,记录的关键字序列为15,14,21,87,97,293,35,24,149,19,63,16,103,77,5,153,145,356,51,68,705,453,建立的散列文件内容如图4-1所示。

[图4-1]


为简化起见,散列文件的存储单位以内存单元表示。

函数inserttohashtable(int newelemkey)的功能是:将元素neweiemkey插入散列桶中,若插入成功则返回0,否则返回-1。

采用的散列函数为hash(newelemkey)=newelemkey % p,其中p为设定的基桶数目。

函数中使用的预定义符号如下:

#define nullkey -1 /*散列桶的空闲单元标识*/

#define p 7 /*散列文件中基桶的数目*/

#define items 3 /*基桶和溢出桶的容量*/

typedef struct bucketnode{ /*基桶和溢出桶的类型定义*/

int kcydata[items];

struct bucketnode *link;

}bucket;

bucket bucket[p]; /*基桶空间定义*/

[函数]

int lnserttohashtable(int newelemkey){

/*将元素newelemkey插入散列桶中,若插入成功则返回0,否则返回-1*/

/*设插入第一个元素前基桶的所有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*/

信管网参考答案:

(1) Index=NewElemKey % P

(2) i

(3) front=&Bucket[Index]

(4) k==ITEMS

(5) t==NULL,或!t

(6) front->Link=s

查看解析:www.cnitpm.com/st/2453217604.html

扫码关注公众号

温馨提示:因考试政策、内容不断变化与调整,信管网网站提供的以上信息仅供参考,如有异议,请以权威部门公布的内容为准!

信管网致力于为广大信管从业人员、爱好者、大学生提供专业、高质量的课程和服务,解决其考试证书、技能提升和就业的需求。

信管网软考课程由信管网依托10年专业软考教研倾力打造,官方教材参编作者和资深讲师坐镇,通过深研历年考试出题规律与考试大纲,深挖核心知识与高频考点,为学员考试保驾护航。面授、直播&录播,多种班型灵活学习,满足不同学员考证需求,降低课程学习难度,使学习效果事半功倍。

相关内容

发表评论  查看完整评论  

推荐文章