VB上机考试模拟试题要点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VB上机考试模拟试题
VB程序设计上机考试题的题型,分为两种类型:
⒈程序修改题
要求考生新建一个工程,在该工程中打开已有模块文件Modify.Bas,按照题意修改该模块中的函数或过程。

为检测所作修改是否正确,可以在新建工程中添加一些控件或编制事件过程,用以调用模块中函数或过程的语句。

其中的程序填空题,要求考生删除已有源代码中标记“ (x) ”的部分,根据题意填入适当的代码,其它部分不得改动;
其中的程序改错题:要求考生找出注释语句“'**** 错误 x ****”后的一个语句中的错误,并用正确的语句替换之,不允许改动其他的语句(也不得加行或减行)。

修改结束后,要保存工程,文件名一般按缺省,模块文件名不得改变。

⒉程序设计题
要求考生打开已有工程文件Design.vbp,按题意要求在对象窗口修改控件属性、删除代码窗口中中标记“ (x) ”的部分,根据题意填入适当的代码。

程序修改题操作指导
程序填空题:
在考生目录中,已有模块文件Modify.Bas,模块中的total过程是计算s=7+77+777+…(和式中最后一项有n个7),但不完整,请在横线上填入必要的内容,使其完整。

Modify.Bas模块中的number函数是求出n个7组成的数。

请建立工程将Modify.Bas模块加入工程中进行调试。

操作:
⑴新建工程,在“工程”菜单中选择“添加模块”子菜单,在所选择的如下所示的“现存”对话框中,打开考生目录中的文件“modify.bas”。

⑵模块modify.bas中的代码显示如下,考生应根据题意,对程序做修改。

Option Explicit '禁止使用缺省的数据类型(变体),即任何变量都要说明类型。

Public Sub total()
Const n = 20
Dim s As Single, i As Integer
For i = 1 To n
s = s + ⑴编者:需将“⑴”删除后填入“number(i)”
Next I
Form1.Print "s="; s
End Sub
Function number( ⑵ ) As Single 编者:需将“⑵”删除后填入“n as Integer” Dim i As Integer
number = 0
For i = 1 To n
⑶编者:需将“⑶”删除后填入“number=number*10+7”
Next i
End Function
⑶运行调试
在本题中,为运行调试,可以在Form1的代码窗口内写入下列事件过程:
Private Sub Form_Click()
Call p()
End Sub
在Modify.Bas模块的程序代码中,考生只能在加下划线处修改,不得加行或减行。

而为运行调试所编制的代码,可以由考生决定。

如:可以在窗体上添加命令按钮“Command1”、而将语句“Call p()”写在事件过程Command1_Click中,等等。

⑷存盘退出
程序改错题:
在考生目录中,已有模块文件Modify.Bas,其中的Calculate过程是产生100个[0,99]范围内的随机整数,统计并显示个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。

请建立工程将Modify.Bas模块加入工程中进行调试,请改正其中的错误。

注意:只要修改标出出错位置的下面那一条语句即可,其余代码不要改动。

操作(建立工程、添加模块的方法与程序填空题的操作相类似):
⑴新建工程,在“工程”菜单中选择“添加模块”子菜单,在“现存”对话框中,打开考生目录中的文件“modify.bas”。

⑵模块modify.bas中的代码显示如下,考生应根据题意,对程序做修改。

Public Sub Calculate()
Dim a(1 To 100) As Integer, a(1 To 10)As Integer, i As Integer, p As Integer ' 产生100个[0,99]范围内的随机整数,每行10个显示出来。

For i = 1 To 100
****** 错误1 ********
a(i) = Rnd * 100 需改此句为“a(i) = Int(Rnd * 100)”
If a(i) < 10 Then
Form1.Print Space(2); a(i);
Else
Form1.Print Space(1); a(i);
End If
If i Mod 10 = 0 Then Form1.Print
Next i
' 统计个位上的数字分别为1、2、3、4、5、6、7、8、9、0的数的个数
' 并将统计结果保存在数组元素x(1),x(2),…,x(10)中,将统计结果显示出来
For i = 1 To 100
'****** 错误2 ******
p = Int(a(i) / 10) 需改此句为“p = a(i) Mod 10”
If p = 0 Then p = 10
'****** 错误3 ******
x(p) = x(p) - 1 需改此句为“x(p) = x(p) + 1”
Next i
Form1.Print "统计结果"
For i = 1 To 10
p = i
If i = 10 Then p = 0
'***** 错误4 ******
Form1.Print "个位数为" & p & "共" & x(p) & "个"
Next i
End Sub
倒数第三行需改为“Print "个位数为" & p & "共" & x(i) & "个"”
⑶运行调试
⑷存盘退出
程序设计题操作指导
题目:完成一个画板程序的设计,可以根据选择的线型的粗细、颜色,用鼠标的左键模拟笔在绘图区随意绘图。

