首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和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
68
问题
阅读以下说明和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://www.kaotiyun.com/show/hsjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Windows XP资源管理器中的文件夹区域中,文件夹图标前标有“+”的、表示该文件夹中(38)。
下列关于Word页眉、页脚的叙述不正确的是______。
信息处理技术员除了应熟练使用计算机进行信息处理操作外,还应熟悉本岗位相关的业务知识,其理由比较多,但不包括(67)。
四个铜厂前年的产值、去年的产值如下表:根据上表,在这几个厂中,(29)发展最快。
Word定时自动保存功能可以()。
________________不会是信息系统的功能。
在Excel2010中,设A1单元格中的值为20,A2单元格中的值为60,若在C1单元格中输入函数“=AVERAGE(A1,A2)”,按回车键后,,则C1单元格中的值为(
某企业甲乙两个部门招聘职工中,男女应聘人数和录用人数情况如下表:从上表看出,各部门女性录用率都大于男性录用率。从该企业合计来看,()。
与外存相比,内存的特点是(3)。
从以下备选答案中为程序中(1)~(5)处空缺内容选择正确答案,填入答题纸对应的解答栏内。(1)A.CreatObject()B.connect0C.go()D.open()(2)A."select*fromdata"B."select
随机试题
低渗性脱水重度缺钠出现周围循环衰竭,应立即
患者男,车祸中多根肋骨骨折,出现连枷胸,此病典型的临床表现是
粪标本采集,不正确的方法是
安徽省黄山市一所寄宿制民办学校的高一学生小雷(16岁),某日凌晨从三楼宿舍区攀爬教室窗户时,不幸坠楼身亡。日前,家长起诉到人民法院,要求学校在这起事故中承担赔偿责任,赔偿小雷亲属损失及抚慰金共10万元。以下哪一种观点不妥?
按规定,纳税人应当自纳税义务发生之日起()日内,向土地、房屋所在地的契税征收机关办理纳税申报。
在订立时,当事人的意思表示不真实,或一方当事人使对方在违背真实意思的情况下签订的合同是( )合同。
在篮球运动中,防守无球队员时,防守人员必须随时占据“人球兼顾”的位置。()
德育过程要“反复抓,抓反复”所依据的德育规律是()。
不管多么起劲地去教育和引导孩子,真正让孩子能够得到幸福保证的是社会。家庭的文化、习惯、情感的传承可以部分决定孩子对生活的感受,但不能替代社会对孩子生活、行为、人际关系的决定。为了孩子我们今天要开始承担社会的责任,让孩子在一种对人的关怀、尊重与感激的人文环境
SchoolLunchResearchhasshownthatoverhalfthechildreninBritainwhotaketheirownlunchestoschooldonoteat【C1】__
最新回复
(
0
)