问题 填空题

[说明]

函数sort(NODE*head)的功能是:用冒泡排序法对单链表中的元素进行非递减排序。对于两个相邻节点中的元素,若较小的元素在后面,则交换这两个节点中的元素值。其中,head指向链表的头节点。排序时,为了避免每趟都扫描到链表的尾节点,设置一个指针endptr,使其指向下趟扫描需要到达的最后一个节点。例如,对于图8-25(a)所示的链表进行一趟冒泡排序后,得到图8-25(b)所示的链表。

链表的节点类型定义如下:

typedef Struet Node

int data;

struct Node *next;

NODE;

[C语言函数]

void sort(NODE *head)

NODE *ptr, *preptr, *endptr;

int tempdata;

ptr=head->next;

while (1) /*查找表尾节点*/

ptr=ptr->next;

endptr=ptr; /*令endptr指向表尾节点*/

ptr= (2) ;

while(ptr!=endptr)

while( (3) )

if(ptr->data>ptr->next->data)

tempdata=ptr->data; /*交换相邻节点的数据*/

ptr->data=ptr->next->data;

ptr->next->data=tempdata;

preptr= (4) ;ptr=ptr->next;

endptr= (5) ; ptr=head->next;

 

(5)处填()

答案

参考答案:preptr

解析:

从(1)处代码中可知ptr最后应该指向表尾节点。所以(1)处应为ptr->next。进行冒泡排序时,不断调整元素的位置,最终使最大元素放到表的最后,所以(2)处应为head->next。(3)处的循环条件应该是扫描的节点,不是最后一个节点,所以(3)处应为ptr!=endptr。ptr每向后修改一次,preptr就要修改一次,所以(4)处应为ptr,(5)处应为preptr。

综合题

(10分)阅读下列材料,回答问题。

材料一:1920年,列宁约见了一位来访的老农。列宁问:“依你看,现在农村里主要的问题在哪里?”老农回答说:“我看现在主要的问题是庄稼人失去了干活的兴趣。政府一拿走的太多了。农民干得多干得少、干得好干得不好都一样,反正都给拿走了。”

材料二:就在1929年全球经济危机最严重的时刻,一个规模宏大的拖拉机厂在斯大林格勒破土动工了。10个月后,工厂建成投产。这个奇迹般的速度,来自于计划经济体制的有效动作,也来自苏联对世界经济形势的判断和利用。

拖拉机厂的建设者,除了苏联人,还有美国人和德国人,先后在这里工作的美国工程师就有730名。斯大林后来告诉美国总统罗斯福,在苏联约有三分之二的大型企业是利用美国的技术建成的。1932年时,在苏联重工业部门工作的各国专家约有6800人。

与欧美国家的整体低迷形成鲜明对比的,不仅是苏联的工业化成就,还有苏联人民建设国家的巨大热情。

材料三:罗斯福新政时期,1933年5月美国国会通过了《联邦紧急救济法》,并成立了以霍普金斯为首的“联邦紧急救济署”。到1934年底,有大约200万个家庭得到了救济。1935年紧急救济署结束时,共发放了30亿美元的救济金。在救济困难家庭的同时,还实行了“以工代赈”计划,成立了公共工程署(先后拨款40多亿美元)等机构,管理公共工程项目,以吸收更多的失业者参加劳动。

(1)老农所说的“问题”出现的原因是什么?列宁是如何解决这一问题的?(2分)

(2)根据材料二,分析苏联工业化取得巨大成就的原因。(4分)

(3)根据材料三,分析罗斯福新政的特点。(2分)

(4)根据材料一、二、三,分析苏联和美国在应对严峻局势时采取的措施对我国经济有哪些启示。(2分)

单项选择题