1 solutions
-
2
一、单项选择题
【解析】 1.【考点:进制转换、ASCII码】字母Z的ASCII码十进制表示是90,那么字母B的十进制表示是66,转换为二进制是01000010。
2.【考点:CCF中学生系列竞赛常识】CSP和NOIP都是由中国计算机学会(CCF)主办的程序设计竞赛。CSP-J/S(非专业级软件能力认证)、NOIP(全国青少年信息学奥林匹克联赛 )。
3.【考点:C++程序中的标识符规则】private是C++中的关键字,不能用作标识符。C++程序中的标识符必须符合以下规则:由字母、数字、下划线组成;第一个字符必须是字母或下划线;不能是关键字或保留字;不能是空格、制表符等特殊字符。
4.【考点:系统类型 】UML是统一建模语言,IDE是集成开发环境,Database 是数据库。NOI 复赛测评机所用的Linux系统属于操作系统(0S,0perating System)。
5.【考点:二进制编码、内存计算】65 536=216,所以需要 16 个二进制位。
6.【考点:搜索算法】BFS 按层次遍历图或树的结点,首先访问起始结点,然后按照广度的顺序逐层访问其邻接结点。队列是一种先进先出(FIFO)的数据结构,非常适合在 BFS中用于按层次遍历的操作。每次从队列中取出一个结点,然后将其邻接结点加人队列,以确保按照广度优先的顺序进行遍历。
7.【考点:链表】在最坏情况下,需要遍历整个链表来查找关键字为k的元素。虽然链表是有序的,但是由于是单向链表,只能从头开始一个一个地遍历,直到找到目标元素或者遍历到链表的末尾。
8.【考点:排序算法】归并排序、快速排序和冒泡排序都是基于比较的排序算法。这些算法通过比较元素的大小来决定它们在最终排序列表中的位置。桶排序则是一种非比较排序算法。它通过将数组分到有限数量的桶里,然后对每个桶分别排序,最后把各个桶中的元素合并成一个有序数组。
9.【考点:计算机网络知识】A项说法错误,计算机可以脱离互联网正常运行。B项说法错误,192.168.0.1是C类IP地址。D项说法错误,接入互联网的计算机的IP地址仍然有一部分是IPV4地址。
10.【考点:哈希表】通过哈希计算选项A的6和17会有冲突,选项B的6的平方和17的平方有冲突,选项C的6的2倍和17的2倍有冲突,只有选项D正确。11.【考点:二进制转化】(27)16=(00100111)z,十六进制数中的每一位对应二进制数中的四位,因为16=24。
12.【考点:逻辑表达式】 A.如果A为真,B为真,则整个表达式为真。
B.如果B为真,那么不管A取什么值,表达式都有可能为真。
C.这个表达式恒为假,因为它同时要求A为真和A为假,这是不可能同时满足的条件。
D.这个表达式不总是假的,因为在某些A和B的值下它可以为真。
选项C是无论A和B取什么值都恒为假的表达式,是正确案。
13.【考点:二叉树】对于一棵二叉树来说,叶子结点的数目等于度数为2的结点数加 1。度数为2的结点是指具有左孩子结点和右孩子结点的结点。根据题目中的条件,叉树有16个结点同时有左孩子结点和右孩子结点,也就是说这棵二叉树中度数为2的结点数为 16。所以,叶子结点数目为16+1=17。
14.【考点:组合数学基础】分类讨论。(1)若无红色卡片,可以黄、蓝、绿三种颜色的卡片中每种颜色各选1张,即C(4,1)xC(4,1)xC(4,1)=4x4x4=64种,或者黄、蓝、绿三种颜色中选出两种颜色,某种颜色2张,另外一种颜色1张,即C(3,2)xC(2,1)x(4,2)xC(4,1)=3x2x6x4=144种。(2)如果有1张红色卡片,分两种情况讨论。如果其余两张卡片不同色,则有C(4,1)xC(3,2)xC(4,1)xC(4,1)= 192种;如果其余两张卡片同色,则有C(4,1)xC(3,1)xC(4,2)=4x3x6=72种。综上所述,所有情况的总排列次数是64+144+192+72=472种
15.【考点:图论】非联通无向图意味着至少一个结点空出来作为孤立点,其他7个结点的无向完全图的边数m=(n-1)xn/2,n是连通的顶点总数7。所以(7-1)x7/2 = 21。
二、阅读程序
(1)
【解析】
本题涉及求最大公约数和最小公倍数的算法以及相关的程序实现细节。
16.最大公约数定义:0和任何数的最大公约数是该数本身。0和2024的最大公约数为2024。
17.非零判断:程序中判断变量b是否为是必要的,因为0不能作为除数。
18.输入2.4和4.8,程序向下取整求2和4的最大公约数,实际输出2。
19.代码中未调用lcm函数。
20.直接求最大公约数可得。
21.int 的最大范围是,程序计算超出了范围,输出负数-1646172620。
(2)
本题涉及字符串转换。
22.输入字符串的长度大于128,数组s只接收前128个字符。这种处理并不一定导致运行错误,但可能不符合预期的字符串处理结果.
23.getline(cin,s)函数适用于处理string 类型的变量。若用于处理字符数组如char s[128],会引发编译错误。
24.' '的 ASCII值就是32,所以这两行代码等价的。
25.'Z'的 ASCII值就是90,所以这两行代码等价的。
26.大写字母会转换为下一个字母,然后转换为小写,小写字母和数字不变。
27.代入模拟可知选B,s[i]^=''表示异或上32,就是大写转换为小写,小写转换为大写。
(3)
【解析】
本题围绕一个模拟算法展开,考查对程序行为的理解和分析。
28.输入0时,程序能正确运行并得到输出值1,不会导致错误。
29.a[x]=0这一操作对程序的输出结果没有显著影响。
30.程序中使用的深度优先搜索(DFS)算法的时间复杂度为0(n!)。外加一个0(n)的循环,总的时间复杂度是0(n!*n)。
31.输人 20或者更大的正整数,会输出0。
32.代入模拟程序逐步计算可以得到 2。
33.代入模拟程序逐步计算可以得到 16。
34.猜想出计算规律,输出结果为pow(2,n-1),输出128需要输入 8。
完善程序
(1)
【解析】
本题探讨的是一个实现十进制到二进制转换并计算二进制表示中1的个数的程序
35.程序首先将输人的十进制数n赋值给变量 x,作为后续二进制转换的基础。
36.通过将十进制数n存放在x中,使用除以2的方法逐步转换为二进制数,并将结果存储到数组中。
37.根据题意短除法,十进制转换为二进制,所以x=x/2。
38.i的范围就是cnt位,所以是i<=cnt
39.sum++统计每个二进制数里面1的个数。
(2)
【解析】
程序实现了跳棋深度优先搜索,从某个起点跳到某个终点的连续最长跳步长度。a表示棋盘,vis统计点是否走过。dx,dy表示四个方向。
if(tx>0&&tx<=n&& ty>0&& ty<=n && vis[tx][ty]==0 && a[tx][ty]==0 && s!=1)
//碰壁,走过当前格子为0,两个0相连都不能走。40.搜索过程每次需要更新 ans,看从这个点出发最终到哪个终点的长度最长
41.搜索过程中进行条件判断,退出 while 循环并不退出 for 循环。
42.搜索过程中需要step+s,根据代码上下文可知需要加上跳的格子数量。
43.DFS典型的回溯过程,根据这个上下文,恢复到改变前。
44.vis[x][y]=1表示将起点访问标记为1。出发点被走过了,所以要单独写。
- 1
Information
- ID
- 370
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 9
- Tags
- (None)
- # Submissions
- 41
- Accepted
- 3
- Uploaded By