首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和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
92
问题
阅读以下说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
CMM模型将软件过程的成熟度分为5个等级。在(21)使用定量分析来不断地改进和管理软件过程。
GB/T18905-2002《软件工程产品评价》提供了软件产品评价的过程,其中GB/T18905-2002《软件工程产品评价》第五部分评价者用的过程供(53)。
测试用例的三要素不包括________。
当用户需求不清晰、需求经常发生变化、系统规模不太大时,最适宜采用的软件开发方法是__________。
修改现有软件系统的设计文档和代码以增强可读性,这种行为属于________维护。
给定包含n个正整数的数组A和正整数x,要判断数组A中是否存在两个元素之和等于x。先用插入排序算法对数组A进行排序,再用以下过程P来判断是否存在两个元素之和等于x。low=l;high=n;while(high>low)ifA[low]+A[hig
某软件公司项目组的程序员在程序编写完成后均按公司规定撰写文档,并上交公司存档。此情形下,该软件文档著作权应由______享有。
假设某计算机系统中进程的三态模型如下图所示,那么图中的a、b、c、d处应分别填写(13)________________。
假设关系R1和R2如下图所示:若进行R1R2运算,则结果集分别为(1)元关系,共有(2)个元组。(2)
根据输出对输入的依赖关系设计测试用例的黑盒测试方法是________。
随机试题
在肉中添加亚硝酸盐或硝酸盐的作用是
产后子宫完全复旧时间不哺乳产妇平均恢复排卵时间
甲企业、乙企业和朱某作为发起人募集设立了丙股份有限公司,丙公司共有200万股股份,甲企业持有丙公司40万股股份.乙企业持有丙公司20万股股份,朱某持有丙公司10万股股份,其余股份以无记名股票的形式发放募集。丙公司章程中规定实行累积投票制。丙公司为奖励公司杰
计算索赔费用时,修正的总费用法中,修正的内容包括()。
债务人或者第三人有权处分的财产可以抵押的有()。
在标准成本差异分析中,材料价格差异是根据实际数量与价格脱离标准的差额计算的,其中实际数量是指材料的( )。
下列给互联网上传内容的网民人数的排列顺序正确的是()。
“四个全面”是相辅相成、相得益彰的。全面建成小康社会的动力源泉是()
在过程定义中有语句:PrivateSubGetData(ByValdataAsInteger)其中ByVal的含义是()。
昨天晚上王强来上课,又是“空手到”,连半张作业也交不出来,而且在我为别的学生改作业时,他还不断打呵欠,真是失礼极了!但是下课时,他对我说的话,把我一肚子的不高兴全扫光了。他说:“自从到房地产公司工作,每天一大早就开车带客户看房子,忙到天黑,实在精疲力尽,没
最新回复
(
0
)