2026安徽农商行校园招聘计算机练习题(12)
下列关于栈的叙述中,错误的是()。
I.采用非递归方式重写递归程序时必须使用栈
Ⅱ.函数调用时,系统要用栈保存必要的信息
Ⅲ.只要确定了入栈次序,就可确定出栈次序
IV.栈是一种受限的线性表,允许在其两端进行操作
A.仅I
B.仅I、Ⅱ、Ⅲ
C.仅I、Ⅲ、IV
D.仅Ⅱ、Ⅲ、IV
【解析】C
I错误:用非递归方式重写递归程序时不一定需要使用栈,例如,计算n!,非递归程序只需用一个简单的循环即可计算,无需使用栈。
II正确:当一个函数被调用时,系统需要保存当前函数的执行状态(也称为上下文),以便在函数调用结束后能够恢复并继续执行。这些信息通常包括:返回地址,函数的局部变量,传递给函数的参数,寄存器的状态。
III错误:元素的出栈顺序不仅取决于入栈顺序,还取决于具体的出栈操作。如果所有元素都按顺序入栈后再出栈,那么出栈顺序就是入栈顺序的逆序;但是,如果在入栈过程中有元素出栈,那么出栈顺序就不再是简单的逆序。例如,对入栈序列a、b、c,如果所有元素都入栈后再出栈,那么出栈顺序是c、b、a;如果a入栈后立即出栈,然后b和c入栈后再出栈,那么出栈顺序是a、c、b;如果A和B入栈后,B出栈,然后C入栈后再出栈,那么出栈顺序是b、c、a。
IV错误:栈是一种受限的线性表,只允许在一端进行操作。
来源:网络整理
(责任编辑:liutingting)