提示:考生可以双击运行考生目录下的Design.vbp工程,打开该工程后,对象窗口如下图。

完成以下具体要求:
1. 将窗体的标题文字改为“面板”
2. 将图片框picturel设置为固定边框,白色背景。

3. 添加一个通用对话框控件用于显示颜色对话框,名称为cdcolor。

4. 将代码窗口中的“…n…”(n为1,2,3,4)部分删除后改为合适的内容。

注意:代码窗口中其余代码不要做修改。

操作:
⑴打开考生目录下的工程文件Design.vbp
⑵按照题意要求,在对象窗口添加对象、修改对象的属性
⑶在代码窗口中,将所显示的“(x)”删除、用合适的代码填充
Option Explicit
Private Sub Command1_Click()
⑴编者:需将“⑴“删除后填入“Cdlcolor.ShowColor”
⑵编者:需将“⑵”删除后填入“Picture1.ForeColor = CdColor.Color” End Sub
Private Sub Command2_Click()
⑶编者:需将“⑶”删除后填入“Picture1.Cls”
End Sub
Private Sub Picture1_MouseMove(Button As Integer,Shift AS _
Integer, X As Single, Y As Single)
' 在鼠标移动事件过程中,按下鼠标左键时 Button值为1,按下鼠标右键时 Button ' 值为2,否则为0。

If Option1.Value = True Then Picture1.DrawWidth = 1
If Option2.Value = True Then Picture1.DrawWidth = 5
If Button = 1 Then
⑷编者:需将“⑷”删除后填入“Picture1.Pset(x,y)”
End If
End Sub
⑷存盘退出
VB上机考试部分模拟试题
【程序填空题1】在考生目录中,已有模块文件Modify.Bas,其中的Summary过程用于计算并显示S=1+2+22+23+……直至S超过1016为止。

请在程序处划线处填入必要的内容,使其完整。

请建立工程,将Modify.Bas模块加入工程中进行调试。

Option Explicit
Public Sub summary()
Dim s As Single, i As Integer
⑴需在此填入“s = 1”
i = 1
⑵需在此填入“Do While s <= 1e16”
s = s + 2^i
⑶需在此填入“i = i +1”
Loop
Form1.Print "s="; s
End Sub
【程序设计题1】完成一个正弦曲线程序的设计,在图片框中画出[-π,π]区间的正弦波形。

要求将图片框的坐标系重新定义为左上角坐标(-π,1),右下角坐标为(π,-1),并在图片框中画出坐标的X轴和Y轴。

提示:考生可以双击运行考生目录下的Design1.exe文件查看程序的最终效果。

在考生目录中,已经有一个未完成的Design.vbp工程,打开该工程后的对象窗口如下图所示。

完成以下具体要求:
1. 将窗体的标题文字改为“正弦曲线”。

2. 将图片框Picture1设置为固定边框,白色背景。

注意:代码窗口中其余代码不要做修改。

Option Explicit
Private Sub Command1_Click()
Const PI = 3.1415926
Dim i As Single
⑴ '定义图片框的坐标系需在此填入“Picture1.Scale(-PI,1)-(PI,-1)”
⑵ '画出X轴直线需在此填入“Picture1.Line(-PI,0)-(PI,0)”
⑶ '画出Y轴直线需在此填入“Picture1.Line(0,-1)-(0,1)”
' 以下语句对坐标轴进行曲标注
Picture1.CurrentX = -pi : Picture1.CurrentY = -0.1
Picture1.Print "–π" : Picture1.CurrentX = pi - 0.3
Picture1.Print "π" : Picture1.CurrentX = 0.2
Picture1.CurrentY = -0.1 : Picture1.Print "0"
Picture1.CurrentX = 0.2 : Picture1.CurrentY = 1 - 0.1
Picture1.Print "1" : Picture1.CurrentX = 0.2
Picture1.CurrentY = -1 + 0.1 : Picture1.Print "-1"
' 以下语句画出[-π,π]区间的正弦波形
For i = -PI To PI Step 0.0001
⑷需在此填入“Picture1.Pset(i,sin(i))”
Next i
End Sub
【程序填空题2】在考生目录中,已有模块文件Modify.Bas,请完成下列题目要求。

Modify.Bas模块中的Transpose过程用于产生一个转置矩阵(所谓转置是指将二维数组中所有行和对应列的元素进行交换),但不完整,请在横线上填入必要的内容,使其完整。

Modify.Bas 模块中的Swap过程用于交换两个变量的值。

请建立工程将Modify.Bas模块加入工程中进行调试。

注意:只需将横线位置的内容删除后填入合适的内容即可,其余代码不要改动。

