一、单项选择题(每题2分,共计30分)
【答案】A
【解析】printf函数是C语言中的函数,C语言是面向过程的语言,因此选A。
【答案】C
【解析】模拟入栈出栈,C选项中"6 5"不可能实现。
【答案】D
【解析】初始时p指向x的地址,q指向y的地址,执行第5行程序后,将p指向y的地址。
【答案】C
【解析】A选项,数组可以排序;B选项,链表不能存储比数组更多的信息;C选项正确。
【答案】B
【解析】栈的特点是后进先出,队列的特点是先进先出。依题意模拟过程,括号中表示栈中数据的个数:e1入栈(1),e2入栈(2),e2出栈(1),e3入栈(2),e4入栈(3),e4出栈(2),e3出栈(1),e5入栈(2),e6入栈(3),e6出栈(2),e5出栈(1),e1出栈(0)。栈的容量至少为3。
【答案】B
【解析】中缀表达式转换为前缀表达式的方法:
①将所有运算按照优先级加上小括号,(a+((b-c)*d))
②将运算符移到对应小括号前,+(a*(-(b c) d)
③去掉小括号,+a*-bcd
【答案】B
【解析】按照哈夫曼编码规则画出哈夫曼树,如下图结点d到根节点的边数即编码长度为2。
【答案】C
【解析】9的父结点是4,兄弟结点是8,左儿子结点是18,右儿子结点是19
【答案】B
【解析】n个点有向连通图,至少有n条边,连成一圈,邻接矩阵中非零元素即为边数最少为n。
【答案】D
【解析】使用两个栈,一个栈存放入队的操作,另一个栈用来出队,即可用栈实现队列。
【答案】D
【解析】画图模拟,选项D正确。