2025-2026学年第二学期高教版《信息技术》同步练习第5单元 感受程序魅力——程序设计入门5.3 运用典型算法

资源下载
  1. 二一教育资源

2025-2026学年第二学期高教版《信息技术》同步练习第5单元 感受程序魅力——程序设计入门5.3 运用典型算法

资源简介

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整除且个位数为6
if 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分)

展开更多......

收起↑

资源预览