首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和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
69
问题
阅读以下说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
IS09001:2015质量管理体系标准属于()。
信息处理技术员考生信息库中,具有“准考证号”、“姓名”、“笔试成绩”与“机考成绩”等字段。按“笔试成绩>0 and机考成绩>0”查询,有r1人;按“笔试成绩>0 or机考成绩>0”查询,有r2人,则必然有关系(69)。
以下叙述中,针对应用需求,(68)选用了不适当的信息处理方法。
在Word中,若选择的打印页码是4-10,16,20,则表示打印的是______。
在Excel2007中,设单元格A1中的值为-1,B1中的值为1,A2中的值为0,B2中的值为1,若在C1单元格中输入函数“=IF(AND(A1>0,B1>0),A2,B2)”,按回车键后,C1单元格中的值为______。
假设“EXAM.DOC”文件夹存储在“EXAM1”文件夹中,“EXAM1”文件夹存储在“EXAM2”文件夹中,“EXAM2”文件夹存储在F盘的根文件夹中,当前文件夹为“EXAM1”。那么,正确描述“EXAM.DOC”文件的绝对路径表示为(37)。
在Excel2007中,在单元格A1中输入函数“=LEN(”信息处理技术员”)”,按回车键后,则A1单元格中的值为__________。
在Excel中,若A1单元格中的内容为“全国计算机技术与软件专业技术资格(水平)考试”,在A2单元格中输入函数=LEFT(A1,2),则A2单元格显示的内容是______。
甲和乙用如下图的两个转盘做游戏,游戏规则如下:分别旋转两个转盘,当两个转盘所转到的数字之积为奇数时,甲得2分;当所转到的数字之积为偶数时,乙得1分,则这游戏规则______。
以下(1)属于ASP.NET创建的网页程序文件。(1)A.index.aspB.index.htmC.index.aspx从以下备选答案内为程序中(3)~(7)处空缺选择正确答案。(3)A.requestB.res
随机试题
A.列缺 尺泽 肺俞 外关B.列缺 肺俞 尺泽 少商C.尺泽 肺俞 曲池 大椎D.肺俞 太冲 肝俞 经渠E.肺俞 合谷 丰隆 脾俞 太渊
A.率B.构成比C.相对比D.标准化率E.绝对数甲医院以内科和小儿科为主,乙医院以外科和妇产科为主,比较两医院的医疗质量,若以病死情况为评价指标,应用何种指标较合理
内伤头痛的主要病位在()
乙醇擦浴温度不得高于
世界上最主要的畜产品期货交易中心是()。
设总体X,Y相互独立且服从N(0,9)分布,(X1,…,X9)与(Y1,…,Y9)分别为来自总体X,Y的简单随机样本,则U=~_______。
电子商务交易的安全性不包括()。
把内存中的数据保存到硬盘上的操作称为______。
Mostof______isonAmericantelevisionareprogramsdesignedtoappealtopeoplewhogointothesupermarketsandbuytheprodu
Tomputsuphishand______theteacherasksaquestion.
最新回复
(
0
)