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

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

为帮助广大软考中级软件设计师考生更好备考,信管网特整理汇总了软件设计师部分下午真题、答案及解析供考生查阅,并提供免费在线模拟答题、历年真题免费下载等服务,了解软件设计师更多备考信息请关注信管网。

相关推荐:

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

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

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

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

【说明】

栈(stack)结构是计算机语言实现中的一种重要数据结构。对于任意栈,进行插入和删除操作的一端称为栈顶(stock top),而另一端称为栈底(stock bottom)。栈的基本操作包括:创建栈(newstack)、判断栈是否为空(isempty)、判断栈是否已满(isfull)、获取栈顶数据(top)、压栈/入栈(push)、弹栈/出栈(pop)。

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

以下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)

信管网参考答案:

(1)S == NULL 丨丨 S->PTOP == NULL

(2)S->PTOP == data

(3)newnode

(4)S->PTOP->next

(5)24 4

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

扫码关注公众号

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

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

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

相关内容

发表评论  查看完整评论  

推荐文章