题目内容
(请给出正确答案)
[单选题]
对赋值语句int b[10]={1,2,3,4};的正确理解是
A.将5个初值依次赋给b[1]至b[5]
B.将5个初值依次赋给b[0]至b[4]
C.将5个初值依次赋给b[6]至b[10]
D.因为数组长度与初值的个数不相同,所以此语句不正确
答案
C 后缀式是把运算法写在运算对象后面的式子。这种表达式的优点是根据运算对象和算法的出现次序进行计算,不需要使用括号。 后缀式的计算方法是:自左至右扫描后缀式,遇到运算对象时就将其压入栈中,遇到k元运算符时就从栈中弹出k项进行运算,并将结果压入栈中,当表达式被扫描完时,栈顶元素就是表达式的运算结果。 本题后缀式xab + cde -*f/=可通过上述的计算方法推出其中缀表达式。 假设自左至右扫描xab + cde -*f/=,第一个扫描x,是运算对象,压入栈,接着ab都是运算对象,入栈,此时栈中为xab。扫描到+,它是二元运算符,则从栈顶弹出2个运算对象分别是a和b进行+运算,结果入栈,此时栈中为x及a+b的和,我们用(a+b)来表示。继续扫描,c、d、e入栈,扫描到-,它是二元运算符,从栈顶分别弹出d和e进行减法运算,并将结果d-e入栈,我们用(d-e)表示。那么,此时栈中元素为x、(a+b)、c、(d-e)。接着扫描*,它也是二元运算符,则从栈顶连续弹出连个运算对象(d-e)和c,结果c*(d-e)入栈,此时栈中元素为x、(a+b)、c*(d-e)。再扫描到f,运算对象入栈,扫描/,二元运算符,从栈中弹出两个运算对象分别是c*(d-e)和f,进行除法运算,得到c*(d-e)/f后入栈,此时栈中元素为x、(a+b)、c*(d-e)/f。扫描+,二元运算符,依次弹出(a+b)和c*(d-e)/f进行加法运算,得到(a+b)+c*(d-e)/f入栈,扫描=,二元运算符,弹出x和(a+b)+c*(d-e)/f,最后得到x=a+b+c*(d-e)/f。
如搜索结果不匹配,请 联系老师 获取答案