2026年信奥赛C++普及组csp-j初赛模拟卷(二)【文末附答案和解析】

📅 2026/8/18 3:57:17
2026年信奥赛C++普及组csp-j初赛模拟卷(二)【文末附答案和解析】
2026年信奥赛C普及组csp-j初赛模拟卷二【文末附答案和解析】一、单项选择题共15题每题2分共计30分每题有且仅有一个正确选项在C中用于定义常量即其值在初始化后不能被修改的关键字是 。A.constB.typedefC.staticD.struct二进制数( 1101.101 ) 2 (1101.101)_2(1101.101)2​转换为十进制数结果是 。A. 13.625B. 13.5C. 11.625D. 11.5阅读以下代码若输入为8则输出为 。intn,ans0;cinn;while(n0){ansn%2;n/2;}coutans;A. 1B. 2C. 3D. 4在一个长度为 n 的有序数组中使用二分查找算法查找一个元素其时间复杂度为 。A. O(1)B. O(log n)C. O(n)D. O(n log n)有4个不同颜色的球放入3个不同的盒子中每个盒子至少放一个球则不同的放法有 种。A. 24B. 36C. 72D. 81以下关于C中stack容器的说法正确的是 。A.stack支持随机访问迭代器B.stack的底层实现默认基于dequeC.stack的pop()操作会返回栈顶元素D.stack是先进先出FIFO的数据结构若定义int a[5] {2, 4, 6, 8, 10}; int *p a 3;则*(p - 2)的值是 。A. 2B. 4C. 6D. 8在C中以下哪个是合法的标识符 。A.2ndPlaceB._privateC.intD.my-var已知一个简单无向图有 6 个顶点从顶点 1 开始进行深度优先遍历DFS得到的遍历序列为1, 2, 4, 3, 5, 6。下列关于该图的说法中一定正确的是 。A. 图中一定存在边 (2,4)B. 图中一定存在边 (4,3)C. 顶点 3 和顶点 5 之间一定有边直接相连D. 该图一定是连通图对于递归函数f(n)其定义如下f ( 0 ) 0 , f ( 1 ) 1 , f ( n ) f ( n − 1 ) 2 × f ( n − 2 ) ( n ≥ 2 ) f(0)0, \quad f(1)1, \quad f(n)f(n-1)2 \times f(n-2) \ (n \ge 2)f(0)0,f(1)1,f(n)f(n−1)2×f(n−2)(n≥2)则f(6)的值为 。A. 5B. 8C. 13D. 21在C中表达式(6 ^ 4) (6 4)的值是^按位异或按位与 。A. 2B. 4C. 6D. 8以下排序算法中在最坏情况下时间复杂度为 O(n²) 且稳定的是 。A. 冒泡排序B. 快速排序C. 选择排序D. 归并排序一个栈的入栈序列为 1, 2, 3, 4以下哪个出栈序列是不可能的 。A. 1, 2, 3, 4B. 2, 1, 4, 3C. 3, 2, 1, 4D. 3, 4, 1, 2某二叉树的前序遍历序列为ABDEGCFH中序遍历序列为DBGEACFH则其后序遍历序列是 。A.DGEBHFCAB.DGEBFHCAC.DGEBACHFD.DGEBHCFA已知后缀表达式5 3 8 2 / -的值为 。A. -2B. 0C. 4D. 6二、阅读程序题共3大题选择题每题3分判断题每题1.5分共计40分第1题阅读以下程序回答 16~20 题。#includeiostreamusingnamespacestd;intcalc(intn){intres0;for(inti1;in;i){intxi;while(x0){if(x%105)res;x/10;}}returnres;}intmain(){intn;cinn;coutcalc(n)endl;return0;}16. 判断题1.5分若输入10程序输出1。 17. 判断题1.5分若输入50程序输出6。 18. 判断题1.5分函数calc的时间复杂度为 O(n log n)。 19. 选择题3分若输入100程序输出 。A. 10B. 19C. 20D. 2120. 选择题3分该程序的功能是 。A. 统计 1 到 n 中数字 5 出现的次数B. 统计 1 到 n 中能被 5 整除的数的个数C. 统计 1 到 n 中各位数字之和为 5 的数的个数D. 计算 1 到 n 的累加和中包含 5 的个数第2题阅读以下程序回答 21~26 题。#includeiostreamusingnamespacestd;intmain(){inta[100],n;cinn;for(inti0;in;i)cina[i];for(inti0;in-1;i){for(intj0;jn-1-i;j){if(a[j]a[j1]){intta[j];a[j]a[j1];a[j1]t;}}}for(inti0;in;i)couta[i] ;return0;}21. 判断题1.5分若输入3和3 1 2程序输出1 2 3。 22. 判断题1.5分该程序实现的是选择排序。 23. 判断题1.5分该程序的时间复杂度为 O(n²)。 24. 选择题3分该程序的功能是 。A. 求数组最大值B. 对数组进行升序排序C. 对数组进行降序排序D. 反转数组25. 选择题3分若输入4和4 2 5 1程序输出 。A.1 2 4 5B.5 4 2 1C.2 4 1 5D.4 2 5 126. 选择题3分若将第 6 行的a[j] a[j 1]改为a[j] a[j 1]输入4和4 2 5 1程序输出 。A.1 2 4 5B.5 4 2 1C.2 4 1 5D.4 2 5 1第3题阅读以下程序回答 27~32 题。#includeiostreamusingnamespacestd;inta[100],n;voiddfs(intstep,intsum){if(stepn){coutsum ;return;}dfs(step1,suma[step]);dfs(step1,sum);}intmain(){cinn;for(inti1;in;i)cina[i];dfs(1,0);return0;}27. 判断题1.5分若输入2和1 2程序将输出 4 个数。 28. 判断题1.5分该程序等价于输出数组 a 的所有排列。 29. 判断题1.5分若 n10程序输出的最后一个数一定是 0。 30. 选择题3分若输入3和1 2 3程序输出中数值3出现了几次 A. 1B. 2C. 3D. 431. 选择题3分该程序的时间复杂度是 。A. O(n)B. O(n log n)C. O(2 n 2^n2n)D. O(n!)32. 选择题3分该程序的功能是 。A. 计算数组元素之和B. 输出数组所有子集的元素和C. 输出数组的所有排列D. 输出数组所有组合的和三、完善程序题共2大题每空3分共计30分一二分查找给定一个长度为 n 的非降序数组 a 和一个目标值 x求数组中第一个大于等于 x的元素的位置位置从 1 开始。如果不存在输出 n1。#includeiostreamusingnamespacestd;inta[1005],n,x;intmain(){cinn;for(inti1;in;i)cina[i];cinx;intl1,rn1;while(__①__){intmid(lr)/2;if(__②__)rmid;else__③__;}cout__④__endl;return0;}33. ①处应填 A.l rB.l rC.l rD.l r34. ②处应填 A.a[mid] xB.a[mid] xC.a[mid] xD.a[mid] x35. ③处应填 A.l mid 1B.r mid - 1C.l midD.r mid36. ④处应填 A.lB.rC.l - 1D.r 1二数字反转判溢出给定一个整数n可能为负数将其各位数字反转反转后去掉前导零。如果反转后的数超出了 32 位有符号整数的范围− 2 31 , 2 31 − 1 -2^{31}, 2^{31}-1−231,231−1则输出Overflow否则输出反转后的数。例如-380→-831230→3210→0-2147483648→Overflow因为8463847412超出范围。#includeiostream#includeclimitsusingnamespacestd;intmain(){longlongn;cinn;boolnegfalse;if(__①__){negtrue;n-n;}longlongans0;while(__②__){intdigitn%10;if(__③__){coutOverflowendl;return0;}if(__④__){coutOverflowendl;return0;}ansans*10digit;n/10;}if(__⑤__){cout0endl;return0;}if(neg)cout-;coutansendl;return0;}37. ①处应填 A.n 0B.n 0C.n 0D.neg38. ②处应填 A.n 0B.n ! 0C.n 0D.n 039. ③处应填 A.ans INT_MAX / 10B.ans INT_MAX / 10C.ans INT_MAX / 10D.ans INT_MAX / 1040. ④处应填 A.ans INT_MAX / 10 digit 7B.ans INT_MAX / 10 digit 7C.ans INT_MAX / 10 digit 7D.ans ! INT_MAX / 1041. ⑤处应填 A.n 0B.ans 0C.n 0 ans 0D.n 0 || ans 0参考答案与题解一、单项选择题第1题Aconst用于定义常量其值在初始化后不能被修改。第2题A整数部分(1101)_2 1×2³ 1×2² 0×2¹ 1×2⁰ 8401 13。小数部分(0.101)_2 1×2⁻¹ 0×2⁻² 1×2⁻³ 0.500.125 0.625。合计 13.625。第3题A程序统计的是输入数字的二进制表示中1的个数。8的二进制为1000只有 1 个 1输出 1。第4题B二分查找每次将搜索范围缩小一半时间复杂度为 O(log n)。第5题B先分组再分配从4个球中选2个绑成一组有 C(4,2)6 种再将3组分配给3个不同盒子有 3! 6 种总数 6×636。第6题Bstack默认基于deque实现不支持随机访问pop()返回void。第7题Bp指向a[3]值为8p-2指向a[1]值为4。第8题B标识符只能由字母、数字、下划线组成且不能以数字开头不能是关键字。_private合法2ndPlace以数字开头int是关键字my-var含非法字符-。第9题DDFS 能访问所有顶点说明从顶点1出发可到达所有顶点因此该图一定是连通图。DFS序列中相邻顶点不一定有直接边故 A、B、C 不一定正确。第10题D计算f(2)12×01f(3)12×13f(4)32×15f(5)52×311f(6)112×521。第11题C6 ^ 4 2110 ^ 100 0106 4 4110 100 1002 4 6。第12题A冒泡排序最坏 O(n²) 且稳定。快速排序最坏 O(n²) 但不稳定选择排序不稳定归并排序稳定但最坏 O(n log n)。第13题D序列3,4,1,23出栈后栈内为1,22在顶接着4要出栈但4还未入栈必须先入栈4再出栈4此时栈内为1,21不可能在2之前出栈故不可能。第14题A由前序ABDEGCFH知根为 A中序DBGEACFH分出左子树DBGE、右子树CFH。还原二叉树左子树前序BDEG中序DBGE根 B左 D右子树GE前序EG中序GE根 E左 G。后序为DGEB。右子树前序CFH中序CFH根 C右子树FH前序FH中序FH根 F右 H。后序为HFC。总后序左子树后序DGEB 右子树后序HFC 根 A DGEBHFCA。第15题C后缀表达式求值5 3 → 88 2 /→ 48 4 -→ 4。二、阅读程序题一16. 正确1~10中只有数字5本身含一个’5’。17. 正确5,15,25,35,45,50共6个’5’注意55不在范围内。18. 正确外层n次内层位数约log₁₀n故 O(n log n)。19. C1 100 1 ~ 1001100中个位为5有10个5,15,…,95十位为5有10个50~59共20个。20. A统计数字5出现的总次数。二21. 正确冒泡排序将3 1 2升序排列为1 2 3。22. 错误程序实现的是冒泡排序相邻比较交换不是选择排序。23. 正确双重循环时间复杂度 O(n²)。24. B对数组进行升序排序。25. A4 2 5 1经冒泡排序升序为1 2 4 5。26. B改为a[j] a[j1]后变为降序排序输出5 4 2 1。三27. 正确2个元素产生 2²4 个子集和。28. 错误输出的是子集和不是排列。29. 正确最后一个分支是所有元素都不选sum0。30. B数组 [1,2,3] 的子集和为0,1,2,3,3,4,5,6其中3出现2次{3}和{1,2}。31. C每个元素选/不选共 2ⁿ 个状态。32. B输出数组所有子集的元素和。三、完善程序题一二分查找33. A左闭右开区间[l, r)循环条件为l r。34. B寻找第一个 xa[mid] x时向左收缩。35. Aa[mid] x时向右搜索。36. A循环结束时 l 指向第一个 x 的位置。二数字反转37. A判断输入是否为负数。38. An 0时继续循环注意 n 已取绝对值。39. A若ans INT_MAX/10乘以10后必超范围。40. A若ans INT_MAX/10且当前数字大于7则溢出INT_MAX末位为7。41. C原数为0时n0 ans0应输出0。更多内容请关注专栏信奥赛C普及组csp-j初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转【秘籍汇总】完整csp信奥赛C学习资料1、csp/信奥赛C完整信奥赛系列课程永久学习https://edu.csdn.net/lecturer/7901 点击跳转2、CSP信奥赛C竞赛拿奖视频课https://edu.csdn.net/course/detail/40437 点击跳转https://edu.csdn.net/course/detail/41081 点击跳转3、csp信奥赛高频考点知识详解及案例实践CSP信奥赛C动态规划https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转CSP信奥赛C标准模板库STLhttps://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转信奥赛C提高组csp-s知识详解及案例实践https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转4、csp信奥赛冲刺一等奖有效刷题题解信奥赛C普及组CSP-J一等奖通关刷题题单及题解https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转信奥赛C普及组csp-j初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转信奥赛C提高组csp-s初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转5、GESP C考级真题题解GESP(C 一级二级三级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转GESP(C 四级五级六级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转GESP(C 七级八级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转· 文末祝福 ·#includebits/stdc.husingnamespacestd;intmain(){cout跟着王老师一起学习信奥赛C;cout 成就更好的自己 ;cout csp信奥赛一等奖属于你! ;return0;}