2024信息学奥赛CSP-J考试真题测试

一、单项选择题(共15题,每题2分,共计30分)

每题有且仅有一个正确选项,选择后点击“提交核对”查看答案及解析

1、32 位 int 类型的存储范围是( )
正确答案:C
解析:int有4个字节,取值范围为-2³¹~2³¹-1,对应十进制为 -2147483648~2147483647
2、计算(14₈−1010₂)×D₁₆−1101₂的结果,并选择答案的十进制值( )
正确答案:A
解析:将各进制转换为十进制后计算:(12-10)×13-13=2×13-13=13
3、某公司有10名员工,分为3个部门:A部门4人,B部门3人、C部门3人。现选4人组成工作组,每个部门至少1人,问有多少种选择方式?( )
正确答案:B
解析:选4人且每部门至少1人,必然1个部门选2人,其余2个部门选1人:
A部门2人+BC各1人:C(4,2)×C(3,1)×C(3,1)=6×3×3=54
B部门2人+AC各1人:C(4,1)×C(3,2)×C(3,1)=4×3×3=36
C部门2人+AB各1人:C(4,1)×C(3,1)×C(3,2)=4×3×3=36
总计:54+36+36=126
4、以下哪个序列对应数组0至8的4位二进制格雷码(Gray code)( )
正确答案:D
解析:格雷码的特点是任意两个相邻的代码之间仅有一位二进制数不同,逐一验证选项可知D符合要求
5、记1KB为1024字节(byte),1MB为1024KB,那么1MB是多少二进制位(bit)( )
正确答案:D
解析:1MB=1024KB,1KB=1024B,1B=8bit,故1MB=1024×1024×8=8388608 bit
6、以下哪个不是C++中的基本数据类型( )
正确答案:C
解析:struct是通过组合基本数据类型形成的复合数据类型,不属于基本数据类型;int、float、char均为C++基本数据类型
7、以下哪个不是C++中的循环语句( )
正确答案:D
解析:C++的循环语句包括for、while、do-while三种,repeat-untill不是C++的循环语句(常见于Pascal等语言)
8、在C/C++中,(char)('a'+13)与下面的哪一个值相等( )
正确答案:B
解析:字符在ASCII表中按顺序排列,'a'的ASCII值加13后对应字符为'n'('a'+1='b',依次类推至'a'+13='n')
9、假设有序表中有1000个元素,则用二分法查找元素x最多需要比较( )次
正确答案:B
解析:二分查找最多比较次数为对有序表元素个数取2的对数后向上取整,⌈log₂1000⌉=10(2¹⁰=1024≥1000)
10、下面哪一个不是操作系统名字( )
正确答案:A
解析:Linux、Windows、macOS均为操作系统;Notepad是Windows系统下的文本编辑软件,不属于操作系统
11、在无向图中,所有顶点的度数之和等于( )
正确答案:B
解析:无向图中一条边连接两个顶点,会为两个顶点各贡献1度,因此所有顶点的度数之和等于边数的两倍
12、已知二叉树的前序遍历为[A,B,D,E,C,F,G],中序遍历为[D,B,E,A,F,C,G],求二叉树的后序遍历结果是( )
正确答案:A
解析:根据前序遍历(根左右)和中序遍历(左根右)还原二叉树:
1. 前序首元素A为根,中序中A左侧[D,B,E]为左子树,右侧[F,C,G]为右子树;
2. 左子树前序[B,D,E],中序[D,B,E],B为左子树根,D为B左子树,E为B右子树;
3. 右子树前序[C,F,G],中序[F,C,G],C为右子树根,F为C左子树,G为C右子树;
4. 后序遍历(左右根)结果为[D,E,B,F,G,C,A]
13、给定一个空栈,入栈元素依次是1、2、3、4、5、6(1最先入栈),下面哪种出栈顺序是不可能的( )
正确答案:D
解析:栈遵循“先进后出”原则:
A:1-2-3-4-5-6全入栈后依次出栈,可行;
B:1入栈→1出栈,2-3-4-5-6入栈→依次出栈,可行;
C:1-2入栈→2出栈,3-4入栈→4出栈,5-6入栈→6-5出栈,3出栈,1出栈,可行;
D:1入栈→1出栈,2-3入栈→3出栈,4-5入栈→5出栈,此时栈内剩余2、4,需先出4再出2,无法先出2,故不可行
14、有5个男生和3个女生站成一排,规定3个女生必须相邻,问有多少种不同的排列方式( )
正确答案:A
解析:相邻问题用“捆绑法”:
1. 将3个女生捆绑为1个“整体”,与5个男生共6个元素排列,排列数为A(6,6)=6×5×4×3×2×1=720;
2. 3个女生内部可自由排列,排列数为A(3,3)=3×2×1=6;
3. 总排列数=720×6=4320种
15、编译器的主要作用是什么( )
正确答案:B
解析:编译器的核心功能是将高级编程语言(如C++)的源代码转换为计算机可直接执行的机器语言代码;A是解释器功能,C是调试工具功能,D是操作系统内存管理功能

答题结果

总题数: 0
做对题数: 0
做错题目: 0
得分: 0