C++高级组客观题
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
一、单选题(共 25 题)
- 以下案例中适合用枚举算法的是哪一项( ) {{ select(1) }}
- 10位同学需要按照身高由小到大排序
- 有无穷多个数字,找出里面的质数
- 有一筐苹果,为所有苹果贴标签
- 35人的班级里,找出身高在120cm以上的同学
- 针对下方代码说法错误的是( )
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 2; i < n; i++)
if (n % i == 0) {
cout << "no";
return 0;
}
cout << "yes";
return 0;
}
{{ select(2) }}
- 上方代码使用了枚举法,枚举范围是:2到n-1
- 如果输入数据是8,上方代码的输出结果是no
- 如果输入数据是7,上方代码的输出结果是yes
- 如果2到n-1之间存在某个整数是n的因数,那么代码的输出结果是yes
- 篮子里有许多桃子,假设将其中的一半多1个给第一名同学,将余下的一半多2个给第二名同学,以此类推...,给完第5名同学刚好一个也不剩。篮子最初有几个桃子?( ) {{ select(3) }}
- 128
- 129
- 258
- 518
- 平面上如果有一条直线,可以将平面分成2部分,六条直线最多可以把平面分成几部分?( ) {{ select(4) }}
- 16
- 22
- 29
- 37
- 数组a对应存在前缀和数组s,用前缀和算法计算[2~4]的区间和。
┌────┬────┬────┬─────┬─────┐
a[] │ 0 │ 2 │ 9 │ 5 │ 11 │
└────┴────┴────┴─────┴─────┘
0 1 2 3 4
┌────┬────┬────┬─────┬─────┐
s[] │ 0 │ 2 │ 11 │ 16 │ 27 │
└────┴────┴────┴─────┴─────┘
0 1 2 3 4
{{ select(5) }}
- a[4]-a[1]
- s[4]-s[1]
- a[3]-a[2]
- s[3]-s[2]
- 数组a对应存在前缀和数组s,用前缀和算法计算[1~4]的区间和。
┌────┬────┬────┬─────┬─────┐
a[] │ 0 │ 2 │ 9 │ 5 │ 11 │
└────┴────┴────┴─────┴─────┘
0 1 2 3 4
┌────┬────┬────┬─────┬─────┐
s[] │ 0 │ 2 │ 11 │ 16 │ 27 │
└────┴────┴────┴─────┴─────┘
0 1 2 3 4
{{ select(6) }}
- a[4]-a[0]
- s[3]-s[1]
- a[3]-a[1]
- s[4]-s[0]
- 已经存在下面的数组,计算从下标1到下标4的差分数值。
┌────┬────┬────┬─────┬─────┐
a[] │ 0 │ 2 │ 9 │ 20 │ 65 │
└────┴────┴────┴─────┴─────┘
0 1 2 3 4
{{ select(7) }}
- 2,11,31,96
- -7,-11,-45,65
- 2,7,11,45
- 2,7,-11,-45
- 使用二分算法,在1~500之间猜数字77,依次取出的中间值是( ) {{ select(8) }}
- 250,125,187,218,77
- 251,125,63,94,77
- 250,125,62,93,77
- 125,63,94,77
- 观察下方数字序列,第一次二分处理时中间值mid为5,要找的数字为8,L、R的值要如何变化( )
L R
1 2 3 4 5 6 7 8 9
↑
┌─────┐
│ mid │
└─────┘
{{ select(9) }}
- R=mid+1
- R=mid-1
- L=mid+1
- L=mid-1
- 有数字序列:1 2 5 12 25,用二分法查找数字12,至少需要比较几次( ) {{ select(10) }}
- 1
- 2
- 3
- 4
- 在大整数乘法中,两个大整数最多各有500位,请问保存结果的数组最少定义多大?( ) {{ select(11) }}
- 500
- 700
- 1000
- 2000
- 已知栈如下图,栈顶元素是什么( )
╭──────────────────────────────
│ (3) (9) (2) (6)
╰──────────────────────────────
{{ select(12) }}
- 3
- 9
- 2
- 6
- 今有一空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f依次进行:进栈,进栈,出栈,进栈,进栈,出栈的操作,则此操作完成后,栈底元素为( ) {{ select(13) }}
- b
- a
- d
- c
- 对于入栈顺序为a,b,c,d,e 的序列,下列( )不是合法的出栈序列。 {{ select(14) }}
- a,b,c,d,e
- e,d,c,b,a
- b,a,c,d,e
- c,d,a,e,b
- 对于入栈顺序为a,b,c,d,e,f,g的序列,下列( )不可能是合法的出栈序列。 {{ select(15) }}
- a,b,c,d,e,f,g
- a,d,c,b,e,g,f
- a,d,b,c,g,f,e
- g,f,e,d,c,b,a
- 有一个空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f依次进行进栈、进栈、出栈,进栈,进栈,出栈的操作,则此操作完成后,栈S的栈顶元素为( ) {{ select(16) }}
- f
- c
- a
- b
- 已知队列(13,2,11,34,41,77,5,7,18,26,15),第一个进入队列的元素是13,则第五个出队列的元素是( )。 {{ select(17) }}
- 5
- 41
- 77
- 13
- 在一个初始为空的队列中,先依次插入元素a,b,c,d,然后做了两次删除操作,问:此时队首元素是( ) {{ select(18) }}
- a
- b
- c
- d
- 如果进队的顺序为:a,b,c,d,则出队的顺序是( ) {{ select(19) }}
- b, c, d, a
- a,b, c, d
- a, c, b, d
- c, b, d, a
- 看程序选择可填入横线的正确选项( ) 输入一个3位数,将数字每一位顺序反转。
#include<bits/stdc++.h>
using namespace std;
int main(){
int num=0;
int a=0, b=0,c=0;
int *p1=&a,*p2=&b,*p3=&c;
cin>>num;
*p1=__________;
*p2=__________;
*p3=__________;
cout<<*p3<<*p2<<*p1;
return 0;
}
{{ select(20) }}
-
num/100; num/10%10; num%10; -
num/10; num/100; num%10; -
num%10; nun/10%10; num/100; -
num%100 num/10%10 num%10
- 和二进制数101100相等的十进制整数是( )。 {{ select(21) }}
- 44
- 45
- 64
- 88
- 一个 int 类型的值乘以 8,等价于以下哪个位运算?( ) {{ select(22) }}
- 左移3位
- 右移3位
- 左移8位
- 右移8位
- 有一数字序列,进行快速排序,当完成基准值为5的排序时 ,请选择符合要求的序列顺序( ) {{ select(23) }}
- 1 2 6 5 9 3
- 2 5 3 6 1 9
- 1 3 2 5 9 6
- 3 6 5 2 9 1
- 以下属于快速排序的是哪一项( ) {{ select(24) }}
- 相邻元素两两交换
- 从待排序列中每次选出最小
- 确定基准值,小于等于基准值的放左侧,大于等于基准值的放右侧
- 选择任意元素插入有序序列中
- 有波兰表达式:- + 3 * 4 2 * 1 5,从下列选项中选出表达式的正确结果( )。 {{ select(25) }}
- 5
- 6
- 15
- 16
二、判断题(共 10 题)
- 32>>3的结果是4。 {{ select(26) }}
- 正确
- 错误
- 冒泡排序对数组进行升序排序时,每一轮都能确定一个最大值排在末尾。 {{ select(27) }}
- 正确
- 错误
- 二分查找算法要求待查找的数组必须是有序的。 {{ select(28) }}
- 正确
- 错误
- 栈具有先进先出的特性,队列具有先进后出的特性。 {{ select(29) }}
- 正确
- 错误
- 常数级复杂度 O(1) 代表算法运行时间和数据规模无关 {{ select(30) }}
- 正确
- 错误
- 二分查找只能用于整数类型数据查找。 {{ select(31) }}
- 正确
- 错误
- 排序算法中,稳定排序不会改变相同数值元素的相对顺序。 {{ select(32) }}
- 正确
- 错误
- 无序数组也能使用二分查找提高查找效率。 {{ select(33) }}
- 正确
- 错误
- 一维前缀和数组 s[i] 表示原数组前 i 项的累加和. {{ select(34) }}
- 正确
- 错误
- 差分数组的核心作用是:对区间快速加减、最后还原原数组。 {{ select(35) }}
- 正确
- 错误