1、加试部分(15分) 一、选择题(本大题共4小题,每小题2分,共8分。在每小题给出的四个选项中,只有一个是符合题目要求的。 1、[原创]已知x=17,y= "-315",则VB表达式x+Len(y)的值为( ) A.-298 B.17 C.21 D."17-315" 2、执行如下Visual Basic程序段时,出现了如下图所示的错误: Private Sub Command1_Click() Dim a As Integer, b As Integer a = 5: b = 8 b = a + b label1.Caption = Str(b) En
2、d Sub 引发此错误的语句可能为( ) A.Dim a As Integer, b As Integer B.a = 5: b = 8 C.b = a + b D.label1.Caption = Str(b) 3、[原创]国内特快专递每200克为一个计费单位,200克以内22元,200克以上每续重200克(不足200克以200克计算)8元,现在要编写一个程序输入包裹重量自动计算出价格。解决上述问题,最合适的算法是( ) A.解析算法 B.枚举算法 C.排序算法 D.递归算法 4、[原创]
3、用对分查找法从数列3,6,7,10,12,16,25,30,75中找到数据10的最少查找次数是( ) A. 2 B. 4 C. 3 D. 7 二、综合题(本大题共3小题,其中第5小题2分,第6小题3分,第7小题2分,共7分) 5、[根据2011年9月高考题改编]下列VB程序运行时,单击命令按钮Command1后,文本框Text1中显示的内容是______,文本框Text2中显示的内容是_______。 Private Sub Command1_click( ) Dim a(1 to 3) as integer,k as integer,t as
4、 integer,s as integer a(1)=15: a(2)=36: a(3)=7 s=0 For k=2 to 3 if a(k)>a(1) then t=a(1):a(1)=a(k):a(k)=t s=s+1 End if Next k text1.text=str(a(1)) text2.text=str(s) End sub 6、[原创]下列程序的功能是在text1中输入的自然数,分解为3个互不相同的质数(三个质数的和等于输入的自然数),并把分解产生的质数按升序顺序显示在左边的列表框中。例如,输入20,那么在列表框中会显
5、示如右图所示结果。其中,上述界面中“开始处理”按钮的名称是“Command1”,程序中函数f(x)的功能是判断x是否为质数,如果是质数则返回值为true,否则返回false。 请在下列程序代码的基础上按照要求设计该程序, 完善程序中的划线部分。 Dim n As Integer, a1 As Integer, a2 As Integer, a3 As Integer Function f(x) As Boolean f = True For i = 2 To Sqr(x) If x Mod i = 0 Then _____________ Nex
6、t i End Function Private Sub Command1_Click() n = _________________ For a1 = 2 To n For a2 = a1 To n For a3 = a2 To n If ____________________ And f(a1) And f(a2) And f(a3) Then List1.AddItem (Str(a1) + " " + Str(a2) + " " + Str(a3)) End If Next a3 Next a2 Next a1 End Sub
7、 7、[根据2015年一点通中的试题改编]有一Access数据库“school.accdb” 存放在f:\2015mt\vb文件夹中,其中的“student”数据表用来存储学生的基本情况信息,包括学号(num)、姓名(name)、性别(sex)、分数(score),括号内的为对应字段名。下列VB程序用来实现根据学号查询并显示学生信息,运行界面如下图所示。在文本框Text1中输入学生的学号,单击“查询”,在文本框Text2、Text3 、Text4中分别显示学生姓名、性别、分数。 Private Sub Command1_Click() Dim adocn As New adodb.C
8、onnection Dim adors As New adodb.Recordset Dim str2 As String, str1 As String str1 = "Provider=Microsoft.ACE.OLEDB.12.0;data source=f:\2015mt\vb\_____________" adocn.Open str1 str2 = "select * from students where num=" + Text1.Text adors.Open str2, adocn, adOpenDynamic, adLockOptimistic If ad
9、ors.EOF = True Then MsgBox "你输入的学号不存在" Else Text2.Text = adors.Fields("name").Value Text3.Text = adors.Fields("sex").Value ________________________________________ End If adors.Close adocn.Close End Sub 4. 某餐厅在团购网站上推出了98元享原价198元的套餐团购活动,但规定每天接受团购券数量是有限制的,表示此餐厅是否接受团购券的算法
10、如下: ①number=0 ′团购券数量用变量number表示。 ②Do While number<=29 ③读入用餐顾客的情况 ④If 使用团购券顾客 then 变量number增加1 允许使用团购券进行消费 End If ⑤Loop 对于上述算法,下列说法错误的是( ) A.每天允许使用团购券数量最多是30 B.代码“变量number增加1”和“允许使用团购券进行消费”互换位置是可行的 C.此算法的循环结构可以用For语句来实现 D.此算法是用自然语言来描述的 【根据信息技术学业水平测试综合模拟卷(3)改编】 5.有8个西瓜的重量(单位:斤)分
11、别是5.2,4.5,4.1,3.5,8.3,7.4,3.8,7.5。若采用选择排序算法对其进行从小到大排序,共需交换数据的次数是( ) A.4 B.5 C.6 D.7 二、主观题 6. 有如下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
12、sub 该程序段运行后,文本框Text1中显示_______________ 7. 输入一个三位数的整数,要求将此三位数的各位上的数字重新排列,组成一个尽可能大的三位数。例如:输入213,重新排列可得到尽可能大的三位数是321。 现要求编写VB程序(运行界面如第16题-1图所示),实现如下功能:在文本框Text1中输入一个三位数整数,单击“求解”按钮Command1,在文本框Text2中显示重新组合后的最大三位数整数。某同学按此要求编写的程序如下,其中函数max(x)用于求解最大三位数整数,但加框处代码有错,请改正。 ①___________________ ②_______
13、 Function max(x As Integer) As Integer Dim a As Integer, b As Integer, c As Integer, t As Integer 第7题图 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
14、 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 【根据2013年9月浙江省高考卷改编】 8.下列VB程序的功能是:程序运行时,单击命令按钮Commandl后,产生10个[1,999]范围内互不相同的随机整数,依次显示在列表框List1中,然后将它们
15、按从小到大的顺序排序,排序结果显示在列表框List2中。 数组a用于存储产生的10个随机整数,函数f(x)用于判断随机整数x与已生成的整数是否有重复,若有重复则返回True,否则返回False。 (1)虚线框内程序段所采用的排序算法名称是 。(填:冒泡排序/选择排序) (2)在程序(1)和(2)划线处,填入适当的语句或表达式,把程序补充完整。 Dim a(1 To 10) As Integer Function f(x As Integer) As Boolean ′代码略 End Function Private Sub
16、Commandl_Click() Dim n As Integer ′n用于统计已经产生的随机整数个数 Dim i As Integer.j As Integer Dim x As Integer.k As Integer Randomize ′初始化Rnd函数 n=0 List1.Clear ′清除列表框中内容 List2.Clear Do While n<10 x=Int(Rnd*99






