1、高中信息技术 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 该程序
2、段执行后,变量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,且
3、能被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。采用选择排序算法对其排序,若完成第一遍时的结果为:
4、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.三
5、个正整数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中显示的
6、是( ) 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(Rn
7、d*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.已知三角形的三条边长分别为、、,半周长,该三角形面积计算公式
8、为:,计算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) 1
9、2.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、顺序查找 【答
10、案】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.Add
11、Item 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)在上述程序
12、段中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 -
13、 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
14、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)程序中①画线处应填入_____
15、 (3)程序中②画线处应填入________。 【答案】(1)枚举算法 (2)step 16 (3)a=s mod 10 【解析】 21.输入一个三位数的整数,要求将此三位数的各位上的数字重新排列,组成一个尽可能大的三位数。例如:输入213,重新排列可得到尽可能大的三位数是321。 现要求编写VB程序(运行界面如图所示),实现如下功能:在文本框Text1中输入一个三位数整数,单击“求解”按钮Command1,在文本框Text2中显示重新组合后的最大三位数整数。某同学按此要求编写的程序如下,其中函数max(x)用于求解最大三位数整数,但加框处代码有错,请改正。 ①____
16、 ②___________________ 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
17、 = 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 =
18、 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.素数:只能被
19、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_Cli
20、ck( ) 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(
21、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页






