内容正文:
2023-2024学年高一上学期人教/中图版(2019)必修一2.4 常见算法的程序实现
一、选择题
1.由于计算机运算速度快,我们可以一一列举x、y和z的所有可能值的算法叫( )
A.枚举法 B.二分法 C.递归法 D.迭代法
2.x和n都是正整数且x<=n,下列选项中,与语句“x=x Mod n +1 ”功能相同的是( )
A.x=(x+1) Mod n
B.x=x+1
If x=n Then x=1
C.x=x+1
If x=n+1 Then x=1
D.x=x+1
If x=n+1 Then x=0
3.小明同学用等差数列求和公式解决了1+2+3+……+N的问题。这是用( )解决问题。
A.解析法 B.枚举法 C.模拟法 D.递推法
4.有如下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)<a(i)Then d(i)=d(i)+1
Next j
If d(i)>Max Then Max=d(i)
Next i
执行完以上程序段后,Max的值为( )
A.1 B.2 C.3 D.4
5.《算经》中的百钱百鸡问题:用100文钱买100只鸡,其鸡翁一、值钱五,鸡母一、值钱三,鸡雏三、值钱一,问鸡翁、鸡母、鸡雏各几何。下列选项中解决此问题的最优的算法是( )
A.枚举算法 B.归并算法 C.递归算法 D.排序算法
6.用枚举法在两个□内填入相同的数字使“□3×6528=3□×8256”表达式成立。
for i in range(1):
if :
print(i,“3×6528=3”,i,“×8256”,sep=”)
下列选择正确的是( )。
A.(i*10+3)*6528==(30+i)*8256
B.(i*3)*6528==(30+i)*8256
C.(i*10+3)*6528==(30*i)*8256
D.(i*3)*6528==(3*i)*8256)
7.下列问题适合用解析算法求解的是( )
A.寻找一堆彩球中的所有红球。 B.计算一个球从100米高的楼顶掉下来落地时的速度。
C.将全班同学根据身高从低到高排队。 D.统计10000以内各位数字之和是18的偶数个数。
8.算法是为了解决问题。下列哪个问题最适合用枚举法求解?( )
A.求一个圆柱体的表面积和体积 B.求解百钱买百鸡问题
C.一元二次方程求解 D.一个篮球从10米处做自由落体运动,求落地时的速度
9.—位顾客去超市购买了苹果xkg、香蕉ykg、西瓜ykg,其中苹果3.98元/kg、香蕉3.58 元/kg、西瓜2.98元/kg。计算该顾客消费总价的算法如下:
①输入三种水果的重量x,y,z ②用公式计算总价s=3.98x +3.58y +2.98z ③输出总价s ④结束
上述算法属于( )
A.枚举算法 B.查找算法 C.递归算法 D.解析算法
10.有如下Python程序段:
a=[i for i in range(1,7)]
b=[0]*6
head,tail=0,0
foriinrange(1,7):
cnt=1
whilecnt<i:
a[tail]=a[head]
head=(head+1)%6
tail=(tail+1)%6
cnt+=1
b[a[head]-1]=i
head=(head+1)%6
执行该程序段后,b[5]的值为( )
A.2 B.3 C.4 D.5
11.VB 表达式Int(Rnd*9)+54\3^2/3的值可能是( )
A.9 B.16 C.19 D.27
12.下列可用来实现“判断是否为闰年”算法的软件是( )
A.Python B.PowerPoint C.CoolEdit D.Word
13.课堂上老师给出题目:查找1000以内所有能被13整除并且末尾是5的自然数。下列算法最合适的是( )
A.查找法 B.迭代法 C.解析法 D.枚举法
14.下列问题中适合使用解析算法解决的是( )
A.计算两个电阻的并联值 B.输出2~100以内的所有素数
C.查找100以内所有能被6整除的数 D.找出100以内所有6的倍数
15.用枚举法在两个□内填入相同的数字使“□3×6528=3□×8256”表达式成立,阅读下段程序代码:
for i in range(10):
if ((□3)*6528)==(3□)*8256):
下列选择正确的是()
A.(i*10+3)*6528==(30+i)*8256
B.(i*3)*6528==(30+i)*8256
C.(i*10+3)*6528==(30*i)*8256
D.(i*3)*6528==(3*i)*8256
16.利用枚举算法解决“鸡兔同笼”问题,可以作为枚举对象的是( )
A.鸡、兔和笼 B.兔和笼 C.鸡和笼 D.鸡和兔
二、填空题
17.有一种算法是把所有可能的答案一一列举,合适就保留,不合适就丢弃。这种方法称作 。枚举法解决问题的一般结构: 。
18.小申设计了一个算法,能够根据输入的三条线路的距离,找出最短距离,请将流程图空白处填写完整:① ② ③
19.输入123,以下流程图描述的算法,执行结果是 。
三、判断题
20.有一种算法是把所有可能的答案一一列举,合适就保留,不合适就丢弃。这种方法称作“枚举”或“穷举”。 ( )
21.设计“找出所有满足各位数字之和等于5的三位数”时需要用到穷举算法。( )
四、操作题
22.中国古代数学家张丘建在它的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡、母鸡,小鸡各多少只。百钱买百鸡的部分流程图如图所示,a表示公鸡,b表示母鸡,c表示小鸡。据此完成下面小题。
1. 下列说法正确的是( )
A.算法只有使用流程图才能准确的描述
B.百钱买百鸡问题的解决使用的是枚举算法的思想
C. 该流程图“输出a,b,c”只执行1次
D.这是一个分支结构的的程序流程
2. 根据该流程图,小王编写了如下的程序:
程序运行结束后,关于count的值下列说法正确的是( )
A.count=34 B.count=21 C. count<21 D.count>34
五、简答题
23.编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。得到的数字应按逗号分隔的顺序打印在一行上。
提示:考虑使用range(#begin,#end)
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
2.C
3.A
4.C
5.A
6.A
7.B
8.B
9.D
10.B
11.C
12.A
13.D
14.A
15.A
16.D
17. “枚举”或“穷举” 循环+判断
18. a<b a<c
b<c
19.Yes
20.对
21.正确
22. B D
23.
l=[]
for i in range(2000,3201):
if (i%7==0)and (i%5!=0): l.append(str(i))
print (','.join(1))
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$