首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和c语言函数。 [说明] 函数bool Del_elem(STACK*s,char para_ch)的功能是:删除栈*s中与para ch之值相等且最接近栈顶的元素(字符),若栈中不存在该元素,则函数返回 FALSE,否则返回 TR
阅读以下说明和c语言函数。 [说明] 函数bool Del_elem(STACK*s,char para_ch)的功能是:删除栈*s中与para ch之值相等且最接近栈顶的元素(字符),若栈中不存在该元素,则函数返回 FALSE,否则返回 TR
admin
2008-05-10
67
问题
阅读以下说明和c语言函数。
[说明]
函数bool Del_elem(STACK*s,char para_ch)的功能是:删除栈*s中与para ch之值相等且最接近栈顶的元素(字符),若栈中不存在该元素,则函数返回 FALSE,否则返回 TRUE。其中,STACK是栈的类型名。
函数Del_elem实现上述功能的方法是:利用栈的基本操作,先将栈*s中所有比 para_ch之值更接近栈顶的元素暂时存放在临时工作栈s_bak中,使得与para_ch之值相等的元素成为栈顶元素,此时执行出栈操作,即从栈中删除与Para ch之值相等的元素,最后再将s bak中的元素依次存回栈*s。
在函数Del_elem中必须使用栈的基本操作进行栈上的运算,实现栈的基本操作的函数原型说明如下:
void InkStack(STACK*S):初始化栈。
void Push(STACK*S,char e):将一个字符压栈,栈中元素数目增1。
void Pop(STACK*S):栈顶元素出栈,栈中元素数目减1。
char Top(STACKS):返回非空栈的栈顶元素值,栈中元素数目不变。
bool IsEmpty(STACK S):若S是空栈,则返回TRUE;否则返回FALSE。
bool类型定义如下:
typedef enum{FALSE=0,TRUE=1)bool;
[C语言函数]
bool Del_elem(STACK*s,char para_ch)
{
STACK s_bgk; /*定义临时工作栈s_bak,*/
char ch;
bool tag=FALSE;
(1) /*初始化临时工作栈s_bak*/
/*,将栈*s中所有比para_ch更接近栈顶的元素暂时存放在临时工作栈s bak中*/
while(!IsEmpty(*s)){
ch=(2); /*取栈顶元素*/
Pop(s);
if(ch=para_ch){
tag=TRUE;
break;
}
(3);
}
/*将暂存于临时工作栈s_bak中的元素存回栈*s*/
while((4))
ch=Top(s_bak);
(5)
Push(s,ch)
}
return tag;
}
选项
答案
(1)InitStack(&s_bak) (2)Top(*s) (3)Push(&s_bak,ch) (4)!IsEmpty(s_bak),或IsEmpty(s_ak)==FALSE (5)Pop(&s_bak)
解析
本题考查的是C语言的函数调用和参数传递问题。
C语言采用传值调用方式,即将实际参数的值传递给形式参数,因此,实际参数一般是与形式参数类型相同的变量或表达式。但是,若形式参数为指针,则调用语句中的实参应将一个变量的地址传递给形参。
函数bool Del_elem(STACK*s,char para_ch)的功能是删除栈*s中与para_ch之值相等且最接近栈顶的元素(字符)。因此,利用栈的基本操作,先将栈*s中所有比para ch之值更接近栈顶的元素暂时存放在临时工作栈s_bak中,使得与para_ch之值相等的元素成为栈顶元素,此时执行出栈操作,即从栈中删除与para_ch之值相等的元素,最后再将s bak中的元素依次存回栈*s。
从初始化栈的函数原型“void lnitStack(STACK*S)”可知,形参是一个指针变量,那么实参应该是对STACK类型的变量取地址,因此空(1)处应填入“initStack(&s bak)”。
根据出栈操作的函数原型“void Pop(STACK*S)”,出栈时栈中元素数目减1但调用环境不能获得栈顶元素,因此需要首先调用函数Top()获取栈顶元素的值,然后调用Pop()从栈中删除栈顶元素。因此空(2)应填入“Top(*s)”。临时工作栈需要保存从栈*s弹出的元素,因此,参考压栈操作的函数原型“void Push(STACK*S,chare)”,空(3)应填入“Push(&s bak,ch)”。
从栈中取元素时,应首先判断是否为空栈,这是使用栈结构的一项基本常识。参考函数原型“bool IsEmpty(STACK S)”和bool类型的定义,空(4)应填入“!IsEmpty(s_bak)”。同时,通过Top和Pop操作从临时工作栈s bak中取出元素,再用Push操作将该元素压入栈*s中,来实现将暂存于临时工作栈s bak中的元素存回栈*s,因此,空(5)填入“Pop(&s_bak)”。
转载请注明原文地址:https://kaotiyun.com/show/hsjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel中,C3:C7单元格中的值分别为10、OK、20、YES和48,在D7单元格中输入函数“=COUNT(C3:C7)”,按回车键后,D7单元格中显示的值为______。
“Windows是一个多任务操作系统”指的是_______。
人机交互界面有多种方式,不包括______。
一般来说,收集到的数据经过清洗后,还需要进行分类、排序等工作。这样做的好处主要是(65)________________。
根据某机构的统计与推测,我国人口中男性和女性各个年龄段的百分比如下图。根据该图,以下叙述中正确的是________________。
数据________________是将数据以图形图像形式表示,并利用数据分析工具发现其中未知信息的处理过程。
为向相关人员以可视化方式展示数据分析结果,首先需要明确目标受众(即需要给哪些人看),并了解他们考虑的一些问题。这些问题一般不包括(69)________________。
下列关于Windows7屏幕保护程序的叙述中,不正确的是__________。
在Word中采用(47)可实现下图显示的排版格式。
综合布线系统由6个子系统组成,将图1-1中(1)~(6)处空缺子系统的名称填写在答题纸对应的解答栏内。考虑性能与价格因素,图1-1中(1)、(2)和(4)中各应采用什么传输介质?
随机试题
分离培养副流感病毒最敏感的细胞是
患者,男,40岁,烈日炎炎下进行高温作业,突发头晕、头痛,口渴,出汗,继而体温升高达40℃以上,出现皮肤无汗,干热,昏迷情况。下列措施不正确的是
小儿厌食脾运失健证的治则是小儿厌食脾胃气虚证的治则是
吐温类表面活性剂具有
按()分类,可以将商标分为商品商标、服务商标、集体商标和证明商标。
个人住房贷款中银行的合作机构包括()。
下列词语中,感情色彩相同的一项是()。
下列诗句按其所描写的节气的先后顺序,排列正确的是()。①春分雨脚落声微,柳岸斜风带客归②新春一声雷未闻,何得龙蛇已惊蛰③今朝立春好天气,况是太平朝野时④白云峰下两枪新,腻绿长鲜谷雨春
A、It’seasytolocate.B、It’sinaverywindyarea.C、It’sexceptionallybeautiful.D、It’spartiallycoveredbywater.BWhat?did
AsvideogamegiantslikeSonyandMicrosofttoutedtheirnewgizmosattheTokyoGameShowthisweek,industryexecutiveshadm
最新回复
(
0
)