1、计算机专业基础综合数据结构(栈和队列)历年真题试卷汇编 4 及答案与解析一、单项选择题1 当字符序列工作为下图输入时,输出长度为 3 的,且可用作 C 语言标识符的序列的有( )。【浙江大学 2004 二(5 分) 】(A)4 个(B) 5 个(C) 3 个(D)6 个2 和顺序栈相比,链栈有一个比较明显的优势是( )。【北京理工大学 2006 五、6(1 分)(A)通常不会出现栈满的情况(B)通常不会出现栈空的情况(C)插入操作更容易实现(D)删除操作更容易实现3 若一个栈以向量 V1,n存储,初始栈顶指针 top 为 n+1,则下面 x 进栈的正确操作是( )【南京理工大学 1998 一、
2、13(2 分) 】(A)top=top+1; Vtop=x(B) Vtop=x;top=top+1(C) top=top1; Vtop=x (D)Vtop=x ;top=top 一 14 若栈采用顺序存储方式存储,现两栈共享空间 V1,m ,topi代表第 i 个栈(i=1,2)栈顶栈 1 的底在 V1,栈 2 的底在 Vm,则栈满的条件是 ( )。【南京理工大学 1999 一、14(1 分)】【江苏大学 2005 一、2(2 分)】(A)1top2 一 top11=0(B) top1+1=top2(C) top1+top2=m (D)top1=top25 栈在( ) 中应用。 【中山大学 1
3、998 二、3(2 分) 】(A)递归调用(B)子程序调用(C)表达式求值(D)A,B,C6 向一个栈顶指针为 h 的带头结点的链栈中插入指针 S 所指的结点时,应执行( ) 。【北京理工大学 2005 十一、6(1 分)】(A)h-next=s;(B) s 一next=h;(C) s 一next=h;h 一next=s ;(D)s 一next=-h 一next;h 一next=s;7 一个递归算法必须包括( )。【武汉大学 2000 二、21(A)递归部分(B)终止条件和递归部分(C)迭代部分(D)终止条件和迭代部分8 function calc(x,y:integer) :integer;
4、beginif y=1 then calc:=xelse calc:=calc(x ,y 一 1)+xend;a、b 均为正整数,则 cale(a,b)=( )。【中国科学技术大学 1995 十四、14(6 分)】(A)a*(b 一 1)(B) a*b(C) a+b (D)a+a9 执行完下列语句段后,i 值为( )。【浙江大学 2000 一、6(3 分)】i1It f(int x1(return(x0)?x*f(x-1):2);)int i;i =f(f(1);(A)2(B) 4(C) 8 (D)无限递归10 设计一个判别表达式中左、右括号是否配对出现的算法,采用( )数据结构最佳。【西安电
5、子科技大学 1996 一、6(2 分)】(A)线性表的顺序存储结构(B)队列(C)线性表的链式存储结构(D)栈11 递归过程或函数调用时,处理参数及返回地址,要用一种称为( )的数据结构。【福州大学。1998 一、1(2 分)】(A)队列(B)多维数组(C)栈(D)线性表12 允许对队列进行的操作有( )。【华中科技大学 2004 一、2(1 分)】(A)对队列中的元素排序(B)取出最近进队的元素(C)在队头元素之前插入元素(D)删除队头元素13 若用单链表来表示队列,下面几种数据结构中,最合适的是( )。【四川大学2004】(A)带尾指针的非循环链表(B)带尾指针的循环链表(C)带头指针的非
6、循环链表(D)带头指针的循环链表14 对于循环队列( ) 。【北京理工大学 2005 十一、7(1 分)】(A)无法判断队列是否为空(B)无法判断队列是否为满(C)队列不可能满(D)以上说法都不是15 循环队列 A0,m 一 1存放其元素值,用 front 和 rear 分别表示队头和队尾,则当前队列中的元素数是( )。【南京理工大学 2001 一、5(15 分)】(A)(rearfront+m)m(B) rear-front+1(C) rear-front-1 (D)rear-front二、填空题16 表达式 23+(12*32)4+34*57)+1089 的后缀表达式是_。【中山大学 19
7、98 一、4(1 分) 】【北京邮电大学 2006 一、4(2 分)】17 设 a=6,b=4,c=2,d=3,e=2,则后缀表达式 abc 一de*+的值为_。【南京邮电学院 2004 二、1(5 分)】18 在按算符优先法求解表达式 31+5*2 时,最先执行的运算是_,最后执行的运算是_ 。【北京理工大学 2005 二、3(2 分)】19 用 S 表示入栈操作, X 表示出栈操作,若元素入栈顺序为 1,2,3,4,为了得到 1,3,4,2 的出栈顺序,相应的 S 和 X 操作串为_。【同济大学2005】20 _又称作先进先出表。【重庆大学 2000 一、7】21 队列的特点是_。【北京理
8、工大学 2000 二、2(2 分)】【中南大学2005 二、6(2 分) 】22 在具有 n 个元素的非空队列中插入一个元素或者删除一个元素的操作时间复杂度采用大 O 形式表示为_。【北京航空航天大学 2006 一、4(1 分)】23 循环队列是队列的一种_存储结构。【南京理工大学 2005 二、10(1分)】24 循环队列的引入,目的是为了克服_。【厦门大学 2001 一、1(148分)】25 在循环队列中,队列长度为 n,存储位置从 0 到 n 一 1 编号,以 rear 指示实际的队尾元素,现要在此队列中插入一个新元素,新元素的位置是_。【南京邮电学院 2003 一、1(4 分)】26
9、已知链队列的头尾指针分别是 f 和 r,则将值 x 入队的操作序列是_。【合肥工业大学 2000 三、3(2 分)】27 区分循环队列的满与空,只有两种方法,它们是_和_。【北京邮电大学 200l 二、2(4 分)】三、判断题28 队列逻辑上是一个下端和上端既能增加又能减少的线性表。( )【上海交通大学 1998 一、2(1 分) 】(A)正确(B)错误29 设尾指针的循环链表表示队列,则入队和出队算法的时间复杂度均为 O(1)。( )【中南大学 2003 一、5(1 分)】(A)正确(B)错误30 栈和队列都是线性表,只是在插入和删除时受到了一些限制。( )【北京邮电大学 2002 一、3(
10、1 分) 】【烟台大学 2007 二、3(1 分)】(A)正确(B)错误计算机专业基础综合数据结构(栈和队列)历年真题试卷汇编 4 答案与解析一、单项选择题1 【正确答案】 C2 【正确答案】 A3 【正确答案】 C4 【正确答案】 B5 【正确答案】 D6 【正确答案】 D7 【正确答案】 B8 【正确答案】 B9 【正确答案】 B10 【正确答案】 D11 【正确答案】 C12 【正确答案】 D13 【正确答案】 B14 【正确答案】 D15 【正确答案】 A【试题解析】 循环队列入队、出队、求元素个数的运算都要用取模运算。本题是求元素个数。若入队,则新元素位置 rear=(rear+1)
11、m,出队则 front=(front+1)m,队空 front=rear,队满是 (rear+1) m=front,m 是队列长度,4752 题都是循环队列问题。关于队头和队尾指针的指向,多数教材约定,队头指针指向队头元素的前一位置,队尾指针指向队尾元素,也有教材规定队头指针指向队头元素,队尾指针指向队尾元素的后一位置。二、填空题16 【正确答案】 23123*24345*7+1089+表达式中的点(.)是数分隔符,如 23123 是三个数17 【正确答案】 918 【正确答案】 减法运算(31)、加法运算(2+10)19 【正确答案】 SXSSXSXX20 【正确答案】 队列21 【正确答案】 先进先出22 【正确答案】 O(1)23 【正确答案】 顺序(物理)24 【正确答案】 假溢出时大量移动数据元素25 【正确答案】 rear=(rear+1) n26 【正确答案】 new(s); s 一data=x;s 一next=r 一next;rnext=s;r=s;27 【正确答案】 牺牲一个存储单元、设标记。(编者顺便指出,还有设立计数器等方法。)三、判断题28 【正确答案】 B【试题解析】 队列只在下端(队尾)增加,在上端(队头)减少。29 【正确答案】 A30 【正确答案】 A
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1