#A. 2025粤港澳信息学创新大赛市选拔赛模拟题初中组

    客观题

2025粤港澳信息学创新大赛市选拔赛模拟题初中组

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

2025粤港澳信息学创新大赛市选拔赛模拟题初中组

(满分:100 分 考试时间:120 分钟)

一、单项选择题(共 15 题,每题 2 分,共计 30 分;每题有且仅有一个正确选项)

  1. 在C++中,表达式 (13 & 7) 的值是多少?

{{ select(1) }}

  • 5
  • 6
  • 7
  • 20
  1. 以下哪个是合法的IPv4地址?

{{ select(2) }}

  • 192.168.1.256
  • 10.0.0.1
  • 300.120.50.10
  • 172.16.255.255.1
  1. 在C++中,执行以下代码后,变量result的值和类型分别是?
int a = 5;
double b = 2.0;
auto result = a / b;

{{ select(3) }}

  • 2,int
  • 2.5,double
  • 2.0,double
  • 2,double
  1. 在C++中,定义数组 int arr[5] = {1, 2};,执行语句 cout << arr[3]; 会输出什么?

{{ select(4) }}

  • 0
  • 1
  • 2
  • 随机值
  1. 在C++中,表达式 5 + 3 * 2 == 11 ? 1 : 0 的最终值是?

{{ select(5) }}

  • 0
  • 1
  • 11
  • 编译错误
  1. 关于二叉树的叙述,以下哪项是正确的?

{{ select(6) }}

  • 二叉树中每个节点的度都为2
  • 高度为3的二叉树最多有7个节点
  • 二叉树的左右子树不能为空
  • 完全二叉树只允许最后一层有缺失节点
  1. 以下哪种排序算法在最坏情况下时间复杂度是O(n²),但通过优化可以使平均时间复杂度达到O(n log n)?()

{{ select(7) }}

  • 冒泡排序
  • 快速排序
  • 归并排序
  • 堆排序
  1. 给定单向链表的节点定义和头指针 head,以下代码的功能是:
ListNode* moveTailToHead(ListNode* head) {
	if (!head || !head->next) return head;
	ListNode *prev = nullptr, *curr = head;
	while (curr->next) {
		prev = curr;
		curr = curr->next;
	}
	prev->next = nullptr;
	curr->next = head;
	return curr;  
}

{{ select(8) }}

  • 删除链表尾节点
  • 将尾节点移动到链表头部
  • 反转整个链表
  • 查找链表中间节点
  1. 以下代码段执行后,变量 x 的值是多少 ( )
int* f(int* p) {
	*p += 10;
	int q = *p / 2;
	return &q;
}

int main() {
	int x = 20;
	int* r = f(&x);
	x = *r + 5;
	return 0;
}

{{ select(9) }}

  • 20
  • 25
  • 30
  • 程序行为未定义
  1. 关于无向图的叙述,以下哪项是正确的?

{{ select(10) }}

  • 所有顶点的度数之和等于顶点数
  • 边数不可能超过顶点数的平方
  • 连通图中任意两顶点间都有唯一路径
  • 有n个顶点的树一定有n条边
  1. @用ASCII码存储字符串"2024"需要占用多少字节?

{{ select(11) }}

  • 2
  • 4
  • 8
  • 16
  1. 以下哪种语言是编译型语言?

{{ select(12) }}

  • Python
  • Java
  • C++
  • JavaScript
  1. 二进制数 1101 转换为十进制后的结果是?()

{{ select(13) }}

  • 11
  • 12
  • 13
  • 14
  1. 已知栈的初始状态为空,依次进行以下操作后栈顶元素是:
压入元素A
压入元素B
弹出栈顶
压入元素C
弹出栈顶

{{ select(14) }}

  • A
  • B
  • C
  1. 用分治法解决"在有序数组中查找数字"的问题,最适合采用以下哪种方法?()

{{ select(15) }}

  • 从第一个元素开始逐个比较
  • 随机选择一个元素进行比较
  • 每次与中间元素比较,缩小一半范围
  • 先排序数组再进行查找

二、阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填 √,错误填 ⨉ ;除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分)

1.程序一

根据上述程序,完成下面的判断题和单选题:

  1. (2分)请判断对错:当输入为 20 时,程序输出的第一个数字是 8。( )

{{ select(16) }}

  1. (2分)请判断对错:若将内层循环的起始条件 j = i * i 改为 j = 2 * i,程序仍能正确筛选素数。( )

{{ select(17) }}

  1. (2分)请判断对错:该算法的时间复杂度优于暴力判断每个数是否为素数。( )

{{ select(18) }}

  1. 当输入为 30 时,程序输出的第二个数字(素数和)是( )

