2011年计算机学科专业基础综合试题参考答案一、单项选择题1
CAACBADBBCDBCCCCADADCDCDDBBCDBBADBBADCDA2
解析:在程序中,执行频率最高的语句为"x=2*x"
设该语句共执行了T(n)次,则2兀n)+l~n/2,故T(n)=log2(n/2)-1=log2n-2,得T(n)=O(log2n)
解析:d为第1个出栈元素,则d之前的元素必定是进栈后在栈中停留
因而出栈顺序必为d_c_b_a_,e的顺序不定,在任一"_"上都有可能,一共有4种可能
【另解】d首先出栈,则abc停留在栈中,此时栈的状态如右图所示
此时可以有如下4种操作:(De进栈后出栈,则出栈序列为decba;®c出栈,e进栈后出栈,出栈序列为dceba;@cb出栈,e进栈后出栈,出栈序列为dcbea;©cba出栈,e进栈后出栈,出栈序列为dcbae
解析:根据题意,第一个元素进入队列后存储在A[O]处,此时front和rear值都为0
入队时由于要执行(rear+1)%n操作,所以如果入队后指针指向o,则rear初值为n-1,而由千第一个元素在A[O]中,插入操作只改变rear指针,所以front为0不变
注意:©循环队列是指顺序存储的队列,而不是指逻辑上的循环,如循环单链表表示的队列不能称为循环队列
@front和rear的初值并不是固定的
【排除法】如果front和rear的初值相等,则无法判断队列空和队列满,排除A、D
第1个进入队列的元素存储在A[O]处,进队操作不会改变front的值,由题意可知队列非空时front指向队头元素,故front初值