Public Sub Transpose()
'产生一个6×6的转置矩阵,将二维数组中所有行和对应列的元素进行交换
Dim a(1 To 6,1 To 6) As Integer, i As Integer, j As Integer
Form1.Print "原始数据"
For i = 1 To 6
For j = 1 To 6
a(i,j) = Int(Rnd * 10)
Form1.Print a(i,j);
Next j
Form1.Print
Next i
For i = 2 To 6
For j = 1 To ⑴需在此填入“i - 1”
⑵需在此填入“Call Swap(a(i,j),a(j,i))”
Next j
Next i
Form1.Print "转置后数据"
For i = 1 To 6
For j =1 To 6
⑶需在此填入“Print a(i,j);”
Next j
Form1.Print
Next i
End Sub
Public Sub Swap(a AS Integer,b As Integer)
Dim temp As Integer
Temp = a
a = b
b = temp
End Sub
【程序设计题2】完成一个文本编辑器程序的(部分)设计,要求设计一个带有垂直滚动条的文本框,可以对文本框中选中的文本进行查找和替换操作。

第一次单击“查找”按钮后,出现输入框用于输入查找内容,并开始在文本框中查找第一个匹配的字符串并选中,再单击“查找”按钮则继续定位下一个匹配的字符串,直到没有匹配的字符串为止,这时可以开始其他内容的查找。

“替换为”按钮用于将文本框中选中的内容替换成指定的字符串,未选中内容则不做替换。

提示:考生可以双击运行考生目录下的Design1.exe文件查看程序的最终效果。

在考生目录中,已经有一个未完成的Design.vbp工程,打开该工程后,对象窗口如下图。

完成以下具体要求:
1. 将窗体设置为固定大小,没有最大化和最小化按钮。

2. 对文本框Text1进行合理的设置,使其带有垂直滚动条。

编者:将Form1.MaxButton、MinButton属性设置为False,Form1.BorderStyle属性设置为1-fixed Single,Text1.ScrollBars设置为 2-Vertical。

