2023-2024学年浙教版高一下学期第五章第一节 枚举算法的程序实现
2023-2024学年浙教版高一下学期第五章第一节 枚举算法的程序实现
一、选择题
1.下列问题中,适合使用枚举法解决的是( )
A.计算1+2+3+…+1000的值
B.计算学校所有同学的平均身高和平均体重
C.查找100以内所有能被6整除的数
D.超市的收银系统,结算顾客所购商品的费用
2.编程输出1到100之间所有的偶数,下列算法最合适的是( )
A.穷举法 B.冒泡排序法 C.二分查找法 D.插入排序法
3.向文本框Text1中输入一串包含大小写的字母,统计出现次数最多的字母(不区分大小写)并将该字母以大写方式输出到文本框Text2,如有多个字母次数相同的,则只记录最后出现的字母,部分程序如下:
Dim c(1 To 26)As Integer
s=Text1.Text
For i=1 To Len(s)
x=Mid(s,i,1)
If x>="a"Then
t=Asc(x)-Asc("a")+1
Else
t=Asc(x)-Asc("A")+1
End If
①
If c(t)>=Max Then Max=c(t): ②
Next i
Text 2.Text=Chr(f+Asc("A"))
划线处应该填入的正确语句是( )
A.①c(t-1)=c(t-1)+1 ②f=t
B.①c(t)=c(t)+1 ②f=t
C.①c(t-1)=c(t-1)+1 ②f=t-1
D.①c(t)=c(t)+1 ②f=t-1
4.巧妙填数:将1至9这9个数字分别填入3*3的九宫格中,第一行的三个数字组成一个三位数。要使第二行的三位数是第一行的2倍,第三行的三位数是第一行的3倍,如果用计算机程序解决此问题,合适的算法是( )
A.解析算法 B.枚举算法 C.递归算法 D.查找算法
5.如果一个3位整数恰好等于它各位上的数字的立方和,则则这个3位数称为“水仙花”数,例如153=13+53+33。如
试卷第1页,共1页
学科网(北京)股份有限公司
果要求出所有的水仙花数,下列算法最合适的是( )
A.排序法 B.解析法 C.查找法 D.穷举法
6.算法是为了解决问题。下列哪个问题最适合用枚举法求解? ( )
A.一个篮球从10米处做自由落体运动,求落地时的速度
B.求一个圆柱体的表面积和体积
C.一元二次方程求解
D.求解百钱买百鸡问题
7.下面程序的功能是:产生20个[1,100]范围内的随机整数,并统计这20个随机数中的整数的个数(重复出现算1个),结果显示在标签Label1中。例如:5个随机数[10,20,20,31,32]中不重复数字个数为3。程序部分代码如下:
count = 0
For i = 1 To 20
a(i) = Int(Rnd ∗ 100) + 1
Next i
For i = 1 To 20
①
Next i
For i = 1 To 100
If b(i) <> 0 Then count = count + 1
Next i
Label1.Caption= "不重复数字个数" + Str(count)
为实现上述功能,则程序①处应填入的语句为( )
A.b(i)=1 B.b(a(i))=a(b(i))+1 C.b(i)=b(i)+1 D.b(a(i))=b(a(i))+1
8.用枚举法在两个□内填入相同的数字使“□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)
9.下列VB程序功能可以找出1000以内的完全数,并在标签中一一列出来。
Private Sub Command1_Click()
试卷第2页,共1页
学科网(北京)股份有限公司
Dim i As Integer, m As Integer, n As Integer
Label1.Caption = "1000以内的完全数如下:"
For i = 1 To 1000
n = 0
For m = 1 To i \ 2
If i Mod m = 0 Then n = n + m
Next
If n = i Then Label2.Caption = Label2.Caption & "" & Str(i)
Next
End Sub
该过程采用的算法是( )
A.枚举 B.查找 C.排序 D.解析
10.逻辑运算符 And 在计算数值时是转换为二进制数后按位进行与运算,计算规则是:1 And 1 = 1,1 And 0 = 0,0 And 1 = 0,0 And 0 = 0,例如 7 转换为二进制数 00000111,12 转换 为二进制为 00001100,因此 7 And 12 的结果为 4。有如下 VB 程序段:
Private Sub Command1_Click()
n = 0
For i = 1 To 31 k = i
t = 0
Do While k > 0
k = k And (k - 1)
t = t + 1
Loop
If t = 3 Then n = n + 1
Next i
Label1.Caption = Str(n)
End Sub
单击命令按钮 Command1,标签 Label1 中显示的结果为
A.6 B.8 C.10 D.12
11.编写VB程序,实现如下功能:在文本框Text1中输入一个大于1000的正整数,单击按钮Command1后会去除其中3个数字,保证余下的数字在不改变顺序的情况下其数值最大,然后在文本框Text2中输出该数。
试卷第3页,共1页
学科网(北京)股份有限公司