2022CCF非专业级别软件能力认证第一轮(CSP-J)提高级C++语言试题一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)1
以下哪种功能没有涉及C++语言的面向对象特性支持:()
C++中调用printf函数B
C++中调用用户定义的类成员函数C
C++中构造一个class或structD
C++中构造来源于同一基类的多个派生类答:选A
printf是C语言中就有的函数,定义类(class)或结构体(struct),类成员函数,构造派生类等等,都是面向对象语言才支持的操作
有6个元素,按照6,5,4,3,2,1的顺序进入栈S,请问下列哪个出栈序列是非法的()
543612B
453126C
346521D
234156答:选C
C中当4出栈时,4前入栈的6,5一定都在栈中,情况为:栈底-6-5
所以接下来不可能是6出栈,只能是5出栈
运行以下代码片段的行为是()
intx=101;inty=201;int*p=&x;Int*q=&y;p=q;A
将x的值赋为201B
将y的值赋为101C
将q指向x的地址D
将p指向y的地址答:选D
把q赋值给p,也就是让p从指向x的指针变为指向y的指针,指向y的指针就是y的地址
链表和数组的区别包括()
数组不能排序,链表可以B
链表比数组能存储更多的信息C
数组大小固定,链表大小可动态调整D
以上均正确答:选C
选项A:数组和链表都能做排序,一旦申请数组,数组的长度就是固定的了
而链表可以申请和释放结点,大小可以动态调整
对假设栈S和队列Q的初始状态为空
存在e1~e6六个互不相同的数据,每个数据按照进栈S、出栈S、进队列Q、出队列Q的顺序操作,不同数据间的操作可能会交错
已知栈S中依次有数据e1、e2、e3、e4、e5和e6进栈,队列Q依次有数据e2、e4、e3、e6、e5和e