资源描述
2013年 VB题库
第01套 简单应用题
(1)在考生文件夹下有一个工程文件sjt3.vbp,窗体上已经有一个标签Label1,请添加一个单选按钮数组,名称为Op1,含三个单选按钮,它们的Index属性分别为0、1、2,标题依次为"飞机"、"火车"、"汽车",再添加一个名称为Text1的文本框。窗体文件中已经给出了Op1的Click事件过程,但不完整,要求去掉程序中的注释符,把程序中的?改为正确的内容,使得在程序运行时单击"飞机"或"火车"单选按钮时,在Text1中显示"我坐飞机去"或"我坐火车去",单击"汽车"单选按钮时,在Text1中显示"我开汽车去",如图所示。
注意:不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。
Private Sub Op1_Click(Index As Integer)
Dim a As String, b As String, c As String
a = "我坐"
b = "我开"
' Select Case ? ***** Index *****
Case 0
Text1.Text = a + Me.Op1(0).Caption + "去"
Case 1
' Text1.Text = ? + Me.Op1(1).Caption + "去" ***** a *****
Case 2
Text1.Text = b + Me.Op1(2).Caption + "去"
End Select
End Sub
(2)在考生文件夹下有一个工程文件sjt4.vbp,Form1窗体中有一个文本框,名称为Text1;请在窗体上添加两个框架控件,名称分别为F1、F2,标题分别为"性别"、"身份";在F1中添加两个单选按钮控件Op1、Op2,标题分别为"男"、"女";在F2中添加两个单选按钮控件Op3、Op4,标题分别为"学生"、"教师";再添加一个命令按钮,名称为C1,标题为"确定"。如图所示。请编写适当的事件过程,使得在运行时,在F1、F2中各选一个单选按钮,然后单击"确定"按钮,就可以按照下表把结果显示在文本框中。
性别
身份
在文本框中显示的内容
男
学生
我是男学生
男
教师
我是男教师
女
学生
我是女学生
女
教师
我是女教师
最后把修改后的文件以原来的文件名存盘。
注意:考生不得修改窗体文件中已经存在的程序和Text1的属性,在结束程序运行之前,必须进行能够产生上表中一个结果的操作。必须用窗体右上角的关闭按钮结束程序,否则无成绩。
‘ ***** 请考生编写程序 *****
If op1 and op3 then Text1.Text=”我是男学生”
If op1 and op4 then Text1.Text=”我是男教师”
If op2 and op3 then Text1.Text=”我是女学生”
If op2 and op4 then Text1.Text=”我是女教师”
*****第01套 综合应用题
以下数列:1,1,2,3,5,8,13,21,…,的规律是从第3个数开始,每个数都是其前面两个数之和。
在考生文件夹下有一个工程文件sjt5.vbp。窗体中已经给出了所有控件,如图所示。请编写适当的事件过程完成如下功能:选中一个单选按钮后,单击"计算"按钮,则计算出上述数列的第n项的值,并在文本框中显示,n是选中的单选按钮后面的数值。(提示:因计算结果较大,应使用长整型变量。)
注意:不能修改已经给出的程序和已有的控件的属性;在结束程序运行之前,必须选中一个单选按钮,并单击"计算"按钮获得一个结果;必须使用窗体右上角的关闭按钮结束程序,否则无成绩。最后把修改后的文件按原文件名存盘。
Private Sub Command1_Click()
‘ ***** 请考生编写程序 *****
Dim a(35) As Long
If op1(0) then n=30
If op1(1) then n=33
If op1(2) then n=35
a(1) = 1
a(2) = 1
For i = 3 To n
a(i) = a(i - 1) + a(i - 2)
Next
Text1.Text = a(n)
End Sub
第02套 简单应用题
(1)在考生文件夹下有一个工程文件sjt3.vbp,窗体中有两个图片框,名称分别为P1、P2,其中的图片内容分别是一架航天飞机和一朵云彩,一个命令按钮,名称为C1,标题为"发射",还有一个计时器,名称为Timer1。并给出了两个事件过程,但并不完整,要求:
①设置Timer1的属性,使其在初始状态下不计时;
②设置Timer1的属性,使其每隔0.1秒调用Timer事件过程一次。
③去掉程序中的注释符,把程序中的?改为正确的内容,使得在运行时单击"发射"按钮,则航天飞机每隔0.1秒向上移动一次,当到达P2的下方时停止移动,如图所示。
注意:不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。
Private Sub C1_Click()
' Timer1.Enabled = ? ***** True *****
End Sub
Private Sub Timer1_Timer()
Static a%
a = a =+1
' If P1.Top > P2.Top + P2.? Then ***** Height *****
P1.Move P1.Left, P1.Top - 5 - a, P1.Width, P1.Height
Else
' Timer1.Enabled = ? ***** False *****
End If
End Sub
(2)在考生文件夹下有一个工程文件sjt4.vbp,运行情况如图所示。程序的功能是计算下列表达式的值:
其中的N和x的值通过键盘分别输入到文本框Text1、Text2中。之后如果单击标题为"计算"、名称为Command1的命令按钮,则计算表达式的值z,并将计算结果显示在名称为Label1的标签中。
在给出的窗体文件中已经添加了全部控件和程序,但程序不完整。要求去掉程序中的注释符,把程序中的?改为正确的内容。
注意:考生不得修改窗体文件中已经存在的程序。程序中不得使用^运算符,而应使用函数xn进行幂运算。程序至少运行一次,按照下图输入数据,使x=10,N=5,单击"计算"按钮,计算z的值,并将结果显示在标签Label1中,否则没有成绩。最后,程序按原文件名存盘。
Private Function xn(a As Single, m As Integer)
Dim i As Integer
tmp = 1
For i = 1 To m
' tmp = ? ***** tmp*a *****
Next
'xn = ? ***** tmp *****
End Function
Private Sub Command1_Click()
Dim n As Integer
Dim i As Integer
Dim t As Single
Dim s, x As Single
n = Val(Text1.Text)
x = Val(Text2.Text)
z = 0
For i = 2 To n
t = x + i
' z = z +? ***** xn(t,i) *****
Next
'Label1.Caption = ? ***** z *****
Call SaveResult
End Sub
Private Sub SaveResult()
Open App.Path & "\out4.dat" For Output As #1
Print #1, Label1.Caption
Close #1
End Sub
*****第02套 综合应用题
在考生文件夹中有一个工程文件sjt5.vbp。该程序的功能是从in5.txt文件中读入40个数据,统计这些数据中素数的个数,并找出所有素数中最小的素数(判断素数的函数已给出)。最后将查找和统计的结果分别显示在标签Label4和Label3中(窗体外观如图所示)。程序不完整,请在指定的位置把程序补充完整。
注意:不得修改原有程序和控件的属性。在结束程序运行之前,必须至少正确运行一次程序,将统计的结果显示在标签中,否则无成绩。最后把修改后的文件按原文件名存盘。
Private arr(100) As Integer
Public Function prime(x As Integer)
k = Int(Sqr(x) + 5)
For i = 2 To k
If x Mod i = 0 Then
prime = False
Exit Function
End If
Next
prime = True
End Function
Private Sub Command1_Click()
Open App.Path & "\in5.txt" For Input As #1
For i = 1 To 40
Input #1, arr(i)
Next
Close #1
End Sub
Private Sub Command2_Click()
‘ ***** 请考生编写程序 *****
Dim a As Integer
Dim b As Integer
a = 0
b = arr(1)
For i = 1 To 40
If prime(arr(i)) Then a = a + 1
Label3.Caption = a
Next
For i = 1 To 40
If prime(arr(i)) And arr(i) <= b Then b = arr(i)
Label4.Caption = b
Next
'***** 考生编写程序结束 *****
Open App.Path & "\out5.txt" For Output As #1
Print #1, Label3.Caption, Label4.Caption
Close #1
End Sub
*****第03套 简单应用题
(1)在考生文件夹下有一个工程文件sjt3.vbp,其功能是:
①单击"读数据"按钮,则将考生文件夹下in3.dat文件中的100个0到999之间的整数读入到数组a中;
②单击"计算"按钮,则找出这100个整数中的所有水仙花数,并将它们的最大值与最小值分别显示在文本框Text1、Text2中。(注:当一个数的值等于该数中的各位数字的立方和时,此数被称为水仙花数。如:所以153就是一个水仙花数)
在窗体文件中已经给出了全部控件(如图所示)和"读数据"命令按钮的事件过程以及判断一个数是否为水仙花数的通用过程。要求编写"计算"命令按钮的事件过程。
注意:考生不得修改窗体文件中已经存在的控件和程序,在结束程序运行前,必须进行"计算",并且必须通过单击窗体右上角的"关闭"按钮结束程序,否则无成绩。最后,程序按原文件名存盘。
Dim a(100) As Integer
Private Sub Command1_Click()
Dim k As Integer
Open App.Path & "\in3.dat" For Input As #1
For k = 1 To 100
Input #1, a(k)
Next k
Close #1
End Sub
Private Sub Command2_Click()
'***** 需考生编写的程序 *****
Dim i As Integer
Dim max As Integer, min As Integer
max = -1
min = 1000
For i = 1 To 100
If isnarc(a(i)) Then
If max <= a(i) Then max = a(i)
If min >= a(i) Then min = a(i)
End If
Next i
Text1 = max
Text2 = min
End Sub
'以下Function 过程用于判断某数是否为水仙花数
Function isnarc(p As Integer)
x = Fix(p / 100)
y = Fix((p - x * 100) / 10)
z = p - x * 100 - y * 10
If p = x ^ 3 + y ^ 3 + z ^ 3 Then
isnarc = True
Else
isnarc = False
End If
End Function
Private Sub Form Unload(Cancel As Integer)
Open App.Path & "\out3.dat" For Output As #1
Print #1, Val(Text1.Text)
Print #1, Val(Text2.Text)
Close #1
End Sub
(2)在考生文件夹下有一个工程文件sjt4.vbp。请在窗体上添加一个组合框,名称为cb1,并输入三个列表项:"3"、"7"、"11"(列表项的顺序不限,但必须是这3个数字);添加一个名为Text1的文本框;再添加一个标题为"计算"、名称为C1的命令按钮。如图所示。请编写适当的事件过程,使得在程序运行时,在组合框中选定一个数字后,单击"计算"按钮,则计算5000以内能够被该数整除的所有数之和,并放入Text1中。最后,按原文件名存盘。
提示:由于计算结果较大,应使用长整型变量。
注意:考生不得修改窗体文件中已经存在的程序,在结束程序运行之前,必须至少进行一次计算。并且必须用窗体右上角的关闭按钮结束程序,否则无成绩。
Private Sub C1_Click()
'***** 需考生编写的程序 *****
Dim sum As Long
Dim n As Integer
Dim i As Integer
n = Val(Cb1.Text)
For i = n To 5000
If i Mod n = 0 Then
sum = sum + i
End If
Next i
Text1.Text = sum
End Sub
*****第03套 综合应用题
在考生文件夹下有一个工程文件sjt5.vbp,其名称为Form1的窗体上已有三个文本框Text1、Text2、Text3,以及部分程序代码。请完成以下工作:
①在属性窗口中修改Text3的适当属性,使其在运行时不显示,作为模拟的剪贴板使用。窗体如图所示;
②建立下拉式菜单,如下表所示:
标题
名称
编辑
Edit
剪切
Cut
复制
Copy
粘贴
Paste
③窗体文件中给出了所有事件过程,但不完整,请去掉程序中的注释符,把程序中的?改为正确的内容。以便实现如下功能:当光标所在的文件框中无内容时,"剪切"、"复制"不可用,否则可以把该文本框中的内容剪切或复制到Text3中;若Text3中无内容,则"粘贴"不能用,否则可以把Text3中的内容粘贴在光标所在的文本框中的内容之后。
注意:不能修改程序中的其他部分。各菜单项的标题名称必须正确。最后将修改后的文件按原文件名存盘。
Dim which As Integer
Private Sub copy_Click()
If which = 1 Then
Text3.Text = Text1.Text
ElseIf which = 2 Then
Text3.Text = Text2.Text
End If
End Sub
Private Sub cut_Click()
If which = 1 Then
Text3.Text = Text1.Text
Text1.Text = ""
ElseIf which = 2 Then
Text3.Text = Text2.Text
Text2.Text = ""
End If
End Sub
Private Sub edit_Click()
' If which = ? Then ***** 1 *****
If Text1.Text = "" Then
cut.Enabled = False
Copy.Enabled = False
Else
cut.Enabled = True
Copy.Enabled = True
End If
' ElseIf which = ? Then ***** 2 *****
If Text2.Text ="" Then
cut.Enabled = False
Copy.Enabled = False
Else
cut.Enabled = True
Copy.Enabled = True
End If
End If
If Text3.Text = "" Then
Paste.Enabled = False
Else
Paste.Enabled = True
End If
End Sub
Private Sub paste_Click()
If which = 1 Then
' Text1.Text = ? ***** Text1.Text+Text3.Text *****
ElseIf which = 2 Then
' Text2.Text = ? ***** Text2.Text+Text3.Text *****
End If
End Sub
Private Sub Text1_GotFocus() '本过程的作用是:当焦点在Text1中时,which = 1
which = 1
End Sub
Private Sub Text2_GotFocus() '本过程的作用是:当焦点在Text2中时,which = 2
which = 2
End Sub
*****第04套 简单应用题
(1)在名称为Form1的窗体上添加一个名称为Label1、标题为"添加项目:"的标签;添加一个名称为Text1的文本框,初始内容为空;添加一个名称为Combo1的下拉式组合框,并通过属性窗口输入若干项目(不少于3个,内容任意);再添加两个命令按钮,名称分别为Command1、Command2,其标题分别为"添加"、"统计"。在程序运行时,向Text1中输入字符,单击"添加"按钮后,则将Text1中的内容作为一个列表项被添加到组合框的列表中;单击"统计"按钮,则在窗体空白处显示组合框中列表项的个数,如图所示。请编写两个命令按钮的Click事件过程。
注意:程序中不得使用变量,也不能使用循环结构。存盘时必须存放在考生文件夹下,工程文件名保存为sjt3.vbp,窗体文件名保存为sjt3.frm。
'***** 需考生编写的程序 *****
Private Sub Command1_Click()
Combo1.AddItem Text1
End Sub
Private Sub Command2_Click()
Print Combo1.ListCount
End Sub
(2)在考生文件夹下有一个工程文件sjt4.vbp,其窗体如图所示。该程序用来对在上面的文本框中输入的英文字母串(称为"明文")加密,加密结果(称为"密文")显示在下面的文本框中。加密的方法为:选中一个单选按钮,单击"加密"按钮后,根据选中的单选按钮后面的数字n,将"明文"中的每个字母改为它后面的第n个字母("z"后面的字母认为是"a","Z"后面的字母认为是"A" ),如图所示。窗体中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的?改为正确的内容。
注意:不得修改程序中的其他部分和控件的属性。最后将修改后的文件按原文件名存盘。
Private Sub Command1_Click()
Dim n As Integer, k As Integer, m As Integer
Dim c As String, a As String
For k = 0 To 2
If Op1(k).Value Then
' n = Val(Op1(k). ? ) ***** Caption *****
End If
Next k
m = Len(Text1.Text)
a = ""
' For k = 1 To ? ***** m *****
' c = Mid$(Text1.Text, ? , 1) ***** k *****
c = String(1, Asc(c) + n)
If c > "z" Or c > "Z" And c < "a" Then
c = String(1, Asc(c) - 26)
End If
' ? = a + c ***** a *****
Next k
Text2.Text = a
End Sub
*****第04套 综合应用题
在考生文件夹下有一个工程文件sjt5.vbp,窗体上有两个文本框,名称分别为Text1、Text2,都可以多行显示。还有三个命令按钮,名称分别为C1、C2、C3,标题分别为"取数"、"排序"、"存盘"。"取数"按钮的功能是将考生文件夹下的in5.dat文件中的50个整数读到数组中,并在Text1中显示出来;"排序"按钮的功能是对这50个数按升序排序,并显示在Text2中;"存盘"按钮的功能是把排好序的50个数存到考生目录下的out5.dat文件中。如图所示。在窗体中已经给出了全部控件和部分程序代码,要求阅读程序并去掉程序中的注释符,把程序中的?改为正确的内容,并编写"排序"按钮的Click事件过程,使其实现上述功能,但不能修改程序中的其他部分,也不能修改控件的属性。最后将修改后的文件按原文件名存盘。
Dim a(50) As Integer
Private Sub C1_Click()
Dim k As Integer, ch As String
Open "in5.dat" For Input As #1
ch = ""
For k = 1 To 50
' Input #1, ? ***** a(k) *****
ch = ch + Str(a(k)) + " "
Next k
Close #1
' Text1.Text = ? ***** ch *****
End Sub
Private Sub C2_Click()
' ***** 需考生编写的程序 *****
Dim t As Integer
Dim i As Integer
Dim j As Integer
Dim ch As String
ch = ""
For i = 50 To 2 Step -1
For j = 1 To 49
If a(j) > a(j + 1) Then
t = a(j + 1)
a(j + 1) = a(j)
a(j) = t
End If
Next j
Next i
For j = 1 To 50
ch = ch + Str(a(j)) + ""
Next j
Text2.Text = ch
End Sub
Private Sub C3_Click()
Open "out5.dat" For Output As #1
Print #1, Text2.Text
Close #1
End Sub
*****第05套 简单应用题
(1)在考生文件夹下有一个工程文件sjt3.vbp(相应的窗体文件名为sjt3.frm),在窗体上添加一个名称为List1的列表框和一个名称为Text1的文本框,如图1所示。编写窗体的MouseDown事件过程。程序运行后,如果用鼠标左键单击窗体,则从键盘上输入要添加到列表框中的项目(内容任意,不少于三个);如果用鼠标右键单击窗体,则从键盘上输入要删除的项目,将其从列表框中删除。程序的运行情况如图2所示。这个程序不完整,请把它补充完整,并能正确运行。
要求:去掉程序中的注释符,把程序中的?改为适当的内容,使其正确运行,但不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Text1.Text = InputBox("请输入要添加的项目")
'List1.AddItem ? ***** Text1.Text *****
End If
If Button = 2 Then
Text1.Text = InputBox("请输入要删除的项目")
'For i = 0 To ? ***** List1.ListCount-1 *****
'If List1.List(i) = ? Then ***** Text1.Text *****
'List1.RemoveItem ? ***** i *****
End If
Next i
End If
End Sub
(2)在考生文件夹下有一个工程文件sjt4.vbp(相应的窗体文件名为sjt4.frm),其功能是通过调用过程FindMin求数组的最小值。程序运行后,在四个文本框中各输入一个整数,然后单击命令按钮,即可求出数组的最小值,并在窗体上显示出来(如图所示)。
要求:去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。
Option Base 1
Private Function FindMin(a() As Integer)
Dim Start As Integer
Dim Finish As Integer, i As Integer
'Start = ?(a) ***** LBound *****
'Finish = ?(a) ***** UBound *****
''Min = ?(Start) ***** a *****
For i = Start To Finish
'If a(i) ? Min Then Min = ? ***** < ***** ***** a(i) *****
Next i
FindMin = Min
End Function
Private Sub Command1_Click()
Dim arr1
Dim arr2(4) As Integer
arr1 = Array(Val(Text1.Text), Val(Text2.Text), Val(Text3.Text), Val(Text4.Text))
For i = 1 To 4
arr2(i) = CInt(arr1(i))
Next i
'M = FindMin(?) ***** arr2 *****
Print "最小值是: "; M
End Sub
*****第05套 综合应用题
在窗体上建立三个菜单(名称分别为Read、Calc和Save,标题分别为"读入数据"、"计算并输出"和"存盘"),然后再添加一个文本框,名称为Text1,MultiLine属性设置为True,scrollBars属性设置为2(如图所示)。程序运行后,如果执行"读入数据"命令,则读入考生文件夹下datain1.txt文件中的100个整数,放入一个数组中,数组的下界为1;如果单击"计算并输出"按钮,则把该数组中下标为偶数的元素在文本框中显示出来,求出它们的和,并把所求得的和在窗体上显示出来;如果单击"存盘"按钮,则把所求得的和存入考生文件夹下的dataout.txt文件中。
在考生文件夹下有一个工程文件sjt5.vbp,窗体文件中的ReadData过程可以把datain1.txt文件中的100个整数读入Arr数组中;而WriteData过程可以把指定的整数值写到考生文件夹下指定的文件中(整数值通过计算求得,文件名为dataout.txt)。
注意:考生不得修改窗体文件中已经存在的程序。存盘时,工程文件名仍保存为sjt5.vbp,窗体文件名仍保存为sjt5.frm。
' ***** 需考生编写的程序 *****
Dim sum As Integer
Private Sub Calc_Click()
Text1.Text = ""
For i = 2 To 100 Step 2
Text1.Text = Text1.Text & Arr(i) & Space(5)
sum = sum + Arr(i)
Next i
Print sum
End Sub
Private Sub Read_Click()
ReadData
End Sub
Private Sub Save_Click()
WriteData "dataout.txt", sum
End Sub
*****第06套 简单应用题
(1)在考生文件夹下有一个工程文件sjt3.vbp,相应的窗体文件为sjt3.frm。其功能是产生30个0~1000的随机整数,放入一个数组中,然后输出其中的最小值。程序运行后,单击命令按钮(名称为Command1,标题为“输出最小值”),即可求出其最小值,并在窗体上显示出来(如图所示)。这个程序不完整,请把它补充完整,并能正确运行。
要求: 去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。
Option Base 1
Private Sub Command1_Click( )
Dim arrN(30) as Integer
Dim Min as Integer
Randomize
For i=1 to 30
‘arrN(i)=Int(Rnd * ?) *** 1000 ***
Next i
‘?=arrN(1) *** Min ***
For i=2 to 30
‘If ? Then *** Min>arrN(i) ***
Min=arrN(i)
End if
Next i
Print Min
End Sub
(2)在考生文件夹下有一个工程文件sjt4.vbp,相应的窗体文件为sjt4.frm,在窗体上有一个命令按钮和一个文本框。程序运行后,单击命令按钮,即可计算出0~1000范围内不能被7整除的整数的个数,并在文本框中显示出来。在窗体的代码窗口中,已给出了部分程序,其中计算不能被7整除的整数的个数的操作在通用过程Fun中实现,请编写该过程的代码。
要求:
请勿改动程序中的任何内容,只在Function Fun( )和End Function之间填入你编写的若干语句。最后把修改后的文件按原文件名存盘。
Sub SaveData( )
Open App.Path & “\” & “outtxt.txt” For Output As #1
Print #1, Text1.Text
Close #1
End sub
‘*** Function Fun( ) 请考生编写的程序 ***
Dim s As Integer, i As Integer
For i = 0 To 1000
If i Mod 7 <> 0 Then
s = s + 1
End If
Next i
Fun = s
***End Function***
Private Sub Command1_click( )
D=Fun( )
Text1.Text=d
SaveData
End Sub
**
展开阅读全文