资源描述
高中信息技术 VB枚举算法与程序实现 浏览题阅览题 会考复习题
学校:___________姓名:___________班级:___________考号:___________
评卷人
得分
一、选择题
1.使用枚举法解决问题,在列举问题的可能解的过程中( )
A.可以遗漏,但不应重复
B.不能遗漏,也不应重复。
C.可以重复,但不应遗漏。
可以遗漏,也可以重复。
【答案】B
【解析】
2.有如下VB程序段
m=a(1)
For i=2 to 100
If a(i) > m then m=a(i)
Next i
该程序段执行后,变量m中存储的是( )
A.累加值 B.计数值 C.a(1)至a(100)中的最大值 D.最小值
【答案】C
【解析】
3.读程序,写出下列程序的输出结果
55、s = 1
For j = 100 To -100 Step -1
s = s * j
Next j
MsgBox (s)
上述程序段中s = s*j 的执行次数是( )
A、400 B、 401 C、200 D、201
【答案】D
【解析】
4.统计1~1 000间个位数是4,且能被9整除的数共有多少个,可以采用的算法是( )
A.查找算法 B.枚举算法
C.解析算法 D.排序算法
【答案】B
【解析】
5.在游戏中经常有开数字密码锁得场景,已知一个6位数的密码锁,正确的数字顺序组合是由下面一组数字426815经过两次冒泡排序得到,请问开锁的正确数字组合可能是( )。
A.864251 B.842651 C.126845 D.124685
【答案】A
【解析】
6.某食品连锁店5位顾客贵宾消费卡的积分依次为810,512,613,700,900。采用选择排序算法对其排序,若完成第一遍时的结果为:512,810,613,700,900,则完成第二遍的结果是( )
A. 512,613,700,900,810
B. 512,810,613,900,700
C. 512,900,613,700,810
D. 512,613,810,700,900
【答案】D
【解析】
7.模拟剪刀石头布的游戏,骰子是一个正六面体,用1~3这3个数分别代表剪刀、石头、布这三种情况,使用RND随机函数可以表示为( )
A. INT(RND(3)+1)
B. INT(RND*2+1)
C. INT(RND(2)+1)
D. INT(RND*3+1)
【答案】D
【解析】
8.三个正整数a、b、c满足等式a2+b2=c2,a、b、c称为“勾股数”,求出100以内所有“勾股数”可采用的算法是( )
A.枚举算法 B.解析算法 C.冒泡排序 D.顺序查找
【答案】A
【解析】
9.有如下VB程序:
Dim i As Integer, j As Integer, k As string, n As Integer
n = 3
List1.Clear
For i=1 To n
k =″″
For j=1 To i
k = k+″*″
Next j
List1.AddItem k
Next i
该程序运行后, 在列表框List中显示的是( )
A. B.
C. D.
【答案】A
【解析】
10.关于枚举算法的说法错误的是( )
A.一般是通过循环中嵌套分支结构来实现的。
B. 循环结构用来“枚举”,分支结构用于“检验”。
C.列举所有可能解的范围时,可以扩大但不能缩小,以防漏解。
D.采用枚举法时,也可能找不到符合条件的解。
【答案】C
【解析】
11.VB标准函数RND的作用是返回一个大于等于0且小于1的随机数。只能产生大于等于100且小于200随机 整数的VB表达式是 ( )
A、Int(Rnd*100) B、Int(Rnd*101+100)
C、Int(Rnd*99+100) D、Int(Rnd*100+100)
【答案】D
【解析】
下列语句用于计算“s=1+4+7+10+…+25”的值。
①For i="1" To 25 Step12.②Next i ③s=0 ④s=s+i
正确的语句顺序是( )
A.①②③④
B.①③④②
C.③①④②
D.④③①②
【答案】C
【解析】
13.解决上问题所用的算法是:( )
A、枚举法 B、 解析法 C、 顺序查找 D、选择法
【答案】B
【解析】
14.已知三角形的三条边长分别为、、,半周长,该三角形面积计算公式为:,计算S的VB语句是( )
A.
B.)
C.
D.)
【答案】D
【解析】
15.小李有一被污损的保修卡(如图),客服热线中有一个数字被污损掉了,找出这个数字的适合算法是( )
A.枚举算法 B.解析算法
C.对分查找算法 D.递归算法
【答案】A
【解析】
16.数组a中存放了某校田径运动会中八名100米短跑运动员的成绩,数据存放情况如下表:
a(1)
a(2)
a(3)
a(4)
a(5)
a(6)
a(7)
a(8)
12.8
13.3
12.3
12.6
13.5
12.1
13
13.8
若按升序排列,并采用冒泡排序算法自右向左进行比较和交换,那么前两轮排序的数据交换总次
数为( )。
A. 5 B.6 C. 7 D. 8
【答案】D
【解析】
17.三个正整数a、b、c满足等式a2+b2=c2,a、b、c称为“勾股数”,求出100以内所有“勾股数
可采用的算法是( )
A、枚举算法 B、解析算法 C、冒泡排序 D、顺序查找
【答案】A
【解析】
评卷人
得分
二、填空题
18.请认真阅读并分析下面Visual Basic程序代码,按要求完成题目。
Dim a(1 To 6) As Integer
Dim n, i, j, k As Integer
Private Sub Command1_Click()
For i = 1 To n - 1
For j = (1) To n
If a(i) < a(j) Then
k = a(i): (2) : a(j) = k
End If
Next j
Next i
For i = 1 To n
list2.AddItem Str(a(i))
Next I
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
n = n + 1
a(n) = Val( (3) )
List1.AddItem Str(a(n))
Text1.Text = "": Text1.SetFocus
End If
End Sub
①程序中出现了text和list两种控件,其中list控件的中文名称是列表框,text控件的中文名称是 。
(2)在上述程序段中3处带序号的空白地方补充恰当的语句,完善程序。
【答案】①文本框 (1)i+1 (2)a(i) = a(j) (3)text1.text
【解析】
19.下面程序的功能是:计算表达式1+3+5+…+(2n-1)的值,在文本框Text1中输入n的值,结果在文本框Text2中输出。则程序中划线处的语句应填____________。
Private Sub Command1_Click()
Dim sum As Long,i As Integer,n As Integer
sum = 0
n = Val(Text1.Text)
For i = 1 To 2 * n - 1 Step 2
Next i
Text2.Text=Str(sum)
End Sub
【答案】sum=sum+i
【解析】
20.王敏的EMail邮箱密码忘记了,但她需要收一封很重要的来信,请你帮她尽可能找出密码。
她零星记得自己的密码信息:
①密码是六位数字,前面两位为31;
②最后两位数字相同;
③能被16和46整除。
程序界面如图所示,单击“帮助找回密码”按钮(Command1)后,可能的密码显示在列表框List1中。
解决此问题的相应程序如下:
Private Sub Command1_Click()
Dim a As Integer,s As long,b As Integer,i As Integer
For i=0 To 9 999 ①________
s=310 000+i
If s Mod 46=0 Then
②________
b=(s Mod 100)\100
If a=b Then
List1.Addltem Str(s)
End If
End If
Next i
End Sub
(1)解决此问题的算法是________(选填:枚举算法或排序算法)
在程序①和②画线处,填入适当的语句或表达式,把程序补充完整:
(2)程序中①画线处应填入________。
(3)程序中②画线处应填入________。
【答案】(1)枚举算法 (2)step 16 (3)a=s mod 10
【解析】
21.输入一个三位数的整数,要求将此三位数的各位上的数字重新排列,组成一个尽可能大的三位数。例如:输入213,重新排列可得到尽可能大的三位数是321。
现要求编写VB程序(运行界面如图所示),实现如下功能:在文本框Text1中输入一个三位数整数,单击“求解”按钮Command1,在文本框Text2中显示重新组合后的最大三位数整数。某同学按此要求编写的程序如下,其中函数max(x)用于求解最大三位数整数,但加框处代码有错,请改正。
①___________________ ②___________________
Function max(x As Integer) As Integer
Dim a As Integer, b As Integer, c As Integer, t As Integer
a = x \ 100
b = (x \ 10) \ 10 ' ①
c = x mod 10
If a < b Then t = a: a = b: b = t
If a < c Then t = a: a = c: c = t
If b < c Then t = c: c = b: b = t
max = c* 100 + b * 10 + a ' ②
End Function
Private Sub Command1_Click()
Dim n As Integer, y As Integer
n = Val(Text1.Text)
y = max(n)
Text2.Text = Str(y)
End Sub
【答案】① (x\10) mod 10 ② a*100+b*10+c
【解析】
22.现需计算1*2*3*……*n=?有如下程序段,在划线处填入合适的语句或表达式,完成程序。
s=1
i=1
Do While i<=n
S = s * i
i = i + 1
【答案】Loop
【解析】
23.本程序要求完成的功能是:计算
s=1/1+2/(1*2)+3/(1*2*3)+…+ n/(1*2*3*…*n)的值。
请将已有VB代码补充完整。
n = inputbox(“请输入n的值”)
s = 0
________(1)________
For i = 1 to n
t = t * i
s = s + ______(2)_______
Next i
Print s
(1)__________ (2)__________
【答案】(1)t=1(2)i/t
【解析】
24.素数:只能被1和它本身整除的自然数。要求编写VB程序找出任意两个整数之间中所有的素数及个数,程序运行界面如下图所示。
请根据算法将下列程序补充完整。
Function prime(a As Integer) As Boolean
Dim j As Integer
prime = True
j = 2
Do While prime And j <= a \ 2
If a Mod j = 0 Then
prime = False
Exit Do
End If
①
Loop
End Function
Private Sub Command1_Click( )
Dim i As Integer, a As Integer, b As Integer
Dim count As Integer
a = Val(Text1.Text)
b = Val(Text2.Text)
For i = a To b
If ② = True Then
List1.AddItem Str(i)
count = count + 1
End If
Next i
Label1.Caption = "素数共有" + Str(count) + "个!"
End Sub
【答案】① j = j + 1 ② prime(i)
【解析】本题考核VB基本语句含义的理解,自定义函数的应用。
25.有如下Visual Basic程序:
Private Sub Command1_Click( )
Dim s As Integer
Dim I As Integer
S=0
For i=1 To 10
s=s+i\7
Next i
Text1.text=str(s)
End sub
该程序段运行后,文本框Text1中显示__________
【答案】4
【解析】
26.流程图是实现输出1-100之间所有能被 7整除的整数。若再要统计其个数,则要设置一个计数器c, c = 0,如图所示,则计数器c=c+1应置于编号 处。
【答案】2
【解析】
评卷人
得分
三、操作题
27.如果一个整数是另一个整数的平方,则称该数是“完全平方数”。如:1=1×1,4=2×2,9=3×3,所以1、4、9是完全平方数。编写程序,统计100到10000之间的所有完全平方数的和。(4分)
【答案】sum = 0
for i=10 to 100
sum = sum + i*i
next
print sum
【解析】
试卷第11页,总12页
展开阅读全文