问题 填空题

阅读以下函数说明、图和C代码,将应填入 (n) 处的字句写在对应栏内。

[说明]

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

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

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

函数InsertToHashTable(int NewElemKey)的功能是:若新元素NewElemKey正确插入散列文件中,则返回值1;否则返回值0。

采用的散列函数为Hash(NewElemKey)=NewElemKey%P,其中P为设定的基桶数目。

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

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

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

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

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

int KeyData[ITEMS];

struct BucketNode *Link;

BUCKET;

BUCKET Bucket[P]; /*基桶空间定义*/

[本题函数]

int InsertToHashTable(int NewElemKey)

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

/*设插入第一个元素前基桶的所有KeyData[]、Link域已分别初始化为NULLKEY、NULL*/

int Index: /*基桶编号*/

int i,k;

BUCKET *s,*front,*t;

(1)

for(i=0;i<ITEMS;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<ITEMS;k++)

if(t->KeyData[k]==NULLKEY)/*在溢出桶链表中找到空闲单元*/

t->KeyData[k]=NewElemKey;break;

/*if*/

if( (4) )t=t->Link;

else break;

/*while*/

/*if*/

if( (5) )/*申请新溢出桶并将元素存入*/

s=(BUCKET *)mallOC(sizeof(BUCKET));

if(!s)return-1;

s->Link=NULL;

for(k=0;k<ITEMS;k++)

s->KeyData[k]=NULLKEY;

s->KeyData[0]=NewElemKey;

(6)

/*if*/

return 0;

/*InsertToHashTable*/

(4)处填()。

答案

参考答案:k==ITEMS,或k>=ITEMS,ITEMS可用3代替

综合题

历史上的中日、中美、美日关系是国际关系史的重要内容,在当今世界的国际关系中占有可能影响世界局势的作用。阅读下列材料,回答相关问题。(20分)

材料一  在陆地和海上打了败仗的中国人将被迫欧化,全部开放它的港口通商,建筑铁路和工厂。

(1)根据材料一,“在陆地和海上打了败仗”是指近代中国发生的什么战争?(3分)结合所学知识概括说明中国社会对这场战争失败的主要反应。(6分)

材料二 1942年1月,日军进攻缅甸,英军节节败退,英国政府正式向中国政府请求迅速派兵入缅协同英军作战。中国政府即派出10万远征军入缅,后又不断增兵。由于中国战场和印、滇、缅战场牵制日军达130万之众,使日军无法调往太平洋,大大减轻了美国的压力。

1942年3月,中国和美国合作,开辟了从印度阿萨姆邦汀江至中国云贵高原和四川盆地的空中航线――驼峰航线。此后三年中,中、美通过这条航线,将大量物资空运到中国境内,中、美都为此付出了巨大代价。        

——摘编自军事科学院《中国抗日战争史》等

(2)根据材料二和所学知识,分析“驼峰航线”的作用。(6分)指出“驼峰航线”所反映的中美关系的特征。(2分)

材料三  美国总统罗斯福在1940年底说,我们现在竭尽全力支援保卫自己、反对轴心国进攻的国家……我们必须成为民主国家的伟大兵工厂。……1941年12月8日,美国对日宣战。                    ——《世界反法西斯战争纪实》

材料四  1950年1月,艾奇逊在谈到美国的亚洲政策时说:“太平洋地区的安全就是美国的安全。”美国的防区“自阿留申(群岛)起,经日本直到琉球群岛”,自“琉球群岛起,到菲律宾”。1954年3月8日,美日签定《美日共同防御援助协定》,重申“要履行日本政策依照美日安全条约所承担的军事义务”,后又宣布美日应“采取行动以应付共同的危险”。 

——黄安年《二十世纪美国史》

(3)材料四与材料三相比,美国对日本的政策有什么变化?(4分)为什么会有这样的变化?(4分)

材料五  对日本印象不好的原因

注:此题为多选题,各选项之和比例大于100% 

——引自《2011年中日关系舆论调查研究报告》

(4)2012年是“中日邦交正常化”多少年?(1分)根据材料五指出中国民众对日本印象不好的主要因素。(6分)

单项选择题 A1/A2型题