n = Val(Opt1(i).Caption) Exit For End If Next ReDim a(n) a(1) = 1 a(2) = 1 For i = 3 To n
a(i) = a(i - 1) + a(i - 2) Next
Txt1.Text = a(n) End Sub
上机第19套题
一、基本操作题
(2)在名为Form1的窗体上放置两个名称分别为Lst1和Lst2的列表框。在Lst1中添加\项目1\、\项目2\、……、\项目10\,并设置MultiSelect属性为2(要求在控件属性中设置)。再放置一个名为Cmd1的命令按钮,其标题为\复制\。程序运行后,若单击\复制\按钮,将Lst1中选中的内容(至少两项)复制到Lst2中,如图1-95所示。若选择的项数少于两项,用消息框提示\请至少选择两项\。
注意:文件必须存放在考生文件夹中,窗体文件名为vbsj2.frm,工程文件名为vbsj2.vbp。
图1-95
Private Sub Cmd1_Click() Dim n As Integer Dim i As Integer
For i = 0 To Lst1.ListCount - 1 If Lst1.Selected(i) = True Then n = n + 1 End If Next
If n < 2 Then
MsgBox \请至少选择两项\ Else
For i = 0 To Lst1.ListCount - 1 If Lst1.Selected(i) = True Then Lst2.AddItem Lst1.List(i) End If Next End If
End Sub
三、综合应用题
在名为Form1的窗体上绘制一个名称为Txt1的文本框,其MultiLine属性为True,初始内容为空白;两个名称分别为Cmd1和Cmd2的命令按钮,它们的标题分别为\添加两条记录\和\显示所有记录\。
编写适当的事件过程,程序运行后,如果单击\添加两条记录\命令按钮,则向考生文件夹下的dr191.dat文件中添加两条记录,该文件是一个用随机存取方式建立的文件,共有3个记录,新添加的记录作为第4、第5个记录;如果单击\显示所有记录\命令按钮,则把该文件中的全部记录(包括原来的3个记录和新添加的2个记录,共5个记录)在文本框中显示出来,如图1-98所示。随机文件dr191.dat中的每个记录包括3个字段,分别为姓名、电话号码和邮政编码,其名称、类型和长度分别为:
其类型定义为:
Private Type PalInfo Name As String *8 Tel As String * 10 Post As Long End Type
变量定义为:Dim Pal As PalInfo
图1-98
要求:①单击\添加两条记录\按钮,则打开随机文件dr191.dat,向文件中添加第4、第5个记录。这两条记录依次为(其中的字母必须是小写字母):
Zhangnan 66666666 100042 Wangjie 88888888 100037
②单击\显示所有记录\按钮,则在文本框中显示dr191.dat文件中的5个记录,每个记录显示一行。 ③存盘时必须存放在考生文件夹中,工程文件名为vbsj5.vbp,窗体文件名为vbsj5.frm。
Private Type PalInfo Name As String * 8 Tel As String * 10 Post As Long End Type
Dim Pal As PalInfo Private Sub Cmd1_Click()
Open App.Path & \ Pal.Name = \ Pal.Tel = \ Pal.Post = 100042 Put #1, 4, Pal Pal.Name = \ Pal.Tel = \
Pal.Post = 100037 Put #1, 5, Pal Close #1 End Sub
Private Sub Cmd2_Click() Txt1.Text = \
Open App.Path & \ While Not EOF(1) Get #1, , Pal
Txt1.Text = Txt1.Text & Pal.Name & Pal.Tel & Pal.Post & vbCrLf Wend Close #1 End Sub
上机第25套题
二、简单应用题
(1)在考生文件夹中有一个工程文件vbsj3.vbp,相应的窗体文件为vbsj3.frm。在名为Form1的窗体上有一个名称为Cmd1的命令按钮,其标题为\添加\;一个名为Txt1文本框,初始内容为空白;一个名称为Lst1的列表框。程序运行后,如果在文本框中输入一个英文句子(由多个单词组成,各单词之间用一个空格分开),然后单击\添加\按钮,程序将把该英文句子分解为单词,并把每个单词作为一个项目添加到列表框中,如图1-126所示。该程序不完整,请补充完整。
图1-126
要求:去掉程序中的注释符\'\,把程序中的问号\?\改为正确的内容,使其能正确运行,但不得修改程序的其他部分。最后,按原文件名并在原文件夹中保存修改后的文件。
程序源码
Private Sub Cmd1_Click()
Dim S1 As String Dim S2 As String Dim I1 As Integer ' S1 = ? I1 = 1 Do
' Do While Mid(S1, I1, 1) _
<> ? And I1 <= Len(S1)
S2 = S2 & Mid(S1, I1, 1) I1 = I1 + 1 Loop
' Lst1.AddItem ?
' S2 = ? I1 = I1 + 1
Loop While I1 <= Len(S1) End Sub
参考代码
S1 = Txt1.Text
Do While Mid(S1, I1, 1) <> \ Lst1.AddItem S2 S2 = \
上机第26套题
二、简单应用题
(2)在名为Form1的窗体上绘制一个名为Txt1的文本框;再建立一个名为mnuFormat的弹出式菜单,它含有3个名称分别为mnuForat1、mnuFormat2、mnuFormat3的子菜单项,它们的标题分别为\加粗\、\斜体\和\下划线\。
请编写适当的事件过程,在运行时当用鼠标右键单击文本框时,弹出此菜单,选中一个菜单项后,则进行菜单标题所描述的操作,如图1-137所示。
注意:文件必须存放在考生文件夹中,工程文件名为vbsj4.vbp,窗体文件名为vbsj4.frm。
参考代码:
Private Sub Txt1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
Me.PopupMenu mnuFormat End If End Sub
Private Sub mnuFormat1_Click() Txt1.FontBold = True End Sub
Private Sub mnuFormat2_Click() Txt1.FontItalic = True End Sub
Private Sub mnuFormat3_Click() Txt1.FontUnderline = True End Sub
三、综合应用题
在考生文件夹中有一个工程文件vbsj5.vbp和窗体文件vbsj5.frm。在窗体Form1中已经给出了所有控件。
编写适当的事件过程实现以下功能:单击\读数\按钮,则把考生目录下的dr271.dat文件中的一个整数放入Txt1;单击\计算\按钮,则计算出小于该数的最大素数,并显示在Txt2中,如图1-138所示;单击\保存\按钮,则把找到的素数存到考生目录下的dw271.dat文件中。
图1-138
注意:在结束程序运行之前必须单击\保存\按钮,把结果存入dw271.dat文件,否则无成绩。最后把修改后的文件按原文件名保存。
程序源码:
Private Sub Cmd1_Click() Open App.Path & \\ Input #1, a% Txt1.Text = a% Close #1 End Sub
Private Sub Cmd3_Click()
Open \ Print #1, Txt2.Text Close #1 End Sub
参考代码:
Private Sub Cmd2_Click() Dim k As Integer k = Val(Txt1.Text) While Not isprime(k) k = k - 1 Wend
Txt2.Text = k End Sub
Private Function isprime(m As Integer) As Boolean For i = 2 To m - 1 If m Mod i = 0 Then isprime = False Exit Function End If Next
isprime = True End Function