Option Explicit
Dim find1 As Integer, i As Integer
Dim Len1 As Integer, Len2 As Integer, findstr As String
Private Sub Command1_Click()
Static times As Integer
If times = 0 Then
findstr = InputBox(“查找?","查找")
Len1 = Len(findstr) : Len2 = Len(Text1.Text)
End If
⑴需在此填入“times = times + 1”
For i = find1 + 1 To Len2
If ⑵ Then 需在此填入“findstr = Mid(Text1.Text,i,Len1)” find1 = i
Text1.SetFocus
Text1.SelStart = i - 1
⑶需在此填入“Text1.SelLength = Len1”
Exit Sub
End If
Next i
If ⑷ Then 需在此填入“i >= Len2”
MsgBox "完成全部搜索!"
times = 0
End If
End Sub
Private Sub Command2_Click() '选中一段文本后,单击该按钮、执行替换操作。

Dim repstr As String
repstr = InputBox("替换为","替换")
If Text1.SelLength <> 0 Then
⑸需在此填入“Text1.SelText = repstr”
Else
MsgBox "没有被替换的对象"
End If
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
find1 = 0
End Sub
【程序填空题3】在考生目录中,已有模块文件Modify.Bas,模块中的PrintArray过程是输出一个右上三角元素(含对角线)为1,其余元素为0的5×5矩阵。

请填入必要的内容,使其完整。

请建立工程将Modify.Bas模块加入工程中进行调试。

注意:只需将横线位置的内容删除后填入合适的内容即可,其余代码不要改动。

Public Sub PrintArray()
Dim a(1 To 5,1 To 5) As Integer, i As Integer, j As Integer
For i = 1 To 5
For j = 1 To 5
If ⑴ Then 需在此填入“i <= j”
⑵需在此填入“a(i,j) = 1”
End If
Next j
Next i
For i = 1 To 5
For j = 1 To 5
Form1.Print " "; a(i,j)
Next j
⑶需在此填入“Print”
Next i
End Sub
【程序设计题3】完成一个计时器程序的设计,要求单击“开始计时”按钮后,程序根据选择的时间倒计时,并将剩余的时间显示在标签中,直到0分0秒为止。

提示:考生可以双击运行考生目录下的Design1.exe文件查看程序的最终效果。

在考生目录中,有一个未完成的Design.Vbp工程,打开该工程后的对象窗口如下图所示,完成以下具体要求:
1. 将标签设置为固定边框,字体颜色设为红色,字号为16。

2. 将定时器的间隔设置为1秒。

3. 对单选钮控件数组进行合适的设置,使时间选择默认为5分钟。

编者:将 Label1..BorderStyle属性设置为1-fixed Single,Timer1.Interval属性设置为1000,Option1(1).TabIndex设置为0。

Option Explicit
Dim pretime As Integer, mm As Integer, ss As Integer
Private Sub Command1_Click()
Command1.Enabled = False
Frame1.Enabled = False
Timer1.Enabled = True
End Sub
Private Sub Form_Load()
Timer1.Enabled = False : Pretime = 300
End Sub
Private Sub Option1_Click(Index As Integer)
Select Case Index
Case 0
Pretime = 60
Case 1
Pretime = 300
Case 2
Pretime = 600
End Select
End Sub
Private Sub Timer1_Timer()
mm = ⑴需在此填入“Pretime \ 60”
ss = ⑵需在此填入“Pretime Mod 60”
Label1.Caption = str(mm) & "分" & Str(ss) & "秒"
If ⑶ Then 需在此填入“mm = 0 And ss = 0”
Timer1.Enabled = False
Command1.Enabled = True
Frame1.Enabled = True
End If
⑷需在此填入“pretime = pretime - 1”
End Sub
【程序设计题4】完成一个家电提货单管理程序的设计,根据选项中选择的家电及数量,单击“确定”后,将选择的清单及总价在列表框中列出,“清除”按钮用于清空列表框中的项目。

要求在操作过程中,每选择一种家电,光标自动定位在相应的文本框中,取消选择时,相应的文本框自动清空,所有文本框只接受数字。

提示:考生可以双击运行考生目录下的Design1.exe文件查看程序的最终效果。

在考目录中,已有一个未完成的Design.Vbp工程,打开该工程后的对象窗口如下图所示,完成以下具体要求:
1. 将窗体设置为固定大小、没有最大化和最小化按钮。

2. 对文本框Text1控件数组进行合理的设置,使所有文本框的对齐方式为右对齐。

编者:将Form1.MaxButton、MinButton属性设置为False,Form1.BorderStyle属性设置为1-fixed Single,Text1(0)~Text1(4)的Alignment属性均设置为1-Right Justify。

Option Explicit
Private Sub Check1_Click(Index As Integer)
⑴需在此填入“Text1(Index).Text = ""”
If Check1(Index).Value = 1 Then Text1(Index).SetFocus
End Sub
Private Sub Command1_Click()
Dim i As Integer, sum As Long, title As String, price As Integer
sum = 0
For i = 0 To 4
Select Case i
Case 0
title = "电视机" : price = 2580
Case 1
title = "微波炉" : price = 760
Case 2
title = "电冰箱" : price = 1750
Case 3
title = "DVD"
price = 3080
Case 4
title = "分体空调"
price = 6500
End Select
If Check1(i).Value = 1 And Text1(i).Text <> "" Then
List1.AddItem title & Text(i).Text & "台"
⑵需在此填入“sum = sum + price * val(Text1(I).Text)”
End If
Next i
If sum ◇ 0 Then ⑶需在此填入“List1.AddItem Str(sum)”
End Sub
Private Sub Command2_Click()
⑷需在此填入“List1.Clear”
End Sub
Private Sub Text1_Keypress(Index As Integer,KeyAscii As Integer)
If Chr(KeyAscii) > "9" Or Chr(keyAscii) < "0" Then
⑸需在此填入“KeyAscii = 0”
End if
End Sub
【程序填空题4】在考生目录中,已有模块文件Modify.Bas,模块中的Uppersen过程是将一个英文句子的每个单词的首字母变成大写。

例如:输入“i am a good student.”,输出为“I Am A Good Student.”。

请在横线上填入必要的内容,使其完整。

请建立工程将Modify.Bas模块加入工程中进行调试。

注意:只需将横线位置的内容删除后填入合适的内容即可,其余代码不要改动。

Option Explicit
Public Sub Uppersen()
' 从键盘上任意输入一条英文句子,将句子中的每个单词的首字母都变成大写
Dim oldsen As String, newsen As String, char As String
Dim lastchar As String, L As Integer, i As Integer
Oldsen = InputBox("请输入英文句子:")
L = ⑴需在此填入“Len(oldsen)”
' 以空格作为单词的界定符,空格后的字母转换为大写字母。

lastchar = ⑵需在此填入“""”
For i = 1 To L
char = ⑶需在此填入“Mid(oldsen,i,1)”
If lastchar = " " Then char = ⑷需在此填入“ Ucase(char)”
newsen = newsen & char
lastchar = char
Next i
Print "input:"; oldsen
Print "output:"; newsen
End Sub
【程序设计题5】完成一个密码检验程序的设计,要求当在文本框中输入密码“1234567”并按回车后,显示(标签Label2)“欢迎光临!”;如果输入的密码与“1234567”不吻合,显示“密码不符,请再输入一遍!”,同时清空文本框的内容,允许再输入一遍;如果输入的密码仍然与“1234567”不吻合,显示“非法用户,请退出程序!”、文本框不能使用。

提示:考生可以双击运行考生目录下的Design1.exe文件查看程序的最终效果。

在考生目录中,已有一个未完成的Design.Vbp工程,打开该工程后的对象窗口如下图所示,完成以下具体要求;
1. 对文本框控件Text1进行设置,使得在文本框控件中输入的字符显示为*,并且最多可以接受8个字符,请对文本框控件Text1的相应属性进行设置。

2. 将标签控件Label2的对齐方式设置为居中对齐,大小随字体自动调整,不可见。

编者:将Text1.PasswordChar设置为"*"、Maxlength属性设置为8,Label2.Alignment 属性设置为2-Center、AutoSize属性设置为True、Visible属性设置为False。

Private Sub Command1_Click()
End
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Static times As Integer ' 统计第几次输入密码
' 按回车键后进行密码检验
If ⑴ Then 需在此填入“KeyAscii = 13”
If ⑵ Then 需在此填入“Text1.Text = "1234567"”
Label2.Caption = "欢迎光临!"
⑶需在此填入“Label2.Visible = True”
Else
If ⑷ Then 需在此填入“times = 0”
Label2.Caption = "密码不符,请再输入一遍!"
Label2.Visible = True
Text1.Text = ""
Else
Label2.Caption = "非法用户,请退出程序!"
Text1.Text = ""
⑸需在此填入“Text1.Enabled = False”
End If
End If
times = times + 1
End If
End Sub
【程序设计题6】完成一个文本编辑器程序的(部分)设计,要求设计一个带有垂直滚动条的文本框,可以对文本框中选中的文本进行剪切、复制、粘贴和删除的操作。

提示:考生可以双击运行考生目录下的Design.exe文件查看程序的最终效果。

在考生目录中,已经有一个未完成的Design.Vbp工程,打开该工程后的对象窗口如下图所示。

完成以下具体要求;
1. 将窗体设置为固定大小,没有最大化和最小化按钮。

2. 将文本框Text1进行合理的设置,使其带有垂直滚动条。

Private Sub Command1_Click() ' 剪切
⑴需在此填入“Clipboard.SetText(Text1.SelText)”
⑵需在此填入“Text1.SelText = ""”
End Sub
Private Sub Command2_Click() ' 复制
⑶需在此填入“Clipboard.SetText(Text1.SelText)”
End Sub
Private Sub Command3_Click() ' 粘贴
⑷需在此填入“Text1.SelText = Clipboard.GetText”
End Sub
Private Sub Command4_Click() ' 删除
⑸需在此填入“Text1.SelText = ""”
End Sub
Private Sub Command5_Click()
End
End Sub
【程序填空题5】在考生目录中,已有模块文件Modify.Bas。

模块中even过程是找出一个大于4的偶数的所有不重复的素数分解式,模块中的Isprime函数过程是判断一个数是否素数。

请在横线上填入必要的内容,使其完整。

请建立工程将Modify.Bas模块加入工程中进行调试。

Option Explicit
Public Sub even()
'从键盘输入一个必须大于4的偶数,将它所有的不重复的分解式求出
Dim x As Integer, i As Integer
⑴需在此填入“Do Until x>4 and x Mod 2 = 0”
x = Val(InputBox("x="))
Loop
For i = 3 To x / 2 Step 2
⑵需在此填入“If Isprime(x) Then”
Print x; "="; i; "+"; x - i
End If
Next i
End Sub
Public Function Isprime(x As Integer) As Boolean
Dim i As Integer
⑶需在此填入“Isprime = True”
For i = 2 To x - 1
⑷需在此填入“If x Mod i = 0 Then”
Isprime = False
Exit For
End If
Next i
End Function
【程序填空题6】在考生目录中,已有模块文件Modify.Bas,模块中的Fabonia过程是对以下数列进行运算:该数列的前三个数是0、1、2,从第四个数起,每个数都是它前面的两个数之和。

求该数列的第17项,并求出从第几项起每项都超过108。

请在横线上填入必要的内容,使其完整。

请建立工程将Modify.Bas模块加入工程中进行调试。

Option Explicit
Public Sub Fabonia()
Dim last_one As Long, last_two As Long
Dim this_one As Long, i As Integer
last_one = 1
last_two = 2
i = 4 '从数列的第四个数求起
Do
this_one = last_one + last_two
⑴需在此填入“last_one = last_two”
⑵需在此填入“last_two = this_one”
If i = 17 Then Print "No:17="; this_one
⑶需在此填入“i = i + 1”
Loop While this_one <= 100000000#
Print "No"; ⑷ ; "is>1E8" 需在此填入“i”
End Sub
【程序设计题7】完成一个改变图形形状大小的程序的设计,要求可以用滚动条改变圆的大小,同时把圆的直径在标签Label2上显示出来。

考生可以双击运行考生目录下的Design1.exe文件查看程序的最终效果。

在考生目录中,已有一个未完成的Design.Vbp工程,打开该工程后的对象窗口如下图所示。

完成以下具体要求:
1. 将形状控件Shape1设置为圆形,并且显示出填充色为红色。

2. 将标签控件Label2的对齐属性设置为居中对齐。

编者:将Shape1.shape设置为3-Circle、FillColor属性设置为红色、FillStyle属性设置为0-Solid。

Private Sub Form_Load()
Hscroll1.Max = 3400
Hscroll1.Min = 10
rgeChange = 100
Hscroll1.SmallChange = 10
Hscroll1.Value = 3400
End Sub
Private Sub Hscroll1_Change()
Shape1.Width = ⑴需在此填入“Hscroll1.Value”
Shape1.Height = ⑵需在此填入“Hscroll1.Value”
Shape1.Left = 2400 - Hscro111.Value / 2
Shape1.Top = 1800 - Hscro111.Value / 2
⑶需在此填入“Label2.Caption = Hscroll1.Value”
End Sub
Private Sub Hscro111_Scro11()
⑷需在此填入“Hscroll1_Change”
End Sub
【程序设计题8】完成一个字体修饰程序的设计,要求程序启动后单击相应的复选框或单选钮,均在标签文字“Visual Basic程序设计”上体现出来。

提示:考生可以双击运行考生目录下的Design1.Exe文件查看程序的最终效果。

在考生目录中,已有一个未完成的Design.Vbp工程,打开该工程后的对象窗口如下图所示。

完成以下具体要求:
1. 将窗体的标题改为“字体修饰”,窗体设置为固定大小,没有最大化和最小化按钮。

2. 在框架控件Frame2中引入单选钮控件数组Option1,Option1(0)标题为“宋体”,Value 属性为True,Option1(1)标题为“楷体”。

Private Sub Check1_Click(Index As Integer)
' 设置粗体
If ⑴ Then 需在此填入“Check1(0).Value = 1”
Label1.FontBold = True
Else
Label1.FontBold = False
End If
' 设置斜体
If ⑵ Then 需在此填入“Check1(1).Value = 1”
Label1.FontItalic = True
Else
Label1.FontItalic = False
End If
End Sub
Private Sub Option1_Click(Index As Integer)
Select Case Index
Case 0 ' 设置宋体
⑶需在此填入“Label1.FontName = "宋体"”
Case 1 ' 设置楷体
⑷需在此填入“Label1.FontName = "楷体_GB2312"” End Select
End Sub
【程序填空题7】在考生目录中已有模块文件Modify.Bas,其中Sum过程是用于计算并显示f=1-1/(2*3)+1/(3*4)-1/(4*5)+......+1/(19*20),请在横线上填入必要的内容,使其完整。

请建立工程将Modify.Bas模块加入工程中进行调试。

Option Explicit
Public Sub Sum()
' 计算 f=1-1/(2*3)+1/(3*4)-1/(4*5)+……+1/(19*20)
Dim f As Single, i As Integer, sign As Integer
⑴需在此填入“sign = -1”
f = 1
⑵需在此填入“For i = 2 To 19”
f = f + sign / (i * (i + 1))
⑶需在此填入“sign = -sign”
Next i
Print "f="; f
End Sub
【程序填空题8】在考生目录中,已有模块文件Modify.Bas,模块中的SortData过程是生成10个在[30,50]区间的随机整数、并按照从小到大的顺序显示,请在横线上填入必要的内容,使其完整(Modify.Bas模块中的Swap过程用于交换两个变量的值)。

请建立工程将Modify.Bas模块加入工程中进行调试。

Public Sub SortData()
Dim a(10) As Integer, i As Integer, j As Integer
For i = 1 To 10
a(i) = ⑴需在此填入“Rnd * 20 + 30”
Next i
For i = 1 To 9
⑵需在此填入“For j = i + 1 To 10”
If a(i) > a(j) Then ⑶需在此填入“ Call Swap(a(i),a(j))”
Next j
Print a(i)
Next i
Print ⑷需在此填入“a(i)”或“a(10)”
End Sub
Public Sub Swap(a As Integer, b As Integer)
Dim x As Integer
x = a : a = b : b = x
End Sub
【程序设计题9】完成“蝴蝶飞舞”的程序设计,要求程序启动后窗体最大化,蝴蝶从左下角沿Y=X/2+300直线方程轨迹飞向右上角,飞出窗体外后,重新沿原轨迹飞行。

提示:考生可以双击运行考生目录下的Design1.exe文件查看程序的最终效果。

在考生目录中,已有一个未完成的Design.Vbp工程,工程的窗体中有两个影像框控件Image1、Image2和一个定时器控件Timer1,其中Image1和Image2的Picture属性已经设置了图片,要求再引入一个影像框控件,使其在定时器的控制下交替显示Image1和Image2中的图片并沿Y=X/2+300直线方程轨迹循环移动。

打开该工程后的对象窗口如下图所示。

完成以下具体要求:
1. 将窗体的背景色改为白色。

2. 将定时器的间隔设置为0.1秒。

3. 引入一个影像框控件Imgfly,将其Strecth属性设为True,宽度和高度均为1335twips。

Option Explicit
Dim starttop As Integer
Private Sub Form_Load()
Form1.Left = 0 : Form1.Top = 0
Form1.Width = ⑴需在此填入“Screen.Width”
Form1.Height = ⑵需在此填入“Screen.Height”
End Sub
Private Sub Timer1_Timer()
Static flag
Dim x As Single, y As Single
x = Imgfly.Left
y = x / 2 + 300
If flag = 0 Then
⑶需在此填入“Imgfly.Picture = Image1.Picture”
flag = 1
Else
⑷需在此填入“Imgfly.Picture = Image2.Picture”
flag = 0
End if
Imgfly.Move Imgfly.left + 100, ⑸需在此填入“Imgfly.Top - 50”
If Imgfly.Top <= 0 Or Imgfly.Left >= Me.ScaleWidth Then
Imgfly.Top = Form1.ScaleHeight - Imgfly.Height
Imgfly.Left = 0
End If
End Sub
【程序改错题1】在考生目录中,已有模块文件Modify.Bas,其中的JiSuan过程是用于计算1- 1/2 + 1/3 - … + 1/99 - 1/100 的值并显示。

请建立工程将Modify.Bas模块加入工程中进行调试,请改正其中的错误。

注意:只要修改标出出错位置的下面那一条语句即可,其余代码不要改动。

Public Sub JiSuan()
Dim i As Integer
***** 错误1 ****
Dim k As Integer 需改此句为“Dim k As Single”
Dim s As Single
s = 0
***** 错误2 *****
For i = 1 To 100 需改此句为“For i = 1 To 100 Step 2”
k = 1 / i
s = s + k
***** 错误3 *****
k = 1 / i + 1 需改此句为“k = -1/(i + 1)”
s = s + k
Next i
Print "s="; s
End Sub
【程序设计题10】完成一个文本编辑器程序(部分)的设计,要求设计一个带有垂直滚动条的文本框,文件菜单下的“打开”、“保存”菜单项分别用于打开指定的文本文件和保存文本框中的内容到指定文本文件,窗体上已有一个通用对话框控件cdfile,用于显示“打开”和“保存”对话框。

考生可以双击运行考生目录下的Design1.exe文件查看程序的最终效果。

在考生目录中,已经有一个未完成的Design.Vbp工程,打开该工程后的窗体如下图左所示、已完成的菜单设计如下图右所示。

完成以下具体要求:
1. 将窗体设置为固定大小,没有最大化和最小化按钮。

2. 对文本框Text1进行合理的设置,使其带有垂直滚动条。

3. 在“打开”和“退出”菜单项之间添加一个“保存”菜单项,名称为mnusave。

Option Explicit
Private Sub Mnuexit_Click()
End
End Sub
Private Sub mnuopen_Click()
Dim filename As String, LL As String
On Error GoTo errfile
Text1.Text = ""
⑴需在此填入“cdfile.Action = 1”
filename = cdfile.Filename
Open filename For Input As #1
Do While ⑵需在此填入“Not Eof(1)”
Line Input #1, LL
⑶需在此填入“Text1.Text = Text1.Text + LL + Chr(13) + Chr(10)” Loop
Close #1
Exit Sub
Errfile:
Cdfile.Filename = ""
End Sub
Private Sub mnusave_Click()
Dim filename As String, LL As String
On Error GoTo Errfile
⑷需在此填入“cdfile.Action = 2”
filename = cdfile.Filename
If filename = "" Then Exit Sub
Open filename For Output As #1
⑸需在此填入“Write #1,Text1.Text”
Close #1
Errfile:
Cdfile.Filename = ""
End Sub
【程序改错题2】在考生目录中,已有模块文件Modify.Bas,其中过程ComDiv是求任意两个正整数的最大公约数。

请建立工程将Modify.Bas模块加入工程中进行调试、改正其中的错误。

注意:只要修改标出出错位置的下面那一条语句即可,其余代码不要改动。

Option Explicit
Public Sub ComDiv()
Dim m As Integer, n As Integer, i As Integer, div As Integer
' 输入两个正整数,要求m与n都必须大于零
Do
M = Val(InputBox("m="))
n = Val(InputBox("n="))
***** 错误1 *****
Loop While m <= 0 And n <= 0 需改此句为“Loop While m<=0 Or n<=0” ' 先将两个整数中的较小数假设为最大公约数,
' 再依次往下寻找能同时除尽m和n的数即为最大公约数
***** 错误2 *****
div = 0 需改此句为“div = m”
If n<m Then Div = n
***** 错误3 ******
Do While m Mod div=0 And n Mod div=0
需改上句为“Do Until m Mod div=0 And n Mod div=0” ***** 错误4 ******
div = div + 1 需改此句为“div = div - 1”
Loop
Print m; "和"; n; "的最大公约数是:"; div
End Sub
【程序填空题9】在考生目录中,已有模块文件Modify.Bas,其中的过程aboveave是先计算出30个1~100之间的随机整数的平均值,再找出这30个数中数值大于平均值的数,并统计出这些数据的个数。

请在横线上填入必要的内容,使其完整。

请建立工程将Modify.Bas模块加入工程中进行调试。

Option Explicit
Public Sub aboveave()
Dim x(30) As Integer, sum As Integer, ave As Integer, i As Integer
Dim count As Integer ' 在平均值之上的数据个数
Randomize
For i = 1 To 30
x(i) = Int(Rnd * 100) + 1
Next i
sum = 0
For i = 1 To 30
⑴需在此填入“sum = sum + x(i)”
Next i
ave = ⑵需在此填入“ave = sum / 30”
' 5个一行显示出原始数据,显示平均值
For i = 1 To 30
Print x(i); Space(2);
If i Mod 5 = 0 Then Print
Next i
Form1. Print "平均值:"; ave
' 找出并5个一行显示大于平均值的数,显示统计的个数
Form1.Print "大于平均值的数是:"
For i = 1 To 30
If x(i) > ave Then
⑶需在此填入“count = count + 1”
Form1.Print x(i); Space(2)
If ⑷ Then Form1.Print 需在此填入“count Mod 5 = 0”
End If
Next i
Form1.Print
Form1.Print "共有"; count; "个数大于平均值"
End Sub
【程序填空题10】在考生目录中,已有模块文件Modify.Bas,其中的Money过程是用于统计一个有7个工作人员的餐厅发工资所需的100元、50元、10元、5元和1元的票面数,请在横线上填入必要的内容,使其完整。

Modify.Bas模块中的salaryData过程是给出7个员工的工资。

(工资单位是元)请建立工程,将Modify.Bas模块加入工程中进行调试。

Dim salary(7) As Integer
Public Sub Money()
Dim hundred As Integer, totalhundred As Integer ' 100元票面数量、总数量
Dim fifty As Integer, totalfifty As Integer ' 50元票面数量、总数量
Dim ten As Integer, totalten As Integer ' 10元票面数量、总数量
Dim five As Integer, totalfive As Integer ' 5元票面数量、总数量
Dim one As Integer, totalone As Integer ' 1元票面数量、总数量
Dim totalsalary As Integer ' 工资总计
Dim i As Integer, temp As Integer
totalhundred = 0 : totalfifty = 0 : totalten = 0
totalfive = 0 : totalone = 0 : totalsalary = 0
For i = 1 To 7
temp = ⑴需在此填入“salary(i)”
hundred = Int(temp / 100)
temp = ⑵需在此填入“temp = temp - hundred * 100”
fifty = Int(temp / 50)
temp = temp - fifty * 50
ten = Int(temp / 10)
temp = temp - ten * 10
five = Int(temp / 5)
temp = temp - five * 5
One = ⑶需在此填入“temp”
totalhundred = totalhundred + hundred
totalfifty = totalfifty + fifty
totalten = totalten + ten
totalfive = totalfive + five
totalone = totalone + one
totalsalary = ⑷需在此填入“totalsalary + salary(i)”
Next i
Form1.Print "共需100元" & Str(totalhundred) & "张"
Form1.Print "共需50元" & Str(totalfifty) & "张"
Form1.Print "共需10元" & Str(totalten) & "张"
Form1.Print "共需5元" & Str(totalfive) & "张"
Form1.Print "共需1元" & Str(totalone) & "张"
Form1.Print "合计" & Str(totalsalary) & "元"
End Sub
Public Sub SalaryData()
salary(1) = 1398 : salary(2) = 1765
salary(3) = 689 : salary(4) = 1500
salary(5) = 832 : salary(6) = 590
salary(7) = 1200
End Sub
【程序设计题11】完成一个字体设置程序的设计,要求分别单击三个组合列表框的列表项时,都能实现对标签控件Labell字体的设置。

考生可以双击运行考生目录下的Design1.exe文件查看程序的最终效果。

在考生目录中,已经有一个未完成的Design.Vbp工程,打开该工程后的对象窗口如下图所示。

完成以下具体要求;
1. 将标签Label1的标题设置为“程序设计”、对齐方式设置为居中、字号为12、大小随文字字体大小自动改变。

2. 程序启动后组合列表框Combo3的文本框显示为12,对Combo3相关属性做合理设置。

编者:将Combo3.Text属性设置为"12"。

Private Sub Combo1_Click()
⑴需在此填入“Label1.FontName = Combo1.Text”
End Sub
Private Sub Combo2_Click()
Select Case ⑵需在此填入“Combo2.Text”。

相关文档
最新文档