一、 单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项)
1. 在C++中,下面哪个关键字用于声明一个变量,其值不能被修改?( )。
- A. unsigned
- B. const
- C. static
- D. mutable
答案 B
2. 八进制数123456708 和076543218的和为( )。
- A. 222222218
- B. 211111118
- C. 221111118
- D. 222222118
答案 D
3. 阅读下述代码,请问修改data的value成员以存储3.14,正确的方式是( )。
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;
答案 A
4. 假设有一个链表的节点定义如下:
struct Node {
int data;
Node* next;
};
现在有一个指向链表头部的指针:Node* head。如果想要在链表中插入一个新节点,其成员data的值为42,并使新节点成为链表的第一个节点,下面哪个操作是正确的?( )
- 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;
答案 A
5. 根节点的高度为1,一根拥有2023个节点的三叉树高度至少为( )。
- A. 6
- B. 7
- C. 8
- D. 9
答案 C
6. 小明在某一天中依次有七个空闲时间段,他想要选出至少一个空闲时间段来练习唱歌,但他希望任意两个练习的时间段之间都有至少两个空闲的时间段让他休息,则小明一共有( )种选择时间段的方案。
- A. 31
- B. 18
- C. 21
- D. 33
答案 B
7. 以下关于高精度运算的说法错误的是( )。
- A. 高精度计算主要是用来处理大整数或需要保留多位小数的运算。
- B. 大整数除以小整数的处理的步骤可以是,将被除数和除数对齐,从左到右逐位尝试将除数乘以某个数,通过减法得到新的被除数,并累加商。
- C. 高精度乘法的运算时间只与参与运算的两个整数中长度较长者的位数有关。
- D. 高精度加法运算的关键在于逐位相加并处理进位。
答案 C
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
答案 A