首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、-、*、/四种运算,例如:234—34+2* $。
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、-、*、/四种运算,例如:234—34+2* $。
admin
2016-03-29
78
问题
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、-、*、/四种运算,例如: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
学硕统考专业
相关试题推荐
中国古代的移民主要有两个大的流向:或者由北方草原内迁人中原,或者由中原迁入江南,这两大迁移最主要的影响是()。
印度孔雀帝国时代,就土地占有情况而言,占全国土地的绝大部分的是()。
基督教产生的时间是()。
利玛窦与徐光启合作翻译的(),介绍了曾经流行于欧洲的欧几里得平面几何的系统理论,大大地丰富了中国古代几何学的内容。
《马可波罗行纪》中载:“此汗八里大城之周围,约有城市二百,位置远近不等,每城皆有商人来此买卖货物,盖此城为商业繁荣之城也。”“此城”指的是()。
阅读材料回答以下问题:天既哀大地生人之多艰,黑帝乃降精而救民患,为神明,为圣王,为万世作师,为万民作保,为大地教主。生于乱世,乃据乱世而立三世之法,而垂精太平。乃因其所生之国,而立三世之义,而注意于大地远近、大小若一之大一统。乃立元以统天,以天为仁,以神
假设系统的所有资源是同类型的,系统中的进程每次申请资源数最多1个,那么,下面列出的4种情况中,()可能发生死锁。情况序号系统中进程数资源总量
某计算机采用页式存储管理,内存中现有1000个页表项,CPU的cache中可以存放N个页表项,该系统中,CPU内存访问的时间为lOOns,对cache访问的时间是5ns,如果希望页表映射的平均时间降到20ns以下,那么cache中的N必须高于(
下面包含在TCP头中而不包含在UDP头中的信息是()。
某字长为8位的计算机中,已知整型变量x、y的机器数分别为[x]补=10000100,[y]补=10110000。若整型变量z=2×x+y/2,则z的机器数为
随机试题
钢、铸铁、纯铁有什么不同?
下列关于软膏基质对药物透皮吸收的影响的叙述中正确的是()
企业用当年实现的利润弥补亏损时,应单独作出相应的会计处理。()
法人的民事行为能力是通过其法定代表人或者工作人员来实现的。()
已知圆锥的母线长为30cm,侧面展开后所得扇形的圆心角为120°,则该圆锥的底面半径等于________cm.
报刊对国家机关违法行为的曝光是一种偿律监督。()
一时期的风气经过长时期而能保持,没有根本的变动,那就是传统。传统有惰性,不肯变,而事物的演化又使它不得不以变应变。于是产生了一个相反相成的现象。传统不肯变,因此惰性形成习惯,习惯升为规律,把常然作为当然和必然。传统不得不变,因此规律、习惯不断地相机破例,实
阅读下表回答以下问题:2004年上半年,上海市城乡居民生活用电比重为()。
心理测量误差的类型与来源各有哪些?
阅读下面短文,回答下列五道题。雾遮没了正对着后窗的一带山峰。我还不知道这些山峰叫什么名儿。我来此的第一夜就看见那最高的一座山的顶点像钻石装成的宝冕似的灯火。那时我的房里还没有电灯,每晚上在暗中默坐,凝望这半空的一片光明,使我记起了儿时所读的
最新回复
(
0
)