【C++板块提升计划】成都第二届三国之战 C++场 (已结束【原创】【答题有奖】
本帖最后由 zhangjinxuan 于 2023-2-12 17:48 编辑答题结束,当然你也可以继续答题,我也可以给你分数与奖励{:10_256:}
成都 第2届三国之战 C++答题卡
一,选择题(50分)
1. 以下的排序算法中,最坏时间复杂度也是 O(n log n) 的是:
A. 拓扑排序 B. 快速排序C. 归并排序 D. 选择排序
2.若某个C++程序出现无限递归,那么程序运行大概率会()
A. 编译错误 B. 数组越界C. 栈溢出 D. 正常运行
3. main 函数可以返回 ()类型
A. unsigned int B. signed C. void D. long
4. 埃氏筛的时间复杂度是 ( )
A. O(n*n) B. O(n log n) C. O(n log log n) D. O(n)
5. abs 是 ()
A. 求绝对值函数 B. 求平方根函数 C. 将这个数转化为浮点数的函数 D. 一个常量
二,阅读程序题(100分)
(1)
已知有以下程序:
#include <bits/stdc++.h>
using namespace std;
int n, m, t;
int solve(int i, int j) {
return (j ? solve(j, i % j) : i);
}
int main() {
scanf("%d", &t);
while (t--) {
scanf("%d%d", &n, &m);
printf("%d\n", solve(n, m));
}
}
1. 该程序的时间复杂度是:
A. O(tn) B. O(t) C. O(t log nm) D. O(t log n)
2. while(t--) 改成 for(int i=1;i<=t;i++)对程序没有任何影响
A. 正确B.出现编译错误 C.出现运行时错误D.仅影响输出结果
3. 这个程序可以求出()
A. 一元二次方程的根 B. 最小公倍数 C.最大公因数 D.最小公因数
4. 若输入为 1 0 5,程序输出()
A. 除零错误 B. 1 C. 0 D. 5
5. 若输入为 3 101 1111 93 10007 6481 4678, 输出的数字之和是()
A. 100 B. 103 C. 203 D. 196
(2)
#include <cstdio>
#include <iostream>
using namespace std;
int n, cnt;
bool q, col, lx, rx;
void dfs(int i) {
if (i == n + 1) {
for (int j = 1; j <= n; ++j)
for (int k = 1; k <= n; ++k)
if (q) {
cout << k << ' ';
break;
}
puts("");
++cnt;
return;
}
for (int j = 1; j <= n; ++j) {
if (!col && !lx && !rx) {
col = lx = rx = q = 1;
dfs(i + 1);
col = lx = rx = q = 0;
}
}
}
int main() {
scanf("%d", &n);
dfs(1);
return 0;
}
1. 该程序只能输入 () 及以下的数字,否则会发生数组越界
A. 13 B. 30 C. 12 D. 29
2. 这个程序只能输入()个数字
A. 0 B. 1 C. 2 D. 3
3. n = 8 时,这个程序会输出 ()行
A. 34 B. 108 C. 342 D. 92
4. 请问哪一行去掉也不会影响结果?
A. 14行的 break B. 18行的return C. 24行 D. ABC不能去掉
5. 这个代码用到的主要思想(算法)是
A. Dijkstra B. 递推 C. 深度优先搜索/回溯 D. 二分
三,完善程序题(50分)
01背包:有 n 种物品要放到一个袋子里,袋子的总容量为 m,第 i 种物品的体积为 vi,把它放进袋子里会获得 wi 的收益,每种物品至多能用一次,问如何选择物品,使得在物品的总体积不超过 m 的情况下,获得最大的收益?请求出最大收益。
输入格式:第一行两个整数 n,m。接下来 n 行,每行两个整数 vi,wi。
输出格式:一个整数,表示答案。
请完善程序,使程序可以实现上面的功能:
#include <bits/stdc++.h>
using namespace std;
int n, m, v, w, f;
int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; ++i)
scanf("%d%d", &v, &w);
for (int i = 1; 1._____; ++i)
for (int j = m; 2._____; 3._____)
f = max(f, 4._____);
printf("%d", 5._____);
}
第一处应该填:
A.
i <= n
B.
i * i <= n
C.
i <= n + m
D.
i <= m
第二处应该填:
A.
j <= i
B.
j >= v
C.
j <= w
D.
j >= 1
第三处应该填:
A.
++j
B.
j += 2
C.
--j
D.
j -= 2
第四处应该填:
A.
f + w
B.
f] + w
C.
f + w]] + f]
D.
f] + w
第五处应该填:
A.
f
B.
f
C.
f
D.
f
static/image/hrline/1.gif
其他说明
答题卡格式建议类似于 :
AAAAA BBBBB CCCCC DDDDD
的形式,方便批改和填写
所有题均为个人原创,转载请注明出处
static/image/hrline/1.gif
题目更改通知
这里什么也没有
四国排行榜
国家|总分|参加人数|平均分
魏国|190|1|190
蜀国|50|1|50
吴国|0|0|0
燕国|0|0|0
总排行榜
排名|名字|得分|国家
1|ExiaGN001|190|魏国 默认分组
2|sfqxx|50|蜀国 默认分组
答案
**** Hidden Message *****
选手奖励
注:发放奖励方式由评分的方式,只有报名了奖励才有效
排名|前20%|前40%|前60%|前80%
奖励|8鱼币|5鱼币|3鱼币|2鱼币
只要参加了比赛,再奖励 2荣誉
最高得分者再附上【最佳答案】,并列者则按提交时间算
@tommyyu @KeyError @柿子饼同学 欢迎来答题{:10_256:}
@hveagle 请验收{:10_256:} 为为啥不是PYthon{:10_306:} sfqxx 发表于 2023-2-8 19:04
为为啥不是PYthon
额,python 场题目因为有争议,所以延期{:10_282:}
实际上是 hveagle 忘了出题,C++ 场我出,Python 场是 hveagle 出…… zhangjinxuan 发表于 2023-2-8 19:06
额,python 场题目因为有争议,所以延期
实际上是 hveagle 忘了出题,C++ 场我出,Python 场 ...
6 这种太难,我还是蒙吧{:10_282:}
您好像没设置仅作者可见 能修改几次? 本帖最后由 sfqxx 于 2023-2-12 17:54 编辑
选择题:1.C 2.B 3.A 4.C 5.A
二(1):1.A 2.C 3.A 4.D 5.B
1. C 2. B 3. A4. C 5.D
1.D 2.C 3.C4.D 5.B
先这么写着(不提交) 此帖仅作者可见 本帖最后由 ExiaGN001 于 2023-2-13 08:19 编辑
选择题3有锅,紫菜罢(无慈悲
实测windows10 x64+intel i7(CPU)+GCC+Cpp98标准的情况下无论返回值类型是signed ,int 亦或是long ,main都可正常运行
而旧标准中void main也是对的
所以这道题多解了 CCBCA
DACDB
CBDDC
ABCDA 来顶
页:
[1]