首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,将(1)~(5)空缺处的字句填写完整。 [说明] 计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*120-37)”的后缀表达式形式为“46 5 120 37-*+”。 计算后缀表达式时,
阅读以下说明和C函数,将(1)~(5)空缺处的字句填写完整。 [说明] 计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*120-37)”的后缀表达式形式为“46 5 120 37-*+”。 计算后缀表达式时,
admin
2010-01-15
86
问题
阅读以下说明和C函数,将(1)~(5)空缺处的字句填写完整。
[说明]
计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*120-37)”的后缀表达式形式为“46 5 120 37-*+”。
计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中。重复以上过程,直到后缀表达式扫描结束。例如,后缀表达式“46 5 120 37-*+”的计算过程如下:
a.依次将46、5、120、37压入栈中;
b.遇到“-”,取出37、120,计算120-37=83,将其压入栈中;
c.遇到“*”,取出83、5,计算5×83=415,将其压入栈中;
d.遇到“+”,取出415、46,计算46+415=461,将其压入栈中;
e.表达式结束,则计算过程完成。
函数computing(char expr[],int*result)的功能是基于栈计算后缀形式的表达式(以串形式存入字符数组 expr)的值,并通过参数result返回该值。函数的返回值为-1/0,分别表示表达式有/无错误。假设表达式中仅包含数字、空格和算术运算符号,其中所有项均以空格分隔,且运算符仅包含加(“+”)、减(“-”)、乘(“*”)、除(“\”)。
函数computing中所用栈的基本操作的函数原型说明如下。
● void InitStack(STACK*s):初始化栈。
● void Push(STACK*s,int e):将一个整数压栈,栈中元素数目增1。
● void Pop(STACK*s):栈顶元素出栈,栈中元素数目减1。
● int Top(STACK s):返回非空栈的栈顶元素值,栈中元素数目不变。
● int IsEmpty(STACKs):若s是空栈,则返回1;否则返回0。
[C函数]
选项
答案
是一道考查栈结构在后缀表达式求值过程中应用的分析题。利用栈计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇到运算符,则从栈中弹出对应数目的运算对象进行计算,并将运算结果压入栈中。重复以上过程,直到后缀表达式扫描结束,最后栈顶就是表达式的计算结果。 根据题干中的说明,由于后缀表达式以字符串方式存储且以空格分隔符号(数值、算符),因此遇到空格字符时,指向表达式中字符的指针ptr应增加1指向后续字符,因此,(1)空缺处应填入“ptr++”或其等价形式。下面以字符串“375”为例说明将一个数字串转换为数值的过程。 数值375=((0×10+3)×10+7)×10+5 (1)取得数字字符“3”(ASCII码值为51,字符0的ASCII码值为48)。 [*] (2)取得数字字符“7” (ASCII码值为55)。 [*] (3)取得数字字符“5” (ASCII码值为53)。 [*] 以下程序代码用于将一个数字字符串转换为对应的整数存入tnum,显然,tnum的初始值应为0。 [*] 因此,(2)空缺处应填入“0”。对于(3)空缺所在表达式的功能是:将数字字符转换为数值,因此 (3)空缺处填入“*ptr-48”。 (4)空缺处用于将转换所得的数值tnum压入栈顶,根据题目中Push的原型“void Push(STACK*s,int e)”,调用时第一个实际参数是STACK类型变量的地址,第二个实际参数是一个整数,因此,(4)空缺处填入“&s,tnum”。 由于函数computing(char expr[],int*result)通过参数result返回该表达式的值,因此需要将存在栈顶的运算结果赋值给result指向的整型变量,即(5)空缺处填入“*result”。 本试题目还考查了参数传递知识,读者可通过上机实践加强基本概念的理解,以及C程序设计能力的培养。
解析
转载请注明原文地址:https://kaotiyun.com/show/nSDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
在IPv4向IPv6的过渡期间,如果要使得两个IPv6结点可以通过现有的IPv4网络进行通信,则应该使用(27);如果要使得纯IPv6结点可以与纯IPv4结点进行通信,则需要使用(28)。(27)
假设某公司营销系统有营销点关系S(营销点,负责人姓名,联系方式)、商品关系P(商品名,条形码,型号,产地,数量,价格),其中,营销点唯一标识S中的每一个元组。每个营销点可以销售多种商品,每一种商品可以由不同的营销点销售。关系S和P的主键分别为(15),S
将高级语言程序翻译为机器语言程序的过程中,常引入中间代码,其好处是()。
为检验某Web系统并发用户数是否满足性能要求,应进行()。
在以阶段划分的编译器中,符号表管理和()贯穿于编译器工作始终。
在结构化分析方法中,用于行为建模的模型是①,其要素包括②。①处应填入?
对于逻辑表达式(((a>0)&&(b>0))‖c<5),需要______个测试用例才能完成条件组合覆盖。
编译和解释是实现高级程序设计语言的两种方式,其区别主要在于______。
若一个单处理器的计算机系统中同时存在3个并发进程,则同一时刻允许占用处理器的进程数________________。
为检测系统所能承受的数据容量,应进行()。
随机试题
Theconference______afullweekbythetimeitends.
产力的主要力量是
30岁男性,3日前因着凉,突然寒战高热,右胸刺痛,咳嗽,伴少许黄痰。体检:气管居中,右上肺实变体征该患病程中出现呼吸困难、发绀等缺氧表现,其发生机制主要为
某女,53岁,2小时前突然发现右半身麻木,口角歪斜,言语不利。现神志清,头晕目眩,苔白腻,脉弦滑。其诊断是()
番泻叶基部的特点是
A.香树脂B.油树脂C.胶树脂D.油胶树脂E.混合树脂按照上述所含主要化学成分,下列中药属于乳香
依据中国银监会颁布的《商业银行风险监管核心指标》(试行),风险监管核心指标主要类别包括( )。
在供应链管理方法中,()是供应链上的生产商、批发商和零售商等通过合作和协调,以更好的质量、更快的速度和更低的成本满足消费者需求的一种管理方法。
《旅游法》共()。
A、交通B、环境C、价格D、大小C根据男的说的“就是有点儿贵”,可知男的对房子的价格不满意,所以选C。
最新回复
(
0
)