问题 填空题

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

[说明]

栈(Stack)结构是计算机语言实现中的一种重要数据结构。对于任意栈,进行插入和删除操作的一端称为栈顶(Stack Top),而另一端称为栈底(Stack Bottom)。栈的基本操作包括:创建栈(NewStack)、判断栈是否为空(IsEmpty)、判断栈是否已满(IsFull)、获取栈顶数据(Top)、压栈/入栈(Push)、弹栈/出栈(Pop)。

当设计栈的存储结构时,可以采取多种方式。其中,采用链式存储结构实现的栈中各数据项不必连续存储(如图21-9所示)。

以下C代码采用链式存储结构实现一个整数栈操作。

[C代码]

typedef struct List

int data; //栈数据

struct List* next; //上次入栈的数据地址

List;

typedef struct Stack

List* pTop; //当前栈顶指针

Stack;

Stack* NewStack()return(Stack*)calloc(1,sizeof(Stack));

int IsEmpty(Stack* S)//判断栈S是否为空栈

if( (1) )return 1;

return 0;

int Top(Stack* S)//获取栈顶数据。若栈为空,则返回机器可表示的最小整数

if(IsEmpty(S))return INT_MIN;

return (2)

void Push(Stack* S,int theData)//将数据theData压栈

List* newNode;

newNode=(List*)calloc(1,sizeof(List));

newNode->data=theData;

newNode->next=S->pTop;

S->pTop= (3)

void Pop(Stack* S) (//弹栈

List* lastTop;

if(IsEmpty(S))return;

lastTop=S->pTop;

S->pTop= (4)

free(lastTop);

#define MD(a)a<<2

int main()

int i;

Stack* myStack;

myStack=NewStack();

Push(myStack,MD(1));

Push(myStack,MD(2));

Pop(myStack);

Push(myStack,MD(3)+1);

while(!IsEmpty(myStack))

printf("%d",Top(myStack));

Pop(myStack);

return 0;

以上程序运行时的输出结果为: (5)

(5)处填()。

答案

参考答案:24 4

单项选择题
问答题

本题仅限报考省级(含副省级)综合管理类职位的考生作答。 (1)假设你是某省政府负责农民工就业问题的负责人,请针对目前农民工外出务工比较盲目的现状,提出自己的建议。 [要求] 简明扼要,建议恰当,可以不必拘泥于正式公文的格式,不超过400字。 (2)针对我国目前普遍存在的就业难问题,某机关召开了一次研讨会,并最终达成了一些共识。具体如下: 第一,高等院校的大量扩招,是造成大学生就业难最主要的原因。因此,要解决大学生就业难问题,就要严格控制大学招生规模,减少大学生数量。 第二,目前我国存在着大量的劳动密集型企业,这些企业虽然存在着技术含量低、资源浪费严重等问题,但是在我国目前就业难的形势下,应当适当放宽政策,大力发展这些企业,以缓解就业压力。 第三,2008年下半年,我国经济发展速度减缓,沿海地区的大批农民工提前返乡,这与1997年亚洲金融危机后中国大规模的国企工人下岗的原因基本相同。 第四,人口过多是我国就业难的根本原因。举例来说,如果我国人口只有目前的三分之一,那么空余的劳动岗位将会大量增加。因此,解决就业难的问题,就需要控制人口数量,实行严格的计划生育政策。 以上四点共识中,均存在一些问题。请就以上共识中不恰当的部分进行辨析。 [要求] 对四点共识分别进行辨析。简明扼要,有条理,不超过400字。