一.[题目] 编一程序,显示所有的水仙花数,所谓水仙花数,是指一个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(\"请输入初始值\牛顿迭代法求根\
eps = Val(InputBox(\"请输入允许误差eps\牛顿迭代法求根\
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
因篇幅问题不能全部显示,请点此查看更多更全内容