4月选择题解析
一、单选题解析
1. 适合使用枚举算法解决的问题
答案:C. 数据范围小且无规律
解析:枚举算法适用于数据规模较小且没有明显规律的问题。当数据范围大时,枚举会非常低效;当数据具有单调性或需要快速近似解时,通常有更好的算法选择。
2. 二分算法的时间复杂度
答案:B. O(log n)
解析:二分查找每次都将搜索范围减半,因此其时间复杂度为对数级O(log n)。
3. 纸张对折4次后的折痕数
答案:C. 15
解析:每次对折都会在上次的基础上增加2^(n-1)条新折痕。4次对折总折痕数为1+2+4+8=15。
4. 杨辉三角第5行第3列的值
答案:B. 6
解析:杨辉三角第5行为1 4 6 4 1,第3列是6(行列从1开始计数)。
5. 适合用二分算法解决的问题
答案:D. 在递增数组中查找某元素
解析:二分查找要求数据必须有序,因此最适合在递增数组中查找元素。
二、代码阅读题解析
6-10题:统计特定数字的程序
6. 判断代码功能
答案:B. 错误
解析:代码统计的是能被2或3整除的数,不是同时。
7. 输入n=6时的输出
答案:A. 正确
解析:1-6中符合条件的数是2,3,4,6,共4个。
8. 变量声明位置影响
答案:B. 错误
解析:全局变量和局部变量声明位置不同会影响作用域,但在此简单程序中不会影响执行结果。
9. 输入n=12时的输出
答案:C. 8
解析:1-12中符合条件的数是2,3,4,6,8,9,10,12,共8个。
10. 代码时间复杂度
答案:C. O(n)
解析:单层循环从1到n,时间复杂度为线性O(n)。
11-15题:二分查找程序
11. 输入8时的输出
答案:B. 错误
解析:数组中有8,位于索引4(从0开始),应输出4。
12. 输入7时的输出
答案:A. 正确
解析:数组中无7,应输出初始值-1。
13. 修改右边界后输入15
答案:D. 输出-1
解析:右边界改为6后无法访问索引7的元素15,查找失败返回-1。
14. 删除break后输入7
答案:C. 输出-1
解析:即使不break,最终仍会因查找失败返回-1。
15. 程序时间复杂度
答案:C. O(log n)
解析:标准二分查找时间复杂度为O(log n)。
三、完形填空题解析
16-20题:回文素数程序
16. 数字反转计算
答案:A. rev * 10 + t % 10
解析:这是构建数字反转的标准方法。
17. 回文数判断
答案:A. rev == t
解析:应比较反转后的数字rev与原数字t(实际应为x,但代码中t已被修改)。
18. 素数判断条件
答案:C. i * i <= x
解析:只需检查到√x即可判断素数。
19. 跳过偶数
答案:B. i%2 == 0
解析:偶数(除2外)都不是素数,可以直接跳过。
20. 回文素数条件
答案:D. isRev(i) && isPrime(i)
解析:需要同时满足回文和素数两个条件。
21-25题:动态规划路径计数
21. 循环条件
答案:B. i<=n
解析:应遍历整个第一行。
22. 障碍判断
答案:C. vis[1][i]==1
解析:vis标记障碍,遇到障碍应终止初始化。
23. 第一列初始化
答案:A. f[i][1]==1
解析:无障碍时路径数初始化为1。
24. 转移条件
答案:D. vis[i][j]==0
解析:无障碍时才进行路径数累加。
25. 最终输出
答案:B. f[n][n]
解析:输出右下角的路径总数。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号