1. 下面程序的功能是:计算表达式1+3+5+…+(2n-1)的值,程序运行时在文本框Text1中输入n的值,计算结果在文本框Text2中输出。则程序中加框处的语句应分别更正为: (1)__________________ (2)__________________ 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 sum =\" sum\" + 2 Next i
Text2.label=Str(sum) End Sub
【答案】(1)sum =\" sum\" + i (2)Text2.Text = Str(sum)
2. 某查找算法的部分VB代码如下:
shifouzhaodao = False ‘shifouzhaodao:是否找到 szysxh = 0 ‘szysxh:数组元素序号
Do While szysxh < 5 And not shifouzhaodao szysxh =\" szysxh\" + 1
if dczsz(szysxh) =\" Key\" then shifouzhaodao = true Loop
if not shifouzhaodao then szysxh = 0
数组元素dczsz (1)到dczsz (5)的数据依次为“-1,3,7,10,7”,当变量key值为7时,运用该算法处理后,变量i的值是( ) A.0 B.-1 C.3 D.5
【答案】C
3. 王五为学生们设计了学校食堂学生校园卡查询系统,在终端机上输入学生的校园卡卡号,可以查出该卡对应的学生姓名及相应的余额。
校园卡信息存储在一个综合的数据库“school.mdb”,其中的“Yue”数据表用来存储学生的校园卡基本信息,包括学号(num)、姓名(name)、余额(money),括号内的为对应字段名。下列VB程序用来实现根据学号查询并显示学生姓名及余额,运行界面如图所示:
数据库文件与应用程序在同一文件夹中,在文本框Text1中输入学生的学号,单击“查询”按钮,在标签Label4、Label5中分别显示学生姓名和余额。 Private Sub Command1_Click() Dim adocn As new connection Dim adors As new recordeset Dim str1 As string,str2 as string
Str1=\"”driver=microsoft\" access driver(*.mdb);dbq=”&app.path&”\\ • .mdb” Adon.open str1
Str2=\"”select\" * from Yue where ‚ =’”+text1.text+”’”
Adors.open str2,adocn,adOpenDynamic,adLockOptimistic If adors.eof then
Msgbox”你输入的学号不存在!” Else
Label4. caption =adors.Fields(“name”).value ƒ =adors.Fields(“money”).value Endif
Adors.close Adocn.close End Sub
为了实现上述目标,在画线处填入合适的语句或表达式: • ‚ ƒ
【答案】(1)school(1分) (2)num(1分) (3)Label5.caption(1分)
4. 表达式Len(“doodluck”)+2 Mod 3+Int(3.9999)的值为( ) A.12 B.13 C.14 D.表达式运算出错
【答案】B
5. 采用冒泡排序将六个数“22,14,18,17,21,16”从小到大进行排序,则第二轮交换数据后的顺序是( )
A.14,22,16,18,17,21 B.14,16,18,17,21,22 C.14,16,22,17,18,21 D.14,22,16,17,18,21
【答案】C
【解析】本题考核的是考生冒泡排序算法执行过程的理解。
6. 下列VB程序运行时,单击命令按钮Command1后,标签框Label2中显示的内容是________ Private Sub Command1_click() Dim s as integer,I as integer S=0
For i=\"1\" to 20 step 3 s=s+(-1)^i*i Next i
Label1.caption=str(i) Label2.caption=str(s) End Sub 【答案】-10
【解析】考核的是考生阅读程序的能力。此题中,for循环语句第一循环时,i=1,s=-1;第二次循环时,因步长是3,i=4,则s=-1+4=3;依次类推,第三次循环,i=7,s=3-7=-4;i=10,s=-4+10=6;i=13,s=6-13=-7;i=16,s=-7+16=9;i=19,s=9-19=-10;i=22,i的值超出循环变量的终止值,结束循环。所以循环结束后,i的值为22显示在Tabel1标签中,s的值为-10显示在Tabel2标签中。
7. 某学校开设多样化选修课程,学生可以根据个人兴趣和特长选择选修课。假设每门选修课的选课人数不超过40,学生选课的相关信息存放在数据库文件“student.accdb”的data表中,选课查询程序运行时界面如图所示。
程序功能:在文本框Text1中输入课程号,单击“查询”按钮Command1,在列表框List1中显示选修本课程的名学生信息。如果没有找到,在列表框中显示“该课程当前无人报名”。按此要求将程
序补充完整。
Private Sub command1_click()
Dim xh(1 to 40),xm(1 to 40) As String '学号和姓名的数组 Dim i,num as integer
Dim conn As New ADODB.Connection, rs As New ADODB.Recordset Dim strSQL As String
conn.ConnectionString = \"Provider=\"Microsoft.ACE.OLEDB.12.0;Data\" Source=\" + App.Path + \"\\student.accdb\" '打开到数据库的链接 conn.Open
strSQL =\"select xh,xm from data where '课程=&(Text1.Text) & '\" '设置查询的SQL语句
Set rs.ActiveConnection = conn '设置rs的ActiveConnection属性,指定与其关联的数据库链接
rs.Open strSQL '打开记录集,将从表student中读取的结果集保存到记录集rs中 List1.Clear num=0
Do while not rs.EOF ①
xh(num)=rs.Fields(\"xh\") xm(num)=rs.Fields(\"xm\") rs.MoveNext loop rs.Close conn.close set rs=nothing set conn=nothing For i=\"1\" to num ② Next i
if num=\"0\" then list1.additem(\"该课程当前无人报名\") End Sub
(1)程序中①划线处应填入___________________。 (2)程序中②划线处应填入___________________。
【答案】(1)num=num+1 (2)List1.additem xh(i)+ \"\"+ xm(i)
【解析】本题主要考核考生应用VB访问数据库的相关知识,考核学生是否理解通过ADO对象连接数据库,通过Recordset对象获取表中的数据。
8. 某商场元月举行VIP客户积分换购活动,VIP客户根据卡内积分多少可换取不同额度的代金券。假设VIP客户共有n名,VIP卡内积分存放在数据库“customer.accdb”的Integral表中,换购活动的VB程序代码如下,程序运行时界面如图所示。工作人员在文本框Text1中输入VIP卡号后,单击“换购”按钮Command1,在文本框Text2中输出VIP客户的积分数,在标签Label3中显示可以换购的代金券额度,积分清零。按此要求编写程序如下, 但加框处代码有错,请改正。
Dim ID( ) As String '用于存放客户卡号 Dim total( ) As Long '用于存放积分数 Dim sc As Long 'VIP客户人数 Dim jf As Long '积分数
Private Sub Command1_Click( ) Dim k As String '客户卡号 Dim q As Long '代金券额度 Dim i As Long k = Text1.Text
For i =\" 1\" To sc ’顺序查找 If ID(i) =\" k\" Then jf = total(i)
cash(jf) = q ’① Exit For End If
Text2.Text = Str(jf)
Label3.Caption = “您可换购的代金券总额为:”+ Str(q) + “元” Next i End If End Sub
' cash函数用于计算VIP客户可换购的代金券额度 Function cash(jf As Long) As Long If jf >=\" 2000\" And jf <=\" 20000\" Then Cash = jf\\2000*10
ElseIf jf > 20000 And jf <=\" 50000\" Then Cash = jf\\2000*11
ElseIf jf > 50000 And jf <=\" 100000\" Then Cash = jf\\2000*12
ElseIf jf > 100000 And jf <=\" 150000\" Then Cash = jf\\2000*13
Else jf > 150000 Then ’ ② Cash = jf\\2000*14 End If
End Function
Private Sub Form_Load()
Dim conn As New ADODB.Connection, rs As New ADODB.Recordset Dim intSQL As Long
conn.ConnectionString = \"Provider=\"Microsoft.ACE.OLEDB.12.0;Data\" Source=\" + App.Path + \"\\ customer.accdb\" conn.Open
intSQL = \"SELECT score FROM Integral\" Set rs.ActiveConnection = conn rs.CursorType = adOpenStatic rs.Open intSQL sc = 0
Do While Not rs.EOF
sc =\" sc\" + 1
total(sc) = rs.Fields(\"score\") rs.MoveNext Loop rs.Close conn.Close
Set rs = Nothing Set conn = Nothing End Sub
(1)加框处①有错,应改为_____________________。 (2)加框处②有错,应改为_____________________。 【答案】(1)q = cash(jf) (2)ElseIf jf > 150000 Then
【解析】本题考核VB基本语句含义的理解、修改,自定义函数的理解,VB访问Access数据库的理解。
9. 下表记录了6个数据的排序过程。分析表中数据可知,该排序采用的算法与排序方式分别为( )
原始数据 65 57 59 44 45 69 第1遍 44 65 57 59 45 69 第2遍 44 45 55 57 59 69 第3遍 44 45 57 65 59 69 … … … … … … … A.冒泡排序,升序 B.选择排序,升序 C.冒泡排序,降序 D.选择排序,降序 【答案】A
10. 小刚的支付宝账户密码忘记了,但他急用支付宝进行转账,请你帮他尽可能找回密码。他只记得自己密码的一些零星信息:
①密码是六位数字,前面两位为59; ②最后两位数字相同; ③能被12和38整除。
程序界面如1图所示,单击 “帮助找回密码”按钮(Command1)后,可能的密码显示在列表框
List1中。
(1)应用程序界面设计时,为添加“可能的密码有:”对象,应使用2图所示的“控件工具箱”中的______________(填写相应编号),并在3图所示的“属性窗口”中,将____________属性值设
置为“可能的密码有:”。
(2)解决此问题的相应程序如下,请根据题意将程序补充完整。 Private Sub Command1_click ( )
Dim x As Integer, s As Long, y As Integer, i As Integer For i =\" 0\" To 9999 S =\" 590000\" + i
If ____________ Then x=\" s\" mod 10
y =\" (s\" Mod 100) \\ 10 If x =\" y\" Then
List1.AddItem Str(s) End If End If Next i End Sub
【答案】(1)① caption (2)s Mod 12 =\" 0\" and s Mod 38 = 0
【解析】本题意图考查VB界面的设计应用和枚举算法的理解。(1)由题中所给出的界面可知,“可能的密码有:”对象是一个标签,因而选择控件工具箱中的①所在位置的控件,修改其显示的内容是修改caption属性值;(2)题干中指出“能被12和38整除”,则逻辑运算符应该为and,故if语句后的条件表达式为“s Mod 12 =\" 0\" and s Mod 38 = 0”。
11. 下列VB程序的功能是:程序运行时,单击命令按钮Commandl后,产生10个[1,999]范围内互不相同的随机整数,依次显示在列表框List1中,然后将它们按从小到大的顺序排序,排序结果显示在列表框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 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*999)+1 ′产生[1,999]范围内的随机整数 If Not f(x) Then n=n+1 a(n)=\"x\"
List1.AddItem Str( (1) ) End If Loop
For i=\"1\" To 9 ′进行排序
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务