CSP-J2026初赛模拟卷一
关于
1天前
更新
0
频次
52
题目数
分享
有问题?问问AI帮你修改 改主题:如咖啡问卷改为奶茶问卷
Q1:姓名
Q2:1. 在标准ASCII码表中,已知英文字母c的ASCII码十进制表示是99,那么英文字母x的ASCII码十六进制表示是?
Q3:2. 以下关于CSP与GESP的描述正确的是?
Q4:3. 以下可以用作C++程序中的变量名的是?
Q5:4. 以下不属于桌面或者手机操作系统的是?
Q6:5. C++中使用输入和输出函数cin和cout会用到哪个头文件?
Q7:6. 寻找最短路径的广度优先搜索算法经常用到的数据结构是?
Q8:7. 以下哪个域名后缀不属于中华人民共和国管辖?
Q9:8. 下列排序算法中,平均情况下时间复杂度最小的是?
Q10:9. 关于计算机网络,下面的说法中正确的是?
Q11:10. 序列(7,5,1,12,3,6,9,4)的逆序对有多少个?
Q12:11. 下列属于图像文件格式的是?
Q13:12. 不管P、Q如何取值,以下逻辑表达式中取值恒为假的是?
Q14:13. 树的根结点的高度为1,某完全二叉树有2025个结点,其高度是?
Q15:14. 现有9个苹果,要放入5个不同的盘子,允许有的盘子中放0个苹果,则不同的放法共有多少种?
Q16:15. G是一个非连通无向图(没有重边和自环),共有36条边,则该图至少有多少个顶点?
:二、阅读程序题(共 17 题,判断题正确填√,错误填 ×;判断题每题 1.5 分,选择题每题 3 分,特殊标注除外)
:(1)程序如下#include using namespace std;using i64 = long long;int popcount(i64 x) { int res = 0; while (x) { if (x & 1 == 1) res++; x = 1; } return res;}int calc(i64 x) { int sum = 0; for (i64 i = 1; i = x; i++) sum += popcount(i); return sum;}int sum(i64 l, i64 r) { return calc(r) - calc(l);}int main() { i64 l, r; cin l r; cout calc(l) sum(l, r) endl; return 0;}
Q17:16. 判断题:若程序输入为5 8,则程序输出7 6。( )
Q18:17. 判断题:若将第11行中的符号改为^符号,程序输出结果一定不会改变。( )
Q19:18. 判断题:若将头文件#include 改成#include ,程序仍能正常运行。( )
Q20:19. 选择题:若输入为1 12,则输出是什么?( )
Q21:20. 选择题:程序中的sum函数实现了什么功能?( )
:(2)程序如下#include using namespace std;const int inf = 0x3f3f3f3f;int solve(vector& cur) { int n = cur.size(); vector dp(n + 1, vector(n + 1, inf)); for (int i = 0; i = n; i++) dp[0][i] = dp[i][0] = 0; for (int i = 1; i = n; i++) dp[i][i] = cur[i - 1]; for (int i = 1; i = n; i++) for (int j = 1; j = n; j++) if (i != j) dp[i][j] = min(dp[i][j], dp[i - 1][j] + dp[i][j - 1]); int ans = 0; for (int i = 1; i = n; i++) ans = max(ans, dp[n][i]); return ans;}int main() { int n; cin n; vector cost(n); for (int i = 0; i n; i++) cin cost[i]; cout solve(cost) endl; return 0;}
Q22:21. 判断题:若输入为3 1 2 3,则输出为3。( )
Q23:22. 判断题:计算dp数组的时间复杂度为O(n²)。( )
Q24:23. 判断题:若将第28行改为vector cost(n+1),则当输入3 1 2 3时,solve函数中的n=3。( )
Q25:24. 选择题:当输入的cost数组为{4,0,0,5,6}时,程序的输出为?( )
Q26:25. 选择题:若将第17行改为dp[i][j] = min(dp[i][j], dp[i-1][j] - dp[i][j-1]),则当输入的cost数组为{4,0,0,5,6}时,程序的输出为?( )
Q27:26. 选择题:当输入的cost数组为{4,0,0,5,6}时,在solve函数中,dp[2][3]的值为?( )
:(3) 程序如下#includeusing namespace std;int func(int a, int b) { if (a == 0) return b; if (b == 0) return a; return a + func(b, a % b);}int main() { int x, y; cin x y; cout func(x, y) endl; return 0;}
Q28:27. 判断题:当输入为2 3时,程序的输出为5。( )
Q29:28. 判断题:若输入只有一个为0,则程序的输出为输入的另一个数字。( )
Q30:29. 判断题:当输入为6 8时,func函数将会被进入4次。( )
Q31:30. 选择题:当输入为6 8时,程序的输出为?( )
Q32:31. 选择题:当输入为3 5时,func函数的调用顺序是?( )
Q33:32. 选择题:若将第10行的代码改为return a + func(b, a - b),则当输入为3 5时,得到的输出为?( )
: 三、完善程序题(共10题,单选题,每小题3分)
:(1)题目描述: 给定一个整数数组colors和一个整数k,其中colors表示一个由红色瓷砖(1)和蓝色瓷砖(0)组成的环。环中连续k块瓷砖的颜色如果是交替颜色(除了第一块和最后一块瓷砖以外,中间瓷砖的颜色与它左边和右边瓷砖的颜色都不同),则称为交替组。请找出交替组的个数。
:#include #include ①using namespace std;int main() { int n, k; cin n k; vector colors(n); for (int i = 0; i n; i++) cin colors[i]; int ans = 0, cnt = ②; for (int i = 0; i ③; i++) { if (i 0 && ④) cnt = 0; cnt++; ans += (⑤ && cnt = k); } cout ans endl; return 0;}
Q34:33. ①处应填?( )
Q35:34. ②处应填?( )
Q36:35. ③处应填?( )
Q37:36. ④处应填?( )
Q38:37. ⑤处应填?( )
:(2)题目描述: 在国际象棋中,马的移动为“L”形(垂直2格+水平1格或水平2格+垂直1格)。马只能站在电话垫的数字单元格上(电话垫布局:1 2 3;4 5 6;7 8 9;* 0 #从任意数字单元格开始,执行n-1次移动可获得长度为n的号码,计算这样的数字串有多少个(结果对10⁹+7取模)。
:#include using namespace std;const int mod = 1E9 + 7;vector pos = { {4,6}, {6,8}, {7,9}, {4,8}, {0,3,9}, ①, {0,1,7}, {2,6}, {1,3}, {2,4}};int main() { int n; cin n; vector dp(10, vector(n + 1, 0)); for (int i = 0; i 10; i++) ② = 1; for (int j = 2; j = n; j++) { for (int i = 0; i 10; i++) { for (int k = 0; k pos[i].size(); k++) { dp[i][j] += dp[③][j - 1]; ④; } } } int ans = 0; for (int i = 0; i 10; i++) { ⑤; ans %= mod; } cout ans endl; return 0;}
Q39:38. ①处应填?( )
Q40:39. ②处应填?( )
Q41:40. ③处应填?( )
Q42:41. ④处应填?( )
Q43:42. ⑤处应填?( )
联系我们
问卷网公众号