{{ select(19) }}

  • 129
  • 106
  • 112
  • 100
  1. 该筛法算法的最坏时间复杂度是( )

{{ select(20) }}

  • O(n)O(n)
  • O(nlogn)O(n log n)
  • O(nloglogn)O(n log log n)
  • O(n2)O(n²)
  1. 若输入 n 为 100,则标记为 false 的最大合数是。()

{{ select(21) }}

  • 99
  • 100
  • 98
  • 97

2.程序二

22. 当输入数据为 4 1 2 3 1 时(第一个数表示数组长度),程序输出为 4。()

{{ select(22) }}

  1. 若将 dp[1] = max(nums[0], nums[1]) 改为 dp[1] = nums[1],输入 4 2 1 1 2 时输出会变为 3。()

{{ select(23) }}

  1. (1分)该算法的时间复杂度为 O(n)。()。

{{ select(24) }}

  1. 当输入数据为 5 2 7 9 3 1 时,程序输出是()。

{{ select(25) }}

  • 10
  • 12
  • 11
  • 13
  1. 该算法解决的是以下哪个问题?()。

{{ select(26) }}

  • 求数组最大子序列和
  • 求不相邻元素的最大和
  • 求数组中最长递增子序列
  • 求数组中相邻元素的最小和
  1. 若输入数组所有元素均为负数,则输出( )

{{ select(27) }}

  • 0
  • 前两个数中较大的那个
  • 数组中最小的负数(绝对值最大)
  • 程序会报错

3.程序三:

完成下面的判断题和单选题。

  1. 当输入为 2 5 时,程序输出 32。( )

{{ select(28) }}

  1. 若将 k % 2 == 0 改为 k % 3 == 0,输入 3 4 时输出会变为 81。( )

{{ select(29) }}

  1. 该递归算法的时间复杂度是 O(logk)O(log k)( )

{{ select(30) }}

  1. 当输入为 5 0 时,程序输出是( )

{{ select(31) }}

  • 0
  • 1
  • 5
  • 程序报错
  1. 该算法实现的是以下哪种数学运算?( )

{{ select(32) }}

  • 加法
  • 乘法
  • 幂运算
  • 阶乘
  1. 当输入为 2 10 时,mystery 函数总共被调用了( )次。( )

{{ select(33) }}

  • 5
  • 11
  • 10
  • 6

三、完善程序(单选题,每小题 3 分,共计 30 分)

1.程序一

以下程序使用BFS计算从起点(0,0)到终点的最短步数,补全缺失代码。 (假设地图用 grid 二维数组表示,0可通过,1为障碍)

  1. 1处应填( )

{{ select(34) }}

  • x + y
  • dist[n-1][m-1]+1
  • n + m
  • dist[x][y]
  1. 2处应填( )

{{ select(35) }}

  • grid[nx][ny] == 0 && dist[nx][ny] == -1
  • grid[nx][ny] == 1
  • dist[nx][ny] > dist[x][y]
  • nx + ny &lt; x + y
  1. 3处应填( )

{{ select(36) }}

  • dist[x][y]
  • dist[x][y] + 1
  • 0
  • 1
  1. 4处应填( )

{{ select(37) }}

  • make_pair(x, y)
  • make_pair(nx, ny)
  • make_pair(dx[i], dy[i])
  • make_pair(n, m)
  1. 5处应填( )

{{ select(38) }}

  • "No path"
  • false
  • -1
  • 0

2、程序二

补全程序,统计字符串中所有回文子串的数量。函数check判断子串s[l..r]是否回文,count_substrings枚举所有子串并计数。注意边界处理和返回值逻辑。

输入示例:"abcba" 输出示例:7

(回文子串:a,b,c,b,a,bcb,abcba)

  1. ①处应填( )

{{ select(39) }}

  • true
  • s[l] == s[r]
  • l < r
  • false
  1. ②处应填( )

{{ select(40) }}

  • true
  • false
  • l >= r
  • s[l] == s[r]
  1. ③处应填( )

{{ select(41) }}

  • i <= j
  • check(s, i, j)
  • s[i] == s[j]
  • i < j
  1. ④处应填( )

{{ select(42) }}

  • n
  • cnt
  • j - i + 1
  • s.length()
  1. ⑤处应填( )

{{ select(43) }}

  • s
  • count_substrings(s)
  • check(s, 0, s.length()-1)
  • n

2025粤港澳信息学创新大赛市选拔赛模拟题初中组

未参加
状态
已结束
规则
OI
题目
1
开始于
2025-5-3 2:00
结束于
2025-5-9 8:00
持续时间
150 小时
主持人
参赛人数
69