1915: 2024程序设计小组挑战赛
Description
2024程序设计小组挑战赛
注意:请将答案写在最后的答题区对应的方格内。本赛试卷满分 50 分,编程题50分。
一、选择题(共 10 题,单选,每题 3 分,共 30 分)
1. 完整的计算机系统由( )组成。
(A) 硬件系统和软件系统 (B) 运算器、控制器、存储器、输入设备和输出设备
(C) 主机和外部设备 (D) 主机箱、显示器、键盘、鼠标、打印机
2. 以下软件中,( )不是操作系统软件。
(A) Windows 10 (B)
Linux (C) 鸿蒙 (D)
Microsoft Office
3. 下列关于C++语言中数组的叙述,不正确的是( )。
(A). 一维数组可以用来表示数列。 (B). 二维数组可以用来表示矩阵。
(C). 三维数组可以用来表示空间中物体的形状。
(D). 世界是三维的,所以定义四维数组没有意义。
4. 下列关于C++语言中函数的叙述,不正确的是( )。
(A). 两个函数的声明可以相同。 (B). 两个函数的局部变量可以重名。
(C). 两个函数的参数可以重名。 (D). 函数调用时必须提供对应的实际参数。
5. 冒泡排序和快速排序的时间复杂度分别是( )。
(A) O(n) O(n logn) (B) O(n2) O(n logn) (C) O(n2) O(n) (D) O(n logn) O(n2)
6. 十进制数 27 对应的二进制数为( )。
(A) 1011 (B)
1100 (C)
10111 (D)
11011
7.
100 个数字使用二分查找,最多需要比较( )次。
(A) 7 (B) 8 (C)
9 (D) 99
8. 以下C++代码实现输出每个整数对应的因数,如输入 6 ,则输出 1 2 3 6 ;如输入 18 ,则输出 12 3 6 9 18 。横线处应填入代码是( )。
A. if(n%i==0) B. if(n/i==0) C. if(n%i!=0) D. if(n/i!=0
9. 在下列代码的横线处填写( ),完成对有 n 个 int 类型元素的数组 array 由小到大排序。
A. int j = 1; j < n; j++ B. int j = 0; j < n; j++ C. int j = 0; j < i - 1; j++ D. int j = 0; j < i; j++
10 根据下述二分查找法,在排好序的数组 1,3,6,9,17,31,39,52,61,79,81,90,96 中查找数值 82,和82比较的数组元素分别是( )。
A. 52 61 81 90 B. 52 79 9081 C. 39 79 90 81 D. 39 79 90
二、程序填空(共 1 题,每个空格 6 分,共 30 分)
1. 设计一个查找算法,这个算法从长度为 N 的数组 nums 当中查找一个数字 t。已知
nums已经按照从小到大升序排列,要求返回在 nums 数组当中第一个不小于 t 的数字的下标,
如果数组当中所有数字均小于 t,则返回 N。(也就是说,如果数组当中存在数值等于 t,则返回第一个的下标;如果不存在数值 t,那么返回第一个数值是大于 t 的数的下标)。
以下函数有三个参数,分别是一个数组 nums,当前长度 n 和需要查找的数字 t。
根据上述程序,选择正确的代码填入空格。
Sample Input Copy
Sample Output Copy