一.[题目] 编一程序,显示所有的水仙花数,所谓水仙花数,是指一个 3 位数,其各位数字立方和等于该数字本身。
例如,153 是水仙花数,因为 153=13+53+33
【编程要求】
1、单击"计算"按钮,则将计算结果显示在多行文本框中 Text1 中;单击"结束"按钮,程序停止运行。
2、界面应与给出的参考界面相似,不得增加或减少控件。
3、求出范围 100-999 之间的水仙花数 【参考代码】
Text1.Text = "" For i = 100 To 999
a = i \ 100
c = i Mod 10
b = i \ 10 Mod 10
If i = a ^ 3 + b ^ 3 + c ^ 3 Then
Text1.Text = Text1.Text & i & vbCrLf
End If Next i
二.[题目] 输入两个数,求最大公约数和最小公倍数。
[编程要求] 1、 输入数值后,按"计算"按钮,计算出最大公约数和最小公倍数按"清除"按钮,
则将所有文本框中的内容清空,并将光标焦点指向 text1。按"结束"按钮,结束程序的执行。
2、
程序中有一个过程,该过程的功能是求两个数的最大公约数。
【参考代码】
Dim k As Integer Do
k = m Mod n
m = n
n = k Loop While (k <> 0) gcd = m Next i
三.输入一个正整数 k,将 k 的各位数字分离后,累加求和。程序界面如下图所示。
【编程要求】
1、单击"计算"按钮,将结果在文本框中显示出来。
2、单击"清除"按钮,将二个文本框中的内容清空;单击"结束"按钮,程序停止运行。
3、界面应与给出的参考界面相似,不得增加或减少控件; 4、运行程序,并输入 123456 检验。
x = Val(Text1)
s = 0
Do While x <> 0
t = x Mod 10
s = s + t
x = x \ 10
Loop
Text2 = s
四.[题目] 随机生成由 10 个两位正整数组成的数组,并使用冒泡法对该数组进行排序。
[编程要求] 1、按"排序"按钮,则开始生成随即数组,按图示格式将数组显示在文本框 Text1 中;
然后进行排序,并将排序后的数组显示在文本框 Text2 中。
2、按"清除"按钮,则将 Text1,Text2 两文本框中的内容清空。按"退出"按钮,结束程序的执行。
界面应与给出的参考界面相似,不得增加或减少控件。
3、程序中有一个过程,该过程的功能是使用冒泡法对数组进行排序。
For i = 1 To 9
Switch = False
For j = 1 To 10 - i
If a(j) > a(j + 1) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
Switch = True
End If
Next j
If Not Switch Then Exit For
五. [题目] 计算公式 的和,当第 n 项的值<10-5 时结束。
【编程要求】
1、单击"计算"按钮,则将计算结果显示在文本框中 Text1 中;单击"清除"按钮,则清除文本框的内容; 单击"退出"按钮,程序停止运行。
2、界面应与给出的参考界面相似,不得增加或减少控件。
sum = 0
n = 1
x = 1
Do While x >= 0.0001
sum = sum + x
n = n + 1
x = 1 / (2 * n - 1)
Loop
Text1.Text = sum
六. [题目] 随机生成一个由两位随机整数构成的 5 行 5 列的矩阵,求该矩阵中所有不靠边元素之和。
[编程要求] 程序中有一个过程 sum(),该过程的功能是求一个数组的不靠边元素之和。
完成此函数的功能
Dim i As Integer, j As Integer
For i = LBound(b) + 1 To UBound(b) - 1
For j = LBound(b) + 1 To UBound(b) - 1
sum = sum + b(i, j)
Next j
Next i
七.[题目] 编写程序统计字符串中各个字符出现的个数(不分大小写)。
【编程要求】
1、单击"运行"按钮,从文本框中读取字符串,将统计结果显示在列表框 list1 中;单击"清除"按钮,则清除列表框和文本框的内容;单击"结束"按钮,程序停止运行。
2、界面应与给出的参考界面相似,不得增加或减少控件; 3、运行程序,并输入 gfjdakfhakk 进行检验。
【参考代码】
x = UCase(Text1)
For i = 1 To Len(x)
n = Asc(Mid(x, i, 1)) - 64
a(n) = a(n) + 1
Next i
For i = 1 To 26
If a(i) <> 0 Then
List1.AddItem Chr(i + 64) & ":" & a(i)
End If
Next i
八.[题目] 编写程序,求 n!,并显示前 7 项结果。
[编程要求] 1、按"执行"按钮,则开始运行程序,按图示格式将前 7 项阶乘显示在列表框 list1 中。
1、 按"清除"按钮,则将列表框 list1 中的内容清空。按"结束"按钮,结束程序的执行。
2、 程序中有一个函数过程,该过程的功能是使用递归函数求任意一个数的阶乘。
【参考代码】
If n = 0 Or n = 1 Then
fact = 1
Else
fact = n * fact(n - 1)
End If
十.输入一个正整数 k,将 k 的各位数字分离后,累加求和。程序界面如下图所示。
【编程要求】
1、单击"计算"按钮,将结果在文本框中显示出来。
2、单击"清除"按钮,将二个文本框中的内容清空;单击"结束"按钮,程序停止运行。
3、界面应与给出的参考界面相似,不得增加或减少控件; 4、运行程序,并输入 123456 检验。
【参考代码】
x = Val(Text1)
s = 0
Do While x <> 0
t = x Mod 10
s = s + t
x = x \ 10
Loop
Text2 = s
十一.[题目]随机生成 500 个 4 位正整数,将其置于文本框 1 中,从中找出回文数,置于文本框 2 中。并找出值最小的回文数,显示在文本框 3 中。
[编程要求] 1、按"运行"按钮,将运行结果按图示格式显示在文本框中;按"清除"按钮,将文本框清空,按"退出"按钮,结束程序运行; 2、程序中有一个名为 HuiWenShu( )的函数过程,用于判断一个数是否为回文数。
3、在运行按钮的单击事件中完成此按钮功能功能。
【参考代码】
For i = 1 To 500
a(i) = Int((9999 - 1000 + 1) * Rnd + 1000)
Text1 = Text1 & a(i) & vbCrLf
Next i
Min = 9999
For i = 1 To 500
If huiwenshu(CStr(a(i))) Then
Text2 = Text2 & a(i) & vbCrLf
If a(i) < Min Then Min = a(i)
End If
Next i
Text3 = Min
十二.[题目] 求 100 以内的所有的完数。所谓完数是指所有因子(含 1,不含本身)之和等于它本身的数。例如:6=1+2+3 【编程要求】
1、单击"计算"按钮,则将计算结果显示在列表框 List1 中;单击"清除"按钮,则清除列表框中的内容;单击"结束"按钮,程序停止运行。
2、界面应与给出的参考界面相似,不得增加或减少控件。
【参考代码】
sum = 0
For x = 2 To 100
For i = 1 To x - 1
If x Mod i = 0 Then sum = sum + i
Next i
If sum = x Then List1.AddItem CStr(x)
sum = 0
Next x
十三.[题目] 编写程序,求任意两个正整数的最小公倍数。
【编程要求】
1、单击"计算"按钮,在文本框 Text3 中显示最小公倍数;单击"清除"按钮,则清除 3 个文本框中的内容,
于文本框 Text1;单击"结束"按钮,程序停止运行。
2、界面应与给出的参考界面相似,不得增加或减少控件; 3、运行程序,并输入 3、7 进行检验。
【参考代码】
m = Val(Text1): n = Val(Text2) If m < n Then t = m: m = n: n = t mn = m * n r = m Mod n Do While r <> 0
m = n: n = r
r = m Mod n Loop Text3 = mn / n
十四.[题目] 顺序查找:给定一个数,在一个两位随机数数组中查找与此数相同的元素(该数组大小为 10 个元素)。
如果找到与给定数值相同的元素后输出该元素在数组中的位置;找不到则输出相应的提示信息。
[编程要求] 程序中有一个过程,过程名为 search,该过程的功能是返回查找的数在数组中的位置,如果找不到返回-1。
完成此函数的功能 【参考代码】
Dim i As Integer
L = UBound(b)
For i = 1 To L
If b(i) = n Then
search = i
Exit Function
End If
Next i
search = -1
十四.[题目]求 Fibonacci 数列的第 n 项,计算公式如下:
[编程要求] 1、程序中有一个递归函数,其功能是求斐氏数列的第 n 项。
2、完成计算按钮的单击事件功能。
If n = 1 Or n = 2 Then
fab = 1
Else
fab = fab(n - 2) + fab(n - 1) End If
十五.[题目] 随机生成一个由两位随机整数构成的 5 行 5 列的矩阵,求该矩阵中所有不靠边元素之和。
[编程要求] 程序中有一个过程 sum(),该过程的功能是求一个数组的不靠边元素之和。
完成此函数的功能
Dim i As Integer, j As Integer
For i = LBound(b) + 1 To UBound(b) - 1
For j = LBound(b) + 1 To UBound(b) - 1
sum = sum + b(i, j)
Next j
Next i
十六.[题目] 生成 10 个随机的两位正整数,并求出其最大值、最
小值、平均值以及总和。
【编程要求】
1、单击"生成随机数"按钮,生成 10 个两位随机正整数并显示在列表框中; 单击"求最大最小等"按钮,则求出其最大值、最小值、平均值以及总和并显示在相应文本中; 单击"重置"按钮,将列表框和所有文本框清空,并将焦点置于"生成随机数"按钮上。
2、界面应与给出的参考界面相似,不得增加或减少控件。
Dim i As Integer
Dim max As Integer
Dim min As Integer
Dim sum As Integer
max = a(1): min = a(1): sum = a(1)
For i = 1 To 10
sum = sum + a(i)
If max < a(i) Then max = a(i)
If min > a(i) Then min = a(i)
Next i
txtMax.Text = CStr(max)
txtMin.Text = CStr(min)
txtSum.Text = CStr(sum)
txtAvg.Text = CStr(sum / 10)
十七.[题目] 已知:买一只公鸡需 5 元,买一只母鸡需 3 元,买三只小鸡需 1 元。要用 100 元买 100 只鸡,公鸡母鸡和小鸡各有多少只?
【编程要求】
1、单击"计算"按钮,则将计算结果显示在列表框 List1 中;单击"清除"按钮,则清除列表框的内容;单击"退出"按钮,程序停止运行。
2、界面应与给出的参考界面相似,不得增加或减少控件。
For x = 1 To 20
For y = 1 To 33
z = 100 - x - y
If 5 * x + 3 * y + z / 3 = 100 Then List1.AddItem Str(x) + "
" + Str(y) + "
" + Str(z)
Next y Next x
十八.[题目] 求出 1000 以内的所有孪生素数(如果两个素数之差为 2,则称这两个素数为一对孪生素数,如 3 和 5, 5 和 7 等),显示在列表框中。
[编程要求] 1、按"执行"按钮,则开始运行程序,求出 1000 以内的所有孪生素数,显示在列表框中。
2、按"清空"按钮,则将列表框中的内容清空。按"退出"按钮,结束程序的执行。
3、程序中有一个过程 IsPrime,该过程的功能是判断一个数是否是素数。
Dim i As Integer
IsPrime = False
For i = 2 To Sqr(n)
If n Mod i = 0 Then Exit Function
Next i
IsPrime = True
十九.[题目] 编写程序,求出给定正整数的所有质因子,并将质因子全部输出。如:342 有质因子 2,3,3,19。
【编程要求】
1、 单击"执行"按钮,参考图示界面,将文本框 Text1 中输入的正整数的所有质因子输出在图片框 Picture1 中; 2、 单击"清除"按钮,清除文本框 Text1 与图片框 Picture1 中的内容,将焦点设置在文本框Text1 中;单击"结束"按钮,程序停止运行。
3、界面应与给出的参考界面相似,不得增加或减少控件; 4、运行程序,并输入 342 进行检验。
Do
If x Mod i = 0 Then
n = n + 1
ReDim Preserve a(n)
a(n) = i
x = x \ i
i = 2
Else
i = i + 1
End If Loop Until x = 1
二十一.[题目]随机生成 500 个 4 位正整数,将其置于文本框 1中,从中找出回文数,置于文本框 2 中。并找出值最小的回文数,显示在文本框 3 中。
[编程要求] 1、按"运行"按钮,将运行结果按图示格式显示在文本框中;按"清除"按钮,将文本框清空,按"退出"按钮,结束程序运行; 2、程序中有一个名为 HuiWenShu( )的函数过程,用于判断一个数是否为回文数。
3、在运行按钮的单击事件中完成此按钮功能功能。
For i = 1 To 500
a(i) = Int((9999 - 1000 + 1) * Rnd + 1000)
Text1 = Text1 & a(i) & vbCrLf
Next i
Min = 9999
For i = 1 To 500
If huiwenshu(CStr(a(i))) Then
Text2 = Text2 & a(i) & vbCrLf
If a(i) < Min Then Min = a(i)
End If
Next i
Text3 = Min
二十二. [题目] 生成一个由 1 位数字组成的大小为 4*4 的矩阵,并求出该矩阵的靠边元素之和。
[编程要求] 程序中有一个过程 sum(),该过程的功能是计算矩阵的靠边元素之和。
完成此函数的功能。
Dim u1 As Integer, u2 As Integer, i As Integer
sum = 0
u1 = UBound(a, 1)
u2 = UBound(a, 2)
For i = 1 To u1
For j = 1 To u2
If i = 1 Or i = u1 Or j = 1 Or j = u2 Then sum = sum + a(i, j)
Next j
Next i
二十三.[题目] 求任意一个正整数 n 的逆序数。
例如:432 的逆序数为 234,210619 的逆序数为 916012。要求程序具有能用性,即对于输入的整数或长整数不限制位数都能求。
[编程要求] 1、在文本框 Text1 中输入正整数 n 后,单击"计算"按钮,则结果显示在文本框 Text2 中;
2、单击"清空"按钮,则清空所有文本框的内容; 3、单击"退出"按钮,程序停止运行; 4、界面应与参考界面相似,不得增加或减少控件; 5、运行程序,并输入 14587 检验。
n = Val(Text1)
Do While n <> 0
a = n Mod 10
m = m * 10 + a
n = n \ 10
Loop Text2 = CStr(m)
二十四.[题目] 随机生成一个 4 行 4 列的矩阵,要求数字为两位正整数,然后完成对该矩阵的转置。
所谓矩阵的转置是指将矩阵的行列交换,如图所示。
[编程要求] 1、按"执行"按钮,则开始运行程序,按图示格式将产生的矩阵显示在多行文本框 text1 中,将转置后的矩阵显示在文本框 text2 中。
2、按"清除"按钮,则将 text1,text2 两文本框中的内容清空。按"结束"按钮,结束程序的执行。
3、程序中有一个过程,该过程的功能是完成对矩阵的转置。
For i = 1 To 4
For j = 1 To 4
a(i, j) = Int(Rnd * 90) + 10
Text1 = Text1 & a(i, j) & " "
Next j
Text1 = Text1 & vbCrLf Next i Call zhzh(a) For i = 1 To 4
For j = 1 To 4
Text2 = Text2 & a(i, j) & " "
Next j
Text2 = Text2 & vbCrLf Next i
1、水仙花数
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer, i As Integer
For i = 100 To 999
a = i \ 100
b = (i Mod 100) \ 10
c = i Mod 10
If i = a ^ 3 + b ^ 3 + c ^ 3 Then
Print i
End Sub
2、百以内 7 的倍数求和
Private Sub Command1_Click()
Dim x As Integer, i As Integer
x = 0
For i = 1 To 100
If i Mod 7 = 0 Then
x = x + i
End If
Next
Print x
End Sub
3、十进制转换为十六进制
Dim a As Integer, s As String
s = ""
a = Text1.Text
Do While a > 0
If a Mod 16 < 10 Then
s = (a Mod 16) & s
Else: s = Chr(a Mod 16 + Asc("A") - 10)
End If
a = a \ 16
Loop
Print s
4、回文数
a = Text1.Text
b = StrReverse(a)
If a = b Then
Print "回文数"
End If
If Not a = b Then
Print "不是回文数"
End If
设 s=1*2*3*…*n,求 s 不大于 400000 时最大的 n
Dim s As Long, n As Integer
s = 1
n = 0
Do Until s > 400000
n = n + 1
s = s * n
Loop
Print n
P124
4-22
Private Sub Command1_Click()
Dim x As Single, y As Single
Dim eps As Single
x = Val(InputBox("请输入初始值", "牛顿迭代法求根", 1#))
eps = Val(InputBox("请输入允许误差 eps", "牛顿迭代法求根", 0.0000001))
y = x - (Exp(x) - x - 2) / (Exp(x) - 1)
Do While Abs(y - x) > eps
x = y
y = x - (Exp(x) - x - 2) / (Exp(x) - 1)
Loop
Text1.Text = CStr(y)
End Sub
Private Sub Command2_Click()
End
End Sub
5
累加:1 加到 100
Private Sub Command1_Click()
Dim i As Integer, s As Integer
s = 0
For i = 1 To 100 Step 1
s = s + i
Next
Print s
End Sub
6
N 的阶乘
Private Sub Command1_Click()
Dim s As Long, i As Integer, N As Integer
N = Text1.Text
s = 1
For i = 2 To N
s = s * i
Next
Label1.Caption = s
End Sub
7
求 a 、b 的最小公倍数
Private Sub Command1_Click()
Dim a As Integer, b As Integer, i As Integer
a = Text1.Text
b = Text2.Text
For i = a To a * b Step a
If i Mod b = 0 Then
Label1.Caption = i
End If
Next
End Sub
两数交换和冒泡法
Private Sub Command1_Click() Dim a As Integer, b As Integer a = 10 b = 20 Print a, b Call swap(a, b) Print a, b End Sub Sub swap(ByRef x As Integer, ByRef y As Integer) Dim c As Integer c = x x = y y = c End Sub
Private Sub Command2_Click() Dim s(1 To 10) As Integer Dim i As Integer Cls For i = 1 To 10 s(i) = Int(Rnd * 90) + 10 Next For i = 1 To 10
Print s(i); Next Print Call s 冒泡法(s) For i = 1 To 10
Print s(i); Next End Sub Sub s 冒泡法(a() As Integer) Dim i As Integer, j As Integer, n As Integer For i = LBound(a) To UBound(a) - 1
n = 0
For j = LBound(a) To UBound(a) - 1
If a(j) > a(j + 1) Then
Call swap(a(j), a(j + 1))
n = n + 1
End If
Next
If n = 0 Then Exit For
Next End Sub
1
[题目] 编写程序统计字符串中各个字符出现的个数(不分大小写)。
【编程要求】
1、单击"运行"按钮,从文本框中读取字符串,将统计结果显示在列表框 list1 中;单击"清除"按钮,则清除列表框和文本框的内容;单击"结束"按钮,程序停止运行。
2、界面应与给出的参考界面相似,不得增加或减少控件; 3、运行程序,并输入 gfjdakfhakk 进行检验。
【参考代码】
x = UCase(Text1)
For i = 1 To Len(x)
n = Asc(Mid(x, i, 1)) - 64
a(n) = a(n) + 1
Next i
For i = 1 To 26
If a(i) <> 0 Then
List1.AddItem Chr(i + 64) & ":" & a(i)
End If
Next i 2
[题目] 编写程序,求 n!,并显示前 7 项结果。
[编程要求] 1、按"执行"按钮,则开始运行程序,按图示格式将前 7 项阶乘显示在列表框 list1 中。
1、 按"清除"按钮,则将列表框 list1 中的内容清空。按"结束"按钮,结束程序的执行。
2、 程序中有一个函数过程,该过程的功能是使用递归函数求任意一个数的阶乘。
【参考代码】
If n = 0 Or n = 1 Then
fact = 1
Else
fact = n * fact(n - 1)
End If 3
上一篇:教学工作总结7
上一篇:入党思想汇报,入党思想汇报