首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和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
95
问题
阅读以下说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
计算机内所有的信息都是以()为基础进行加工、处理的。
在重要的数据处理过程中,领导常会来询问工作进展状况。数据处理技术员在描述进展状况时,以下叙述中,最适宜的是______。
下列选项中,不属于计算机外部设备的是_______。
在Word2007中,汉字字号从小到大分为16级,最大的字号为______。
Word2007默认的文件扩展名是(37)。
在Excel中,根据数据表制作统计图表后,如果将其对应数据表中的数据进行修改,则图表______。
某年级有甲乙两班,在最近举行的全年级数学考试中,甲班平均成绩为P,乙班平均成绩为Q,甲班人数占全年级的比例为α,则全年级的平均成绩为()。
Internet创建的最初目的是用于______。
信息系统中,防止非法使用者盗取、破坏信息的安全措施要求:进不来、拿不走、改不了、看不懂。以下(62)技术不属于安全措施。
以下(1)属于ASP.NET创建的网页程序文件。(1)A.index.aspB.index.htmC.index.aspx从以下备选答案内为程序中(3)~(7)处空缺选择正确答案。(3)A.requestB.res
随机试题
专项业务服务公司
Mostofthesatellitesdonotchange______positions.
A.呋塞米B.氢化可的松C.氟氢可的松D.地塞米松E.卡莫氟抗炎作用强,几乎无水钠潴留作用
住宅日照标准中,旧区改造时,大寒日日照时间以()为标准。
南方公司现拥有资产总额1000万元,其中股本200万元(每股面值1元、发行价格3.5元)、长期债券300万元(票面年利率为8%)。南方公司为生产甲产品而进行一项固定资产投资,该固定资产投资总额为350万元,于项目开始时一次投入,另需在经营期开始时一次性投入
一国对外贸易的发展水平主要取决于( )。
户籍管理工作主要包括()。
篮子里装有不多于500个苹果,如果每次二个、每次三个、每次四个、每次五个、每次六个地取出,篮子中都剩下一个苹果,而如果每次七个地取出,那么没有苹果剩下,篮子中共有多少个苹果?()
各大媒体关于“鄱阳湖变草原”“第一大湖遭遇水危机”的报道非常吸引眼球,但应在这句话前面加个时间定语,这其实是种稀松平常的现象——就像月有阴晴圆缺,时而像草原时而像大海,原本就是鄱阳湖所拥有的独特景观。这段文字意在说明:
被称为教育学上的三个里程碑是指柏拉图的《理想国》、()的《爱弥儿》、杜威的《民主主义与教育》。
最新回复
(
0
)