2.4常见算法的程序实现2024—2025学年高中信息技术人教/中图版(2019)必修1

2024-08-14
| 10页
| 97人阅读
| 0人下载

内容正文:

2.4 常见算法的程序实现2024—2025学年高中信息技术人教/中图版(2019)必修1 一、选择题 1.在枚举算法中,为了提高代码的可读性,我们通常需要(   ) A.使用更复杂的代码结构 B.使用更简单的代码结构 C.增加注释 D.减少注释 2.下列问题适合使用枚举算法解决的是(  ) A.计算已知半径圆的面积 B.超市打折方案 C.校园歌曲大赛的成绩排名 D.计算10000以内的所有的素数 3.下列与数学表达式对应的python表达式,正确的是( )。 A.( - b + math. sqrt (b * b – 4 * a * c)) /a * a B.- b + math. sqrt (b * b – 4 * a * c) /2*a C.( -b + math. sqrt (b * 2 – 4 * a * c)) /(2 * a) D.( -b + math. sqrt ( b * b – 4 * a * c)) / (2 * a) 4.下列问题中适合使用枚举算法解决的是( ) A.查找200以内所有能被7整除且个位数字是5的自然数 B.计算两个数的乘积 C.计算50个同学的平均分 D.设计主题班会 5.在枚举算法中,如何避免无效搜索(   ) A.增加约束条件 B.减少候选解的数量 C.优化算法的实现 D.以上都是 6.经过中国国家登山队的测量,2020年12月8日,中尼两国共同宣布了珠穆朗玛峰的最新高度为海拔8848.86米。现有一张白纸的厚度大约是0.08毫米,对折一次,厚度变0.16毫米,再对折一次,厚度变为0.32毫米,……,每对折一次,其厚度均变为对折前的两倍,假设这张纸足够大,可以对折任意次,那么这张纸至少对折多少次后,其厚度将超过珠穆朗玛峰的高度?以下是求解以上问题的程序片段,请你补全代码: 请选择适当的代码填入程序①处。(    ) A.while B.for C.output D.input 7.表示程序中的各步操作按出现的先后顺序执行的是(    ) A.选择结构 B.顺序结构 C.体系结构 D.循环结构 8.枚举算法通常适用于(   )问题。 A.规模较小 B.规模较大 C.具有多个解 D.没有解 9.有以下程序段: m=5 sum=0 while m<10: sum=sum+m m=m+1 print(sum) 程序运行后输出的结果为: (   ) A.45 B.26 C.56 D.35 10.小张同学编写了一个高考倒计时程序,该程序能够顺利运行,但运行的结果不正确,可能的原因是(   ) A.倒计时程序不符合语法规则 B.倒计时程序的算法有逻辑错误 C.倒计时程序设计窗口配置错误 D.倒计时程序的代码不够简洁 11.公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,用100文钱买100只鸡,其中公鸡、母鸡和小鸡都必须要有,问公鸡、母鸡和小鸡各多少只?解决该问题主要运用的算法思想是(   ) A.解析法 B.枚举法 C.递归 D.递推 12.打印出所有的“水仙花数”,所谓水仙花数是指一个三位数,它的每个位上的数字的3次幂之和等于它本身(例如:1^3+5^3+3^3=153),如果将所有的三位数一一列举,逐个判断,横线处应填(   ) for i in range( ):     b=i//100     s=i%100//10     g=i%10     if b**3+s**3+g**3==i:         print(i) A.100 to 999 B.100,999 C.100,1000 D.100 1000 13.如果一个四位数恰好等于它各位上数字的4次方之和,则这个数称为“玫瑰花”数。例如1634就是一个玫瑰花数:。如果要求算出所有的玫瑰花数,下列算法最合适的是(   ) A.解析法 B.排序法 C.枚举法 D.迭代法 14.列表lista中存储了若干个人的体重(单位:kg),下列Python程序段的功能是:输入体重key,统计体重不超过key的人数,最后输出统计结果。 lista=[65,55,41,46,55,49,19,45,62,76] count=0 key=int(input("please input key:")) for i in range(0,len(lista)):    if          :       count+=1 print("体重不超过",key,"的人数为:",count) 则程序中划线处的代码应为(  ) A.lista[i]>count B.lista[i]>=key C.lista[i]<key D.lista[i]<=key 15.有如下 VB 程序段: a(0) = 0 i = 1 Do While i <= 6   a(i) = Int(Rnd * 5) * 2 + 1   If Not flag(a(i)) Or a(i) > a(i - 1) Then     flag(a(i)) = True     i = i + 1   End If Loop 已知数组 flag 各元素的初值为 False,该程序段运行后,数组元素 a(1)到 a(6)的值可能为(    ) A.5,1,7,4,9,3 B.7,5,9,5,3,1 C.1,5,9,3,5,9 D.3,5,9,7,7,1 16.下列问题中适合使用解析算法解决的是(   ) A.找出区模考中所有满分同学的试卷 B.将10头小猪按体重由大到小的顺序进行排列 C.猜测一台笔记本电脑的价格 D.已知三角形的边长分别为a、b、c,求该三角形面积 17.在枚举算法中,以下哪种方法不能减少搜索空间(   ) A.增加约束条件 B.减少候选解的数量 C.使用更快的计算机 D.优化算法的实现 18.枚举算法的核心思想是(   ) A.逐个尝试所有可能的情况 B.从大到小尝试所有可能的情况 C.从小到大尝试所有可能的情况 D.随机尝试所有可能的情况 19.有如下程序段: Dim s(1 To 81) As Integer, i As Integer, j As Integer, c As Integer, temp As Integer c=0 : s(1) = 0 For i = 1 To 9 For j = 1 To i temp = s(j * i) s(j * i) = j * i If temp <> s(j * i) And s(j * i) Mod 9 = 0 Then c = c + 1 Next j Next i 该程序段运行后,变量 C 的值为( ) A.9 B.10 C.11 D.12 20.假定公鸡每只5元,母鸡每只3元,小鸡每只5角,每种鸡都要买,现有100元,要买100只鸡,间有多少种方案(百钱买百鸡),求解这个问题,最适合的算法是(    ) A.递归法 B.选代法 C.穷举法 D.解析法 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题考查枚举算法。在枚举算法中,为了提高代码的可读性,我们通常需要使用更简单的代码结构。简单的代码结构更容易理解和跟踪逻辑流程,降低理解代码的难度。故答案为:B。 2.D 【详解】本题考查的是枚举算法。枚举法就是按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能解是否是问题的真正解。计算10000以内的所有的素数,可以使用枚举算法。故应选D。 3.D 【详解】本题考查的是Python表达式。sqrt()求平方根,乘法运算符为“*”,除法为“/”,嵌套函数均使用小括号。表示为( -b + math. sqrt ( b * b – 4 * a * c)) / (2 * a)。 4.A 【详解】本题考查枚举算法相关内容。枚举算法通过列举问题所有可能的解,并逐一检查每个解是否满足问题的条件。分析四个选项,查找200以内所有能被7整除且个位数字是5的自然数,适合使用枚举算法解决。故本题答案是A选项。 5.D 【详解】本题考查枚举算法。为了避免在枚举过程中进行无效搜索,可以增加约束条件来限制候选解的范围、减少候选解的数量以减小搜索空间、优化算法的实现以提高搜索效率。故答案为:D。 6.A 【详解】本题考查的是Python的while循环。while语句格式: 当表达式的值为真时,执行循环体语句;当表达式值为假时,退出循环,执行循环体外的下一条语句(即while后面没有缩进的第一条语句)。当高度h小于珠穆朗玛峰的高度height,则继续对折,故本题应选A。 7.B 【详解】本题考查程序结构 顺序结构:表示程序中的各步操作按出现的先后顺序执行。故本题选B选项 8.A 【详解】本题考查枚举算法。枚举算法适用于规模较小的问题,因为当问题规模较大时,枚举所有可能的情况可能会导致计算量过大。故选A。 9.D 【详解】本题考查程序执行相关知识点 第一轮  m=5,sum=5 第二轮  m=6,sum=11 第二轮  m=7,sum=18 第二轮  m=8,sum=26 第二轮  m=9,sum=35 第二轮  m=10,退出循环 故本题选D 10.B 【详解】本题考查的知识点是程序调试相关知识。程序能够顺利运行,说明程序语法没有错,程序设计窗口配置正确,程序代码也正确。运行的结果不正确,可能的原因是程序的算法有逻辑错误,故答案为B选项。 11.B 【详解】本题考查枚举算法的应用。穷举法也叫枚举法,将问题的所有可能的答案一一列举,然后根据条件判断此答案是否合适,合适就保留,不合适就丢弃。百钱买百鸡,求解这个问题,最适合的算法是枚举法。故选B。 12.C 【详解】本题考查Python程序。三位数的所有可能的范围是100~999,将所有的三位数一一列举,逐个判断,条件语句中求出一个三位数的百位、十位、个位上的数字的三次方的和,两者相等,即所求的数。A选项,格式错误;B选项,只能取到100~998;D选项,不能用空格。故答案为:C。 13.C 【详解】本题考查算法相关内容。枚举算法是指在算法中采用搜索的方法,把各种可能的情况都考虑到,并对所得的结果逐一进行判断,过滤掉那些不符合要求的结果,保留那些符合要求的结果。解析算法是指能够找出表示问题的前提条件和结果之间的关系的数学表达式,并通过表达式的计算来实现问题的求解。排序法是将一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。迭代法是一类利用递推公式或循环算法通过构造序列来求问题近似解的方法。分析题意可知,要算出所有的玫瑰花数,需要对每个数据进行判断,枚举法可以实现该算法,故本题答案是C选项。 14.D 【详解】本题主要考查Python程序的执行与调试。体重存储在列表lista中,要统计体重不超过key的人数,则if条件为lista[i]<=key,故选项D正确。 15.C 【详解】本题考查VB程序相关的知识点 由语句“a(i)=Int(Rnd*5)*2+1”可知产生的随机数为1、3、5、7、9,故排除A选项。条件Not flag(a(i))表示数组元素a(i)未产生,a(i)>a(i-1)表示a(i)与前一个数形成升序,则a(i)能保留,否则重新生成随机数。B选项a(4)=5时,两个条件都不能满足。D选项a(5)=7时,两个条件都不能满足。 16.D 【详解】本题主要考查解析算法的应用。解析算法,即解析法(analysis algorithm)是指用解析的方法找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。已知三角形的边长分别为a、b、c,求该三角形面积,可以使用数学表达式计算求解,故本题选D选项。 17.C 【详解】本题考查枚举算法。减少搜索空间可以通过增加约束条件来限制候选解的范围,减少候选解的数量可以直接减少搜索空间,优化算法的实现可以提高搜索效率从而间接减少搜索空间。使用更快的计算机可以加速算法的执行,但不一定能减少搜索空间。故答案为:C。 18.A 【详解】本题考查枚举算法。枚举算法的核心思想是逐个尝试所有可能的情况,直到找到满足条件的解或遍历完所有情况。故选A。 19.A 【详解】本题考查数组、循环嵌套和枚举算法。外层共9次循环,第一次循环,s(j * i)=1*1=1;第二次循环,内层循环执行两次,s(j * i)的值分别为2、4;……;依次类推枚举s(j * i)的值如下图: temp <> s(j * i) And s(j * i) Mod 9 = 0 temp 记录的是 s(j * i)上一次被赋值的量,只有当上一次未被赋值,且能被 9 整除时 C 才能自增 1,因此由表中能被 9 整除的项总计 12 个,有 3 项重复,因此答案为 9 个。最后一行数据为 9 的 1,2,3,4……9 的倍数的枚举,涵盖了表中所有能被 9 整除的情况,由此也能直接得出结论 C 为 9, 选项A正确 20.C 【详解】本题考查的是穷举法。穷举法也叫枚举法,将问题的所有可能的答案一一列举,然后根据条件判断此答案是否合适,合适就保留,不合适就丢弃。百钱买百鸡,求解这个问题,最适合的算法是穷举法,选项C正确。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

2.4常见算法的程序实现2024—2025学年高中信息技术人教/中图版(2019)必修1
1
2.4常见算法的程序实现2024—2025学年高中信息技术人教/中图版(2019)必修1
2
2.4常见算法的程序实现2024—2025学年高中信息技术人教/中图版(2019)必修1
3
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。