首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、-、*、/四种运算,例如:234—34+2* $。
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、-、*、/四种运算,例如:234—34+2* $。
admin
2016-03-29
77
问题
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、-、*、/四种运算,例如:234—34+2* $。
选项
答案
逆波兰表达式(即后缀表达式)求值规则如下:设立运算数栈OPND,对表达式从左到右扫描(读入),当表达式中扫描到数时,压入OPND栈。当扫描到运算符时,从OPND退出两个数,进行相应运算,结果再压入OPND栈。这个过程一直进行到读出表达式结束符$,这时OPND栈中只有一个数,就是结果。 float expr(){ //从键盘输入逆波兰表达式,以’$’表示输入结束,本算法求逆波兰表达式的值 float OPND[30]; //OPND是操作数栈 init(OPND); //两栈初始化 float num=0.0; //数字初始化 scanf(”%e”,&x); //x是字符型变量 while(X!=’$’){ switch(x){ case‘0’. case’1’: case’2’: case ’3’: case’4’: case’5’: ease ’6’: case’7’: case’8’: case’9’: while((x>=’0’&&x<=’9’)||x==’.’)//拼数 if(x!=’.’){num-num*10+(ord(x)一ord(’0’));scanf(”%c”,&x;}//处理整数 else{ //处理小数部分 scale=10.0:scanf(”%c”,&x); while(x>=’0’&&x<=’9’){ num=num+(ord(X)一ord(‘0’))/scale: scale=scale*10;scanf(”%C”,&x); } }//else push(OPND,num);num=0.0; //数压入栈,下个数初始化 case”:break; //遇空格,继续读下一个字符 case’+’:push(OPND,pop(OPND)+pop(OPND));break; case’一’:xl=pop(OPND);x2=pop(OPND);push(OPND,x2-x1);break; case’*’:push(OPND,pop(OPND)*pop(OPND));break; ease ’/’:xl=pop(OPND);x2=pop(OPND); push(OPND,x2/x1);break; default: //其他符号不作处理 }//结束switch seanf(”%c”,&x); //读入表达式中下一个字符 }//结束while(x!=’$’) pfintf(”后缀表达式的值为%f’’);pop(OPND); } 提示:假设输入的后缀表达式是正确的,未作错误检查。算法中拼数部分是核心。若遇到大于等于’0’且小于等于’9’的字符,认为是数。这种字符的序号减去字符’0’的序号得出数。对于整数,每读入一个数字字符,前面得到的部分数要乘上10再加新读入的数得到新的部分数。当读到小数点时,认为数的整数部分已完,要接着处理小数部分。小数部分的数要除以10(或10的幂数)变成十分位、百分位、千分位数等,与前面部分数相加。在拼数过程中,若遇非数字字符,表示数已拼完,将数压入栈中,并且将变量num恢复为0,准备下一个数。这时对新读入的字符进入’+’、’一、’*’、’/’及空格的判断,因此在结束处理数字字符的case后,不能加入:break语句。
解析
转载请注明原文地址:https://kaotiyun.com/show/jnRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
党锢事件发生后,清议的浪潮更为高涨,度辽将军()没有被当做名士列入党锢,甚至自陈与党人的关系,请求连坐。
抗日战争进入战略反攻阶段后,蒋介石集团却越来越暴露其日益腐朽的弊病,导致此种情况的根本原因在于()。
《和平大使》一书中评述说:“英国的根本利益在于防止德国的崩溃,只要德国是一个统一的整体,欧洲就能或多或少地保持均势。”英国在下列哪些事件中的态度体现了上述原则()。①巴黎和会②国联成立联成立③华盛顿会议
评述抗战的三个阶段。
永嘉之乱后,北方的政局是()。①西晋短暂统一的终结②北方长期处于多个政权分立的战乱状态③氐族人建立的前秦和鲜卑人建立的北魏曾统一过北方④民族交往和民族斗争交织在一起⑤民族大融合是历史发展的主流⑥民族大
在集中式总线仲裁中,()方式响应时间最快。
一棵:BS’r树共7个结点,值分别为1、2、3、4、5、6、7,形态为满二叉树,()不是插入序列。
假设某计算机的存储系统由Cache和主存组成j某程序执行过程中访存1000次,其中访问Cache缺失(未命中)50次,则Cache的命中率是()。
一个客户机利用FTP协议从服务器上下载文件,如下图所示为整个过程中协议交换的过程,请回答如下问题:(1)该协议层图中第四层协议是什么?(2)如果FTP客户端采用了LIST命令来获得FTP服务器上的文件列表,该列表采用什么端口传输?
某32位计算机系统采用段页式虚拟存储管理,现有一个进程被分成5段,其段号和段长见下表,段内分页,页表见下,存放在内存中,每页的长度为4096B。进程运行到某一个指令,其地址为(2,3,010),当前CPU的寄存器和地址加法器的状态如图所示,当上述指令执行时
随机试题
领导作风的本质,归根到底地讲,是领导者________、_________、________的体现。在社会主义条件下,领导作风的本质就是共产党的党性原则和立党宗旨的体现,是工人阶级和广大劳动者的世界观的重要体现。
关于尿路感染的叙述,正确的是
(2011年)在等精度测量条件下,对某管道压力进行了10次测量,获得如下数据(单位:kPa):475.3,475.7,475.2,475.1,474.8,475.2,475.0,474.9,475.1,475.1。则该测量列平均值的标准误差等于()
以下属于重大事故的有()
关于基层墙体与装饰层之间无空腔的建筑外墙外保温系统的做法中,不符合现行国家消防技术标准的是()。
依照税法规定应当扣缴的所得税,扣缴义务人未依法扣缴或者无法履行扣缴义务的,由纳税人所在的发生地缴纳,则这体现的是源泉扣缴的()。
根据个人所得税法律制度的规定,下列情形中,纳税人应当按照规定到主管税务机关办理自行纳税申报的有()。(2015年、2010年)
①任何的企业活动,都要接受伦理道德方面的约束和限制②企业同心合力地珍惜环境品质并不会花费企业太大的成本③但是,赢利不能是企业的唯一目的,不管它如何必要④而对环境的道德责任与义务则更为重要⑤企业活动是赢利性的
WhenLiamMcGeedepartedaspresidentofBankofAmericainAugust,hisexplanationwassurprisinglystraightup.Ratherthancl
Mostofthepeoplewhoappearmostoftenandmostgloriouslyinthehistorybooksaregreatconquerorsandgeneralsandsoldiers
最新回复
(
0
)