资源简介 2025-2026学年第二学期高教版《信息技术》同步练习第5单元 感受程序魅力——程序设计入门5.3 运用典型算法(考试时间:90分钟 试卷满分:100分)注意事项:1.答题前,考生务必用黑色字迹的签字笔或钢笔将自己的准考证号、姓名、考场号和座位号填写在答题卡上,用2B铅笔在“考场号”和“座位号”栏相应位置填涂自己的考场号和座位号,将条形码粘贴在答题卡“条形码粘贴处”。2.作答选择题时,选出每小题答案后,用2B铅笔把答题卡上对应题目选项的答案信息点涂黑:如需改动,用塑料橡皮擦干净后,再选涂其他答案,答案不能答在试卷上。3.非选择题必须用黑色字迹的签字笔或钢笔作答,答案必须写在答题卡各题目指定区域内相应位置上:如需改动,先划掉原来的答案,然后再写上新的答案;不准使用铅笔和涂改液。不按以上要求作答的答案无效。4.考生必须保持答题卡的整洁.考试结束后,将试卷和答题卡一并交回。一、单项选择题:本题共15个小题,每小题3分,共45分。每小题只有一个选项符合题目要求。1. 下列选项中,属于中职阶段重点掌握的典型算法是( )A. 神经网络算法 B. 排序算法 C. 深度学习算法 D. 人工智能算法2. 算法的基本特征不包括( )A. 有穷性 B. 不确定性 C. 可行性 D. 输入输出3. 用“冒泡排序”对一组数据进行升序排列时,核心思路是( )A. 直接选取最小值放在最前面 B. 相邻两个数据比较,将较大的数向后移动 C. 随机打乱数据后重新排列 D. 按数据出现次数排序4. 下列场景中,适合运用“枚举算法”解决的是( )A. 计算两个数的和 B. 找出100以内的所有偶数 C. 对10个数据进行排序 D. 判断一个数是否为质数5. 关于算法与程序的关系,下列说法正确的是( )A. 算法就是程序 B. 算法是程序的核心,程序是算法的具体实现 C. 程序不需要算法支撑 D. 算法不能通过程序实现6. 下列关于枚举算法的说法,错误的是( )A. 枚举算法又称穷举算法 B. 枚举算法需要逐一验证所有可能的情况 C. 枚举算法适合解决范围较小的问题 D. 枚举算法效率极高,适合处理大量数据7. 用冒泡排序对数据[3,1,4,2]进行升序排列,第一次排序后的数据结果是( )A. [1,3,2,4] B. [1,3,4,2] C. [3,1,2,4] D. [3,1,4,2]8. 下列算法中,适合用于“判断一个数是否为质数”的是( )A. 冒泡排序 B. 枚举算法 C. 快速排序 D. 二分查找9. 算法的有穷性是指( )A. 算法的步骤必须有限,执行完有限步骤后能结束 B. 算法只能处理有限的数据C. 算法的代码长度有限 D. 算法只能被执行有限次10. 下列关于冒泡排序的说法,正确的是( )A. 冒泡排序只能进行升序排列 B. 冒泡排序的核心是“两两比较,逐步归位”C. 冒泡排序效率比所有排序算法都高 D. 冒泡排序不需要循环语句实现11. 运用枚举算法解决问题时,首要步骤是( )A. 编写代码 B. 明确枚举的范围和判断条件 C. 调试程序 D. 设计界面12. 下列程序片段中,体现枚举算法思想的是( )A. a = 5 b = 3 print(a+b)B. for i in range(1,101): if i%2 == 0: print(i)C. list1 = [5,2,7] list1.sort() print(list1)D. x = int(input()) if x%2 == 0: print("偶数")13. 二分查找算法的核心优势是( )A. 适合未排序的数据 B. 查找效率高,无需逐一比对C. 实现简单,无需判断条件 D. 适合所有数据查找场景14. 下列关于典型算法的应用,说法正确的是( )A. 排序算法只能用于数字排序 B. 枚举算法可以解决所有问题C. 不同的问题可以选择不同的算法解决 D. 算法越复杂,解决问题的效率越高15. 运用算法解决问题的基本流程是( )A. 设计算法→分析问题→编写程序→调试运行B. 分析问题→设计算法→编写程序→调试运行C. 编写程序→设计算法→分析问题→调试运行D. 分析问题→编写程序→设计算法→调试运行二、判断题:本题共15个小题,每小题1分,共15分。对的打“√”,错的打“×”。1. 算法是解决问题的步骤和方法,是程序设计的核心。( )2. 冒泡排序是一种典型的排序算法,只能对数字进行排序。( )3. 枚举算法的核心是逐一列举所有可能的情况,逐一验证是否符合条件。( )4. 算法具有可行性,即算法的每一步都能被计算机执行。( )5. 二分查找算法适合对未排序的数据进行查找。( )6. 运用算法解决问题时,同一问题只能选择一种算法。( )7. 冒泡排序过程中,每一轮排序都会将一个最大的数“冒泡”到末尾。( )8. 枚举算法效率较低,适合解决数据范围较小的问题。( )9. 算法不需要输入和输出,只要有处理步骤即可。( )10. 判断一个数是否为质数,可通过枚举该数的所有因数来实现。( )11. 排序算法的核心目的是将数据按一定顺序(升序或降序)排列。( )12. 程序编写完成后,算法就无法修改。( )13. 枚举算法和冒泡排序都是中职阶段必须掌握的典型算法。( )14. 算法的有穷性意味着算法的执行时间必须很短。( )15. 运用典型算法解决问题,能提高程序的可读性和效率。( )三、业务题:本题共2个小题,每小题20分,共40分。1. 结合中职生学习生活,运用枚举算法设计一个简单程序,实现“找出100以内所有能被3整除且个位数为6的整数”的功能(要求使用Python语言相关思路)。要求:(1)明确该问题适合使用枚举算法的原因;(6分)(2)写出该问题的算法步骤(用文字描述,体现枚举思想);(6分)(3)编写该程序的Python代码,并标注每一行代码的作用;(8分)2. 运用冒泡排序算法,设计一个简单程序,实现“对5个整数进行升序排列”的功能(要求使用Python语言相关思路)。要求:(1)说明冒泡排序算法的核心思路;(6分)(2)写出冒泡排序的算法步骤(用文字描述,以[5,3,8,1,2]为例);(6分)(3)编写该程序的Python代码,并说明调试时需要注意的问题(至少2点)。(8分)参考答案一、单项选择题(每小题3分,共45分)1.B 2.B 3.B 4.B 5.B 6.D 7.A 8.B 9.A 10.B 11.B 12.B 13.B 14.C 15.B二、判断题(每小题1分,共15分)1.√ 2.× 3.√ 4.√ 5.× 6.× 7.√ 8.√ 9.× 10.√ 11.√ 12.× 13.√ 14.× 15.√三、业务题(每小题20分,共40分)1. (1)适合使用枚举算法的原因:该问题的范围明确(100以内的整数),范围较小,且需要逐一验证每个整数是否满足“能被3整除且个位数为6”的条件,符合枚举算法“逐一列举、逐一验证”的核心思想,适合用枚举算法解决。(6分,言之有理即可)(2)算法步骤:步骤1:明确枚举范围为1~99(100以内的整数);(1.5分)步骤2:逐一列举范围内的每个整数;(1.5分)步骤3:对每个列举的整数,判断两个条件是否同时成立:① 能被3整除(整数÷3余数为0);② 个位数为6(整数%10 == 6);(2分)步骤4:若两个条件同时成立,输出该整数;若不成立,跳过该整数;(0.5分)步骤5:列举完所有整数后,程序结束。(0.5分)(3)Python代码及注释:枚举100以内(1~99)的所有整数for num in range(1, 100):判断当前整数是否能被3整除且个位数为6if num % 3 == 0 and num % 10 == 6:满足条件,输出该整数print(num)(每一行代码及注释2分,代码正确、注释合理即可得分,核心体现枚举思想)2. (1)冒泡排序算法的核心思路:通过相邻两个数据的两两比较,将较大的数逐步“冒泡”到数据序列的末尾,较小的数逐步向前移动;(3分)重复上述比较和移动过程,直到所有数据按升序(或降序)排列完成,核心是“两两比较、逐步归位”。(3分)(2)算法步骤(以[5,3,8,1,2]为例,升序排列):步骤1:定义待排序的数组[5,3,8,1,2],确定排序轮次(数组长度-1轮,共4轮);(1分)步骤2:第一轮排序:两两比较相邻元素,5和3比较,5>3,交换位置→[3,5,8,1,2];5和8比较,5<8,不交换;8和1比较,8>1,交换→[3,5,1,8,2];8和2比较,8>2,交换→[3,5,1,2,8],第一轮结束,最大数8归位;(2分)步骤3:第二轮排序:对前4个元素[3,5,1,2]两两比较,3和5不交换,5和1交换→[3,1,5,2,8],5和2交换→[3,1,2,5,8],第二轮结束,第二大数5归位;(1分)步骤4:第三轮排序:对前3个元素[3,1,2]两两比较,3和1交换→[1,3,2,5,8],3和2交换→[1,2,3,5,8],第三轮结束,第三大数3归位;(1分)步骤5:第四轮排序:对前2个元素[1,2]比较,不交换,排序完成,最终结果为[1,2,3,5,8];(0.5分)步骤6:程序结束。(0.5分)(3)Python代码及调试注意事项:代码:定义待排序的整数数组nums = [5, 3, 8, 1, 2]确定冒泡排序的轮次(数组长度-1)for i in range(len(nums)-1):每一轮比较相邻元素,将较大数冒泡到末尾for j in range(len(nums)-1 - i):两两比较,若前一个数大于后一个数,交换位置if nums[j] > nums[j+1]:nums[j], nums[j+1] = nums[j+1], nums[j]输出排序后的数组print("升序排列后的数组:", nums)(代码6分,逻辑正确、能实现冒泡排序功能即可)调试注意事项:① 测试不同的整数数组(如包含重复数字、已排序数组),检查排序结果是否准确;(1分)② 注意循环轮次和内层循环的范围,避免出现循环次数过多或过少,导致排序失败;(1分) 展开更多...... 收起↑ 资源预览