1.以下哪种功能没有涉及 C++语言的面向对象特性支持:( )
A.C++中调用 printf 函数
B.C++中调用用户定义的类成员函数
C.C++中构造一个 class 或 struct
D.C++中构造来源于同一基类的多个派生类
答案:A
解析:printf是C中的输入操作。故选A。
2.有6 个元素,按照 6、5、4、3、2、1的顺序进入S,请问下列哪个出序列是非法的
( )。
A.543612
B.453126
C.346521
D.234156
答案:C
解析:
A:6进5进5出4进4出3进3出6出2进1进1出2出
B:6进5进4进4出5出3进3出2进1进1出2出6出
D:6进5进4进3进2进2出3出4出1进1出5出6出
故选C。
3.
运行以下代码片段的行为是 ( )
A.将x的值赋为201
B.将y的值赋为101
C.将q 指向x的地址
D.将p指向y的地址
答案:D
解析:&叫取地址运算符,第4行q指向y的地址,第五行把q的值赋给p,故选D。
4.链表和数组的区别包括 ( )
A.数组不能排序,链表可以
B.链表比数组能存储更多的信息
c.数组大小固定,链表大小可动态调整
D.以上均正确
答案:C
解析:数组和链表都可以进行排序,相同长度的链表和数组可以存放的数据量是一样的,故选C。
5.对假设栈 S 和队列Q的初始状态为空。存在 e1~e6 六个五不相同的数据,每个数据按照进栈 S、出栈 S、进队列Q、出队列Q的顺序操作,不同数据间的操作可能会交错。已知栈S中依次有数据e1、e2、e3、e4、e5和e6 进栈,队列Q依次有数据e2、e4、e3、e6、e5 和e1出队列。则栈 S 的容量至少是 ( )个数据
A.2
B.3
C.4
D.6
答案:B
解析:栈是先进后出,队列是先进先出,所以我们可得知出队列顺序也就是出栈顺序。
e1进e2进e2出e3进e4进e4出e3出e5进e6进e6出e5出e1出,而S最多同时存储了3个元素,故选B。