VB1
一、改错题
[题目] 本程序的功能是用来统计二维数组A(1 to 4,1 to 4)中所有的元素中0~9十个数字出现的次数,存入数组Times中并显示在窗体上。
Option Explicit
Private Sub Form_Click()
Dim a(1 To 4, 1 To 4) As Integer, i As Integer, j As Integer
Dim Times(9)
Randomize
For i = 1 To 4
For j = 1 To 4
a(i, j) = Int(Rnd(1) * 100) + 1
Print Format(a(i, j), "###");
Next j
Next i
Call Stat(a, Times)
For i = 1 To 10
Print i; "..."; Times(i)
Next i
End Sub
Private Sub Stat(a() As Integer, T() As Integer)
Dim i As Integer, j As Integer, Cub As Integer, K As Integer
Dim Rub As Integer, Char As String
Cub = UBound(a, 1): Rub = UBound(a, 2)
For i = 1 To Cub
For j = 1 To Rub
Char = LTrim(Str(a(i, j)))
For K = 1 To 10
T (Mid(Char, K, 1)) + 1
Next K
Next j
Next i
End Sub
[要求]
1.新建工程,输入上述代码,改正程序中的错误;
2.改错时,不得增加或删除语句;
3.以Myfrm1的名字和Myprj1的名字分别将窗体和工程保存到软件A的根目录下。
二、编程题
[题目] 编写一个收购小麦与代扣农业税的程序。
[编程要求]
1.程序参考界面如图所示。其中Label1对象用于显示“小麦的收购价格是:1.10元/公斤”、“农业税额:55元/亩”等提示信息。编程时不得增加或减少界面对象或改变对象的种类,但界面元素的大小、位置可以随意设置。
2.实现功能:
(1)单击“计算”按钮,则根据输入的小麦数量以及所拥有的土地亩数,求出应交税款和应得粮税(应得粮税=小麦总金额-应缴税款),并显示在相应的文本框中;
(2)单击“清除”按钮,清除四个文本框中的内容;
(3)单击“结束”按钮,结束程序进行;
[要求] 以Myfrm2的名字和Myprj2的名字分别将窗体和工程保存到软件A的根目录下。[注意] 考试结束,考试盘中若无指定文件,则不于给分。
VB2
一、改错题
[题目] 本程序的功能是将一个正整数序列重新排列为一个新的序列。新序列排列规则是:序列左边是奇数,序列右边是偶数,奇、偶数分别从序列的两端开始依次向序列中
间排放。
例如,若原序列是31,58,71,5,82,45,54,41,2
则新序列是31,71,5,45,41,2,54,82,58
Option Explicit
Option Base 1
Private Sub Form_Click()
Dim a(10) As Integer, i As Integer, j As Integer
Dim b(10) As Integer, k As Integer
For i = 1 To 10
a(i) = Int(Rnd * 100) + 1
Print a(i);
Next i
j = 1: k = 5
For i = 1 To 10
If a(i) Mod 2 = 0 Then
b(j) = a(i)
j = j + 1
Else
b(k) = a(i)
k = k + 1
End If
Next i
For i = 1 To 10
Print b(i);
Next i
End Sub
[要求]
1. 新建工程,输入上述代码,改正程序中的错误;
2.改错时,不得增加或删除语句;
3.以Myfrm1的名字和Myprj1的名字分别将窗体和工程保存到软件A 的根目录下。
二、 编程题
[题目] 编写一个收购小麦与代扣农业税的程序。
[编程要求]
1.程序参考界面如图所示。其中Label1对象用于显示“小麦的收购价格是:1.10元/公斤”、“农业税额:55元/亩”等提示信息。编程时不得增加或减少界面对象或改变对象的种类,但界面元素的大小、位置可以随意设置。
2.实现功能:
(1) 单击“计算”按钮,则根据输入的小麦数量以及所拥有的土地亩数,求出应交税款
和应得粮税(应得粮税=小麦总金额-应缴税款),并显示在相应的文本框中;
(2) 单击“清除”按钮,清除四个文本框中的内容;
(3) 单击“结束”按钮,结束程序进行;
[要求] 以Myfrm2的名字和Myprj2的名字分别将窗体和工程保存到软件A 的根目录下。
[注意] 考试结束,考试盘中若无指定文件,则不于给分。
VB3
一、改错题
[题目] ???+++???+++++=--2
118151312111n n f f Y
式中:.3),(,2,12121≥+===--n f f f f f n n n
(本程序运行结果是:Y=2.359646)
Option Explicit
Private Sub Form_Click()
Dim A() As Single, i As Integer
Dim y As Single
i = 1
Do
ReDim A(i)
A(i) = 1 / Fib(i)
If A(i) <= e - 4 Then Exit Do
y = y + A(i)
i = i + 1
Loop
Print "y="; y
For i = 1 To UBound(A)
Print A(i)
Next i
End Sub
Private Function Fib(i As Integer) As Integer
If i = 1 Then
Fib = 1
ElseIf i = 2 Then
Fib = 2
Else
Fib(i) = Fib(i - 1) + Fib(i - 2)
End If
End Function
[要求]
1. 新建工程,输入上述代码,改正程序中的错误;
2.改错时,不得增加或删除语句;
3.以Myfrm1的名字和Myprj1的名字分别将窗体和工程保存到软件A 的根目录下。
二、 编程题
[题目]编写程序,求一元二次方程的根。
1. 序参考界面如图所示。编程时不得增加或减少界面对象或改变对象的种类,但
界面元素的大小、位置可以随意设置;界面必须显示在一屏之中。
2. 在存放方程系数的文本框中分别输入系数a 、b 、c 、的值,单击“计算”按钮,
如根判别式小于零,则用信息框显示方程无实根的提示信息,并清除已输入的
方程系数值;否则,将计算得到的方程根分别输出到两个根的文本框中。
3. 击“清除”按钮,清除四个文本框中的内容;
(1) 单击“退出”按钮,结束程序进行;
[要求] 以Myfrm2的名字和Myprj2的名字分别将窗体和工程保存到软件A 的根目录下。
[注意] 考试结束,考试盘中若无指定文件,则不于给分。
VB4
一、改错题
[题目] 本程序的功能是求以下数列的和,计算精确到410-≤n a 为止。
???+???????+???+??+?+=n
y 26421642142121 式中1,2,3…(本程序运行的正确结果为:I=6,Y=0.6486979)。
Option Explicit
Private Function pds(n As Integer)
Dim i As Integer, pd As Integer, k As Integer
pd = 1
k = 1
For i = n To 1 Step -1
pd = pd * i
k = k + 2
Next i
pds = pd
End Function
Private Sub Form_Click()
Dim y As Single, i As Integer, temp As Single
i = 1
Do
temp = 1 / pds(i)
Print pds(i)
If temp <= e - 4 Then Exit Do
y = y + temp
i = i + 1
Loop
Print "i="; i, "y="; y
End Sub
[要求]
1. 新建工程,输入上述代码,改正程序中的错误;
2. 改错时,不得增加或删除语句;
3. 以Myfrm1的名字和Myprj1的名字分别将窗体和工程保存到软件A 的根目录下。
二、编程题
[题目] 编写一个加油站计费程序。
[编程要求]
1. 程序参考界面如图所示。单选按钮“90号汽油”的Value 属性初始值为True 。编程时不
得增加或减少界面对象或改变对象的种类,但界面元素的大小、位置可以随意设置。
2. 在“种类”中选择油品种类,界面上的说明文字将随之改变(设95号汽油的单价为2.45
元/升,100号汽油的单价如图所示),并将数量文本框设为焦点;在数量文本框中输入需购的油品数量后,单击“计算”按钮,在总价文本框中显示所购油品种类应付的金额。
3. 单击“退出”按钮,结束程序进行;
[要求] 以Myfrm2的名字和Myprj2的名字分别将窗体和工程保存到软件A 的根目录下。
[注意] 考试结束,考试盘中若无指定文件,则不于给分。
VB5
一、改错题
[题目] 求下面数列的和,计算到第n 项的值小于5
10-等于为止。 ???+?+???+?+?+?+=-n
n f f f x x x x x s n 1532533221 其中 ?????>==+=--2211121
n n n f f fn n n 本程序可用x=0.5来测试,此时程序运行的正确结果为:0.6480143。
Option Explicit
Private Function fib(n As Integer)
If n = i Then
fib = 1
ElseIf n = 2 Then
fib = 2
Else
fib = fib(n - 1) + fib(n - 2)
End If
End Function
Private Sub Form_Click()
Dim n As Integer, s As Integer, x As Integer, a As Single
Do
x = InputBox("输入一个绝对值小于1的数:")
If Abs(x) >= 1 Then Exit Do
Loop
s = x
n = 1
Do
a = x ^ fib(n) / (fib(n - 1) * fib(n))
If Abs(a) <= e - 5 Then Exit Do
s = s + a
n = n + 1
Loop
Print "s="; s
End Sub
[要求]
1.建工程,输入上述代码,改正程序中的错误;
2.错时,不得增加或删除语句;
3.以Myfrm1的名字和Myprj1的名字分别将窗体和工程保存到软件A的根目录下。
二、编程题
[题目] 编程实现以下功能。
1.单击数组生成按钮,程序可用随机函数生成二维数组a(3,3),数组元素为两位随机正整数,将a数组里元素按矩形阵形式显示在图形框1中。每写一行后换行。
2.单击数组处理按钮,则将上述生成的矩阵中的最小元素与矩阵中心位置的元素交换,最后将结果矩阵在现实到图形框2中。每写一行后换行。
[编程要求]
1.序必须采用循环结构处理。
2.程序参考界面如图所示。其中Pictured对象用于显示方阵在处理前后的内容。编程
时不得增加或减少界面对象或改变对象的种类,但界面元素的大小、位置可以随意设置。
[要求] 以Myfrm2的名字和Myprj2的名字分别将窗体和工程保存到软件A的根目录下。[注意] 考试结束,考试盘中若无指定文件,则不于给分。