首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、一、*、/四种运算,例如:234—34+2* $。
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、一、*、/四种运算,例如:234—34+2* $。
admin
2019-08-01
61
问题
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、一、*、/四种运算,例如:234—34+2* $。
选项
答案
逆波兰表达式(即后缀表达式)求值规则如下:设立运算数栈OPND,对表达式从左到右扫描(读入),当表达式中扫描到数时,压入OPND栈。当扫描到运算符时,从OPND退出两个数,进行相应运算,结果再压入OPND栈。这个过程一直进行到读出表达式结束符$,这时OPND栈中只有一个数,就是结果。 float expr(){ //从键盘输入逆波兰表达式,以‘$’表示输入结束,本算法求逆波兰表达式的值 float OPND[30]; //OPND是操作数栈 init(OPND); //两栈初始化 float num=0.0; //数字初始化 scanf(”%c”,&x); //x是字符型变量 while(x!=‘$’){ switch(x){ case‘0’; caSe‘1’; case‘2’; case‘3’; case‘4’; case‘5’; case‘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=hum+(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‘一’:x1=pop(OPND);x2=pop(OPND);push(OPND,x2-x1):break; case‘*’:push(OPND,pop(OPND)*pop(OPND));break; case‘/’:x1=pop(OPND);x2=pop(OPND);push(OPND,x2/x1);break; default; //其他符号不作处理 }//结束switch scanf(“%c”,&x); //读入表达式中下一个字符 }//结束while(x!=‘$’) printf(“后缀表达式的值为%f”);pop(OPND); } 提示:假设输入的后缀表达式是正确的,未作错误检查。算法中拼数部分是核心。若遇到大于等于‘0’且小于等于‘9’的字符,认为是数。这种字符的序号减去字符‘0’的序号得出数。对于整数,每读入一个数字字符,前面得到的部分数要乘上10再加新读入的数得到新的部分数。当读到小数点时,认为数的整数部分已完,要接着处理小数部分。小数部分的数要除以10(或10的幂数)变成十分位、百分位、千分位数等,与前面部分数相加。在拼数过程中,若遇非数字字符,表示数已拼完,将数压入栈中,并且将变量num恢复为0,准备下一个数。这时对新读入的字符进入‘+’、‘一’‘*’、‘/’及空格的判断,因此在结束处理数字字符的case后,不能加入break语句。
解析
转载请注明原文地址:https://kaotiyun.com/show/FNCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
租庸调制对农业生产的最大作用是()。
二战后世界经济走向统一的过程中,仍然存在着多样性,出现了“两种体系、三种国家”,下列不属于社会主义国家经济类型的是()。
列宁称马克思、恩格斯是“19世纪人类三个最先进国家中三种主要思潮的继承人和天才的完成者”。这里“三个最先进国家”指的是()。
下列哪一项不是毛泽东在抗日战争期间的著作?()
北宋在统一南方割据势力的过程中特设(),把征南所得的财富统一存放,以作日后恢复幽燕之费。
从“鲁尔危机”的发生到《道威斯计划》的实施,西方国际关系变化对当时有关国家的影响是()。①美国势力进一步向欧洲渗透②英国达到了限制法国、保持均势的目的③德国获得重建经济的有利时机④法国扩充实力争霸欧洲的计划遭
在请求页式系统中,一程序的页面走向(访问串或引用串)为2,3,4,5,2,3,6,2,3,4,5,6,设分配给该程序的存储块数为m。试分别计算m=3和m=4时,FIFO和LRU两种替换算法的缺页(页故障)数,并给出:结果说明了什么?
设计一个算法,求无向图G(采用邻接表存储)的连通分量个数。
在某个操作系统中,通过大量的实验,人们观察到在两次缺页中断之间执行的指令数与分配给程序的页框数成正比,即可用内存加倍,缺页中断的平均间隔也加倍。整体缺页次数减少约一半。假设一条普通指令需要100ns,但若发生了缺页中断就需要1ms。一个程序运行了60s,期
某虚拟存储系统中有一个进程共有6页(0~5),其中代码占3页(0~2),数据占1页(3),数据堆占1页(4),用户栈占1页(5)。它们依次存放在外存的22,23,25,26存储块。当前,代码页已经分配在物理内存的66,67,87页,数据页为31,并已经进行
随机试题
通常所说的齿轮的压力角是指__________上的压力角。国家标准中规定其标准值为_________。
A.5分钟B.6小时内C.2~3周D.30分E.10~14日
房性心动过速根据发生机制与心电图的表现可分为
()发现已经投入使用的道路存在交通事故频发路段,或者停车场、道路配套设施存在交通安全严重隐患的,应当及时向当地人民政府报告,并提出防范交通事故、消除隐患的建议,当地人民政府应当及时作出处理决定。
FIDIC施工合同条件中,选择指定分包商的基本原则是( )。
乙公司以人民币为记账本位币,对外币交易采用交易发生日的即期汇率折算,按月计算汇兑差额。2016年6月1日,以人民币购入外汇100万美元,当日银行的买入价为1美元=6.15元人民币,中间价为1美元=6.16元人民币,卖出价为1美元=6.17元人民币。6月30
学习《苏州园林》时,教师设计了这样的教学目标:领略苏州园林的图画美;理解课文从几个方面说明事物的特点,总说和分说;体会语言的准确性;运用自主、合作、探究的方式,激发自主意识和探究精神。结合新课标要求,以下对该教师的教学预设评价不正确的是()。
简述教育政策和教育法律法规的关系。
除了I/O设备本身的性能之外,影响操作系统I/O数据传输速度的主要因素是(24)。
Theguestspeakerhighlightedsomeideasfor______introducingchangeintheworkplace.
最新回复
(
0
)