CSP-J 2022 初赛真题+答案+解析,超级详细
一、单项选择题
1.以下那种功能没有涉及C++语言的面向对象特性支持?
A.C++调用printf函数
B.C++中调用用户定义类成员函数
C.C++中构造一个class或struct
D.C++中构造来源于同一基类的多个派生类
【答案】A
【解析】略
2.有6个元素,按照6、5、4、3、2、1的顺序进入栈S,请问下列哪个出栈顺序是不合法的?
A.5 4 3 6 1 2
B.4 5 3 1 2 6
C.3 4 6 5 2 1
D.2 3 4 1 5 6
【答案】C
【解析】C选项中,要想首先弹出3,需要压入6、5、4、3,那么接下来栈S应该为:6 5 4,弹出4后,应该先弹出5,但是题目中先弹出6,无法满足。所以C是非法的。其余ABD选项,均符合要求。
3.运行以下代码片段的行为是什么?
int x=101;
int y=201;
int *p=&x;
int *q=&y;
p=q;
A.将x的值赋为201
B.将y的值赋为101
C.将q指向x的地址
D.将q指向x的地址
【答案】D
【解析】指针*p指向了x的地址符,那么接下来p=q为传递地址,故答案选择D。
4.链表和数组的区别包括
A.数组不能排序,链表可以
B.链表比数组能储存更多的信息
C.数组大小固定,链表大小可以动态调整。
D.以上均正确
【答案】C
【解析】首先排除A,因为数组可以用sort(a,a+n)函数排序,进而排除D。B也是不对的,因为链表有空间限制,不比数组可以储存更多信息。

浙公网安备 33010602011771号