当前位置: 首页> 教学考试> 社会实践报告>

VB程序设计题

发布时间:2020-07-10 14:17:57 浏览数:

 一.[题目] 编一程序,显示所有的水仙花数,所谓水仙花数,是指一个 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

上一篇:入党思想汇报,入党思想汇报

相关范文