第 1 题
在 C++ 中,下面哪个关键字用于声明一个变量, 其值不能被修改?(B)
A. unsigned
B. const
C. static
D. mutable
【const声明的变量不可修改】
第 2 题
八进制数 12345670(8) 和 07654321(8) 的和为(D)
A. 22222221(8)
B. 21111111(8)
C. 22111111(8)
D. 22222211(8)
【列竖式计算即可】
第 3 题
阅读下述代码,请问修改
data
的value
成员以存储 3.143.14,正确的方式是(A)union Data{ int num; float value; char symbol; }; union Data data;
A. data.value = 3.14
B. value.data = 3.14;
C. data->value = 3.14;
D. value->data = 3.14;
【常识性问题】
第 4 题
假设有一个链表的节点定义如下:
struct Node { int data; Node* next; }
现在有一个指向链表头部的指针:
Node* head
。如果想要在链表中插入一个新节点,其成员data
的值为 4242,并使新节点成为链表的第一个节点,下面哪个操作是正确的?(A)A.
Node* newNode = new Node; newNode->data = 42; newNode->next = head; head = newNode;
B.
Node* newNode = new Node; head->data = 42; newNode->next = head; head = newNode;
C.
Node* newNode = new Node; newNode->data = 42; head->next = newNode;
D.
Node* newNode = new Node; newNode->data = 42; newNode->next = head;
【
应先指定newNode的值,然后把newNode的下一个指向头指针的位置,再把头指针指向它的位置】
第 5 题
根节点的高度为 11,一棵拥有 2023 个节点的三叉树高度至少为(C)。
A. 6
B. 7
C. 8
D. 9
【三叉树的第一层有3^0个节点,第二层有3^1个节点,第三层有3^2个节点……那么前一层有3^0个节点,前二层有3^0+1^1个节点……以此类推,前 n 层有3^0+3^1+3^2+3^3+...+3^n个节点,也就是(3^0 * (3^n - 1)) / 3 - 1个节点(等比数列求和),简化后就是(3^n - 1) / 2。结合选项,(3^6 - 1) / 2 = 364,(3^7 - 1) / 2 = 1093,(3^8 - 1) / 2 = 3280,3280 > 2023】
第 6 题
小明在某一天中依次有七个空闲时间段,他想要选出至少一个空闲时间段来练习唱歌,但他希望任意两个练习的时间段之间都有至少两个空闲的时间段让他休息。则小明一共有(B)种选择时间段的方案。
A. 31
B. 18
C. 21
D. 33
【抽出一个时间段有 7 种选法,抽出两个时间段有[1, 4][1, 5][1, 6][1, 7][2, 5][2, 6][2, 7][3, 6][3, 7][4, 7] 10 种选法,抽出三个时间段只有 1 种选法】
第 7 题
以下关于高精度运算的说法错误的是(C)
A. 高精度计算主要是用来处理大整数或需要保留多位小数的运算
B. 大整数除以小整数的处理的步骤可以是,将被除数和除数对齐,从左到右逐位尝试将除数乘以某个数,通过减法得到新的被除数,并累加商
C. 高精度乘法的运算时间只与参与运算的两个整数中长度较长者的位数有关
D. 高精度加法运算的关键在于逐位相加并处理进位
【高精度乘法的运算时间与两者长度都有关】
第 8 题
后缀表达式
6 2 3 + - 3 8 2 / + * 2 ^ 3 +
对应的中缀表达式是A. ((6-(2+3))*(3+8/2))^2+3
B. 6-2+3*3+8/2^2+3
C. (6-(2+3))*((3+8/2)^2)+3
D. 6-((2+3)*(3+8/2))^2+3
【2 3+代表2+3,6 2 3 + - 代表6 - (2 + 3)以此类推下去】
第 9 题
数 101010(2) 和 166(8)的和为 ( )
A. (10110000)2
B. (236)8
C. (158)10
D. (A0)16
【166(8) = 1110110(2)
101010(2)
+1110110(2)
10100000(2)
=230(8)
=A0(16)
第 10 题
假设有一组字符
{a,b,c,d,e,f}
, 对应的频率分别为 5%,9%,12%,13%,16%,45%。请问以下哪个选项是字符abcdef分别对应的一组哈夫曼编码?A.
1111,1110,101,100,110,0
B.
1010,1001,1000,011,010,00
C.
000,001,010,011,10,11
D.
1010,1011,110,111,00,01
【
懂的都懂哈夫曼树的左0右1,左1右0都无所谓。】
第 11 题
给定一棵二叉树,其前序遍历结果为:
ABDECFG
,中序遍历结果为:DEBACFG
。请问这棵树的正确后序遍历结果是什么?(A)A. EDBGFCA
B. EDGBFCA
C. DEBGFCA
D. DBEGFCA【我们结合两者来分析:从前序遍历中,我们知道A是根节点。在中序遍历中, A之前的部分DEB是左子树, A之后的部分CFG是右子树。对于左子树DEB,从前序遍历中我们知道B是左子树的根节点。在中序遍历中, B之前的部分DE是B的左子树。对于左子树DE,从前序遍历中我们知道D是左子树的根节点, E是D的右子节点。对于右子树CFG,从前序遍历中我们知道C是右子树的根节点。在中序遍历中, C之后的部分FG是C的右子树。对于右子树FG,从前序遍历中我们知道F是右子树的根节点, G是F的右子节点。】
第 12 题
考虑一个有向无环图,该图包含 44 条有向边:(1,2),(1,3),(2,4) 和 (3,4)。以下哪个选项是这个有向无环图的一个有效的拓扑排序?(B)
A. 4,2,3,1
B. 1,2,3,4
C. 1,2,4,3
D. 2,1,3,4
第 13 题
在计算机中,以下哪个选项描述的数据存储容量最小(B)
A. 字节 (byte)
B. 比特 (bit)
C. 字 (word)
D. 千字节 (kilobyte)
【1TB = 2^10GB = 2^20MB = 2^30KB = 2^40Byte = 2^40*8bit
1字 = 2Byte = 16bit】
第 14 题
一个班级有 10 个男生和 12 个女生。如果要选出一个 3 人的小组,并且小组中必须至少包含 11 个女生,那么有多少种可能的组合?()
A. 1420
B. 1770
C. 1540
D. 2200
【把22人中选3人的情况减去男生中选3人的情况,就是答案。
C(22, 3) - C(10, 3)
= 22*21*21 / 3*2*1 - 10*9*8 / 3*2*1
= 22*7*10 - 10*3*4
= 1540 - 120
= 1420】
第 15 题
以下哪个不是操作系统?(D)
A. Linux
B. Windows
C. Android
D. HTML
【HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。】