2.4常见算法的程序实现培优练习2021—2022学年人教中图版(2019)必修1(含答案)

文档属性

名称 2.4常见算法的程序实现培优练习2021—2022学年人教中图版(2019)必修1(含答案)
格式 docx
文件大小 46.2KB
资源类型 教案
版本资源 中图版(2019)
科目 信息技术(信息科技)
更新时间 2022-02-17 23:28:57

图片预览

文档简介

2.4 常见算法的程序实现
一、选择题
1.以下适合用解析法解决的问题是()。
A.计算出租车费
B.求符合要求的三位正整数的“水仙花数”
C.将10个评委的打分按由大到小的顺序排序
D.找出一筐乒乓球质量不符合标准的球
2.某算法的部分流程图如图所示。执行这部分流程后,a,b 的值分别是( )
A.3,0 B.6, 0 C.3,3 D.6 , 3
3.关于枚举法,下列说法错误的是( )
A.枚举法的基本思想就是,根据问题的部分已知条件预估解的范围,并在此范围内对所有可能的情况进行逐一验证,直到找到满足已知条件的解为止
B.枚举范围的大小直接影响着枚举法的执行效率
C.枚举法,也称蛮力法或暴力搜索法,理论上利用这种方法可破解任何一种密码
D.枚举范围中的判定条件直接影响着枚举法的执行效率
4.某对分查找算法的VB程序段如下:
i=1:j=7
f=False
key=Val(Text1. Text)
Do While i<=j And Not f
m=(i+j)\2
If a(m)=key Then f=True
If a(m)>key Then i=m-1 Else i=m+1
Loop
List1. AddItem Str(i)+Str(j)+Str(m)
数组元素a(1)到a(7)的值依次为"23,42,58,66,77,83,98",运行上述程序段后,列表框List1中
显示的结果为"5 4 5",则文本框Text1中输入值的范围是( )
A.[66,77] B.[66,77) C.(66,77] D.(66,77)
5.有如下VB程序段
Dim a(1 To 5)As Integer
Dim d(1 To 5)As Integer
a(1)=12:a(2)=21:a(3)=19:a(4)=11:a(5)=20
n=5:Max=0
For i=1 To n
d(i)=0
For j=1 To i-1
If a(j)Next j
If d(i)>Max Then Max=d(i)
Next i
执行完以上程序段后,Max的值为( )
A.1 B.2 C.3 D.4
6.下面说法正确的是( )
A.算法+数据结构=程序 B.算法就是程序
C.数据结构就是程序 D.算法包括数据结构
7.如要编程画出由100个圆组成的图案,比较好的算法是( )。
A.按顺序执行100个画不同大小圆的程序段
B.①先编写1个能画不同大小圆的程序模块 ②在主程序中用100语句调用画圆程序模块
C.①先编写1个能画不同大小圆的程序模块 ②用循环方法调用100次画圆程序模块
D.不必先定义画圆程序模块,而直接循环100次的方法来画图案
8.已知有这样一种对冒泡排序的优化方法:在每一遍“加工”过程中,记录在这遍“加工”中是否进行过数据交换。若在一遍“加工”过程中没有进行过数据交换,则数据已经有序,可以直接退出循环结束排序。则下列说法错误的是 ( )
A.对有n个数据的数组进行优化后的冒泡排序,最小比较次数为n-1。
B.对有n个数据的数组进行冒泡排序,无论是否优化,最大比较次数相同。
C.对冒泡排序算法进行优化,能够较大提高其效率,符合算法设计的一般原则。
D.若待排序数组中的数据依次为23,17,46,58,34,11,对其使用优化后的冒泡排序进行升序排序,比较次数为9。
二、填空题
9.阅读下列程序,写出运行结果
a,b = 1,1 n = int(input("请输入一个大于等于3的正整数n:")) for i in range(n-2):c = a + b a = b b = c print(c) 程序运行后,输入:6
运行输出结果是:___________
10.有一种算法是把所有可能的答案一一列举,合适就保留,不合适就丢弃。这种方法称作________。枚举法解决问题的一般结构:________。
11.输入123,以下流程图描述的算法,执行结果是_____________。
12.阅读以下程序,写出程序运行结果。
def jc(n):
s=1
for i in range(2,n+1):
s=s*i
return s
total=jc(4) #调用jc函数
print(total)
程序运行后,其输出结果为______
13.阅读下列程序,写出运行结果
s = 1 for i in range(1,10,3):s = s *i print(s)
运行输出结果是:__________________
14.阅读下列程序,写出运行结果。
m = int(input("请输入一个正整数:")) x = m y = m for i in range (9):n = int(input("请输入一个正整数:")) if n运行结果是:_____________
三、判断题
15.有一种算法是把所有可能的答案一一列举,合适就保留,不合适就丢弃。这种方法称作“枚举”或“穷举”。 ( )
四、简答题
16.编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。得到的数字应按逗号分隔的顺序打印在一行上。
提示:考虑使用range(#begin,#end)
五、操作题
17.骑车与走路:方便又环保的共享单车作为中国新四大发明的存在,已经在很多城市投放使用。在使用过程要经历找车、开锁、停车、锁车等环节。请你用计算机编程来判断在不同的距离使用下,是骑车快还是走路快。
假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。
试卷第页,共页
参考答案:
1.A
2.A
3.D
4.D
5.C
6.A
7.C
8.D
9.8
10. “枚举”或“穷举” 循环+判断
11.Yes
12.24
13.28
14.9 9
15.对
16.
l=[]
for i in range(2000,3201):
if (i%7==0)and (i%5!=0):
l.append(str(i))
print (','.join(1))
17.#print('步行每秒1.2米,骑车每秒3.0米,开锁+上车27秒,停车+锁车23秒')
L=int(input("请输入距离:"))
if 23+27+L/3.0print('骑车快')
else:
print('步行快')
试卷第页,共页