经典算法程序实现练习一
姓名:__________ 班级 : __________
1、填空完成程序,使得当单击窗体后,Label1上显示100以内(含100)偶数之和。 Private Sub Form_Click()
Dim i As Integer '定义变量i
Dim s As Integer '定义变量s,用于存放'100以内
(含100)偶数的和
s = 0
For i = 2 To 100_____________
s =________________
____________
Label1.Caption = ____________ End Sub
2、填空完成程序,编程计算1-1/2+1/3-1/4+...+1/99-1/100,单击窗体后,在窗体上显示结果。 Private Sub Form_Click()
Dim s As Single Dim i As Integer s =____________
For i = 1 To ____________Step 1
If i Mod 2 <> 0 Then
s = ___________________ Else
s = ___________________ End If
Next i Print \"s=\"&s End Sub
3、举重比赛中,60公斤级选手体重不能超过60公斤。填空完成程序,使得在文本Text1中输入一个大于60的数时,标签Label1显示\"超重!不能参赛!\";当输入一个小于等于60的数时,标签Label1显示\"合格,可以参赛!\"。 Private Sub Command1_Click()
Dim t As Single '定义变量t,值由文本框Text1读入 t =________________________ If __________________Then
Label1.Caption = \"超重!不能参赛!\" Else
Label1.Caption = \"合格,可以参赛!\" End if End Sub
4、这是一个显示评语程序,填空完成程序,在文本框Text1中
输入一个数后,单击\"评语\"按钮,在标签Label1显示评语。 '当输入一个小于60的数时,显示\"不及格\";
'当输入一个大于等于60且小于85的数,显示\"良好\"; '当输入一个大于等于85的数时,显示\"优秀\"。 Private Sub Command1_Click()
Dim Cj As Single '定义变量Cj,值由文本框Text1读入 Cj = Val(__________________) If Cj ____________ then Label1.Caption = \"不及格\"
ElseIf ___________________________________Then Label1.Caption = \"良好\" ElseIf Cj >= 85 Then
Label1.Caption = \"优秀\" End If End Sub
5、某公司2005年的总产值为2000万元,若总产值以每年5%的速度增长,多少年后总产值翻一倍?
填空完成程序,使得当单击窗体后,在窗体上输出问题答案。 Private Sub Form_Click()
Dim p As Single ' 变量p保存年产值 Dim n As Integer ' 整型变量n为所求年数 ____________
n = 0
Do While p < 4000 p = p *____________
n = ______________
Loop
Print \"n=\"&___________ End Sub
6、程序填空,使得当单击按钮后,Text1显示7!的值。 Private Sub Command1_Click() Dim a As Integer Dim i As Integer a = 1
For i = 1 To____________Step 1 a =____________ Next i
Text1.Text = Str((a)) End Sub
7、编程计算s=1!+2!+3!+„+8!的值并在窗体上打印出结果。 Private Sub Form_Click()
Dim s As Single 's变量用于存放计算结果 Dim p As Single
Dim i As Integer '定义一个循环变量 s =____________
'给s赋初值
1 / 4
信息技术
p = _____________ '给p赋初值 For i = 1 To 8 p = p * i s =____________
Next i Print \"s=\"; s End Sub
8、填空完成程序,使得当单击窗体后,计算1+2+3+„+N>500的N的最小值,并在文本框Text1中显示出来。 Private Sub Form_Click()
Dim s As Integer '变量s存放和 Dim n As Integer
s =____________ '为s赋初值 n =____________ '为n赋初值 Do While ____________ n = n + 1 s = s + n Loop
Text1.Text = Str(__________) End Sub
9、填空完成程序,使得单击窗体后,计算出1+2+3+„+N<500的N的最大值,并在文本框Text1中显示出来。 Private Sub Form_Click()
Dim s As Integer '变量s存放和 Dim n As Integer
n = ____________ '为n赋初值 s = ____________ '为s赋初值 Do While s < 500 n = n + 1 s =____________ Loop
Text1.Text = Str(___________) End Sub
10、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1^3+5^3+3^3。 Private Sub Command1_Click() Dim i As Integer
Dim a As Integer '百位 Dim b As Integer '十位 Dim c As Integer '个位
Dim x As Integer '统计找到的水仙花数的个数 List1.Clear'清空列表框 x = 0'计数变量赋初值0 For i = 100 To 999
a =_________________________ b =_________________________ c =_________________________
If i =____________________________________ Then List1.AddItem _______________ x =__________________ End If Next i
Text1.Text = Str(x) End Sub
11、求两正整数的最大公约数和最小公倍数。
求最大公约数可用辗转相除法: (1) 已知两数, A 除以 B 得余数 r
(2) 若 r = 0,则B为最大公约数,结束;否则执行(3) (3) A B,B r,再求余数并重复执行(2)
Private Sub Command1_Click()
Dim a As Integer, b As Integer '存放被除数和除数的变量 Dim x As Integer, y As Integer '存放原始数据 求公倍数用 Dim r As Integer '定义存放余数的变量 Dim t As Integer '定义两变量交换所需临时变
量
a = Val(Text1.Text) '从Text1获取第一个数 _________________________ '从Text2获取第二个数 If a < b Then '比较大小 确保a>=b _______________:______________:____________ End If
x = a: y = b '原始数据暂存 r =______________________ '获得初始余数
Do While _________________ '余数是否大于零 ______________________ '更新被除数 ______________________ '更新除数 ______________________ '更新余数 Loop
Text3.Text =___________ 'Text3显示最大公约数 _______________________ 'Text4显示最小公倍数 End Sub
12、填空完成程序,问:鸡兔同笼,共有100条腿,40个头,问鸡有几只,兔有几只?单击窗体后,在窗体上显示结果。 Private Sub Form_Click()
Dim Ji As Integer 'Ji变量表示鸡的个数 Dim Tu As Integer 'Tu变量表示兔的个数 Dim Leg As Integer 'Leg变量表示腿数
2 / 4
信息技术
For Ji = 1 To 40 Tu = ____________
Leg = ____________ + Tu * 4 '计算腿数
If Leg = __________ Then'如果腿正好100只,则打印。 Print \"鸡=\"+str(Ji)+\"只\兔=\"+str(Tu)+\"只\" End If Next Ji End Sub
13、在文本框Text1中输入一串字符,经过处理,在文本框Text2中逆序输出。如输入“abcd”,输出“dcba”。 (字符串叠加) Private Sub Command1_Click() Dim s As String Dim n As Integer Dim i As Integer
s = ___________________ '从Text1获取输入文本 n = __________ '获得输入字符串长度 For i = _______ To _______ Step _______ Text2.Text = ____________________________________ '提示:Mid函数每次取s中一个字母与text2进行连接,每一次循环是瞬间完成的,点击的一刹那就显示循环完成后最终的值。
Next i End Sub
14、在文本框Text1中输入一个整数,点击确定,在label1标签中显示。按上述方法输入多个整数,并显示在label1上。然后点击“逆序输出”,在列表框list1中逆序输出,编程实现,如下图。 (数组实现)
Label1.Caption = _______________________________ + \" \" Text1.Text = \"\"'清空text1以便输入新的整数 End Sub
Private Sub Command2_Click() For t = _________to________Step -1 List1.AddItem ___________ Next t End Sub
15、填空完成程序,使得单击\"显示\"按钮后,随机产生10个属于区间[0,100)的自然数,并保存于数组a中。然后在窗体上显示这10个数的平均值。 Private Sub Command1_Click() Dim a(9) As Integer Dim s As Single Dim i As Integer Me.Cls '清空窗体 s = 0
Randomize '随机发生器初始化 For i = 0 To____________Step 1 a(i) = Int(Rnd * 100) Print a(i) Next i For i = 0 To 9 s = ____________ Next i
Print \"这10个自然数的平均值=\"; s / 10 End Sub
16、随机产生10个[10,99]之间的整数,找出最大值、最小值。 Private Sub Command1_Click() ___________________ Dim i As Integer
Dim Max As Integer,Min As Integer '定义最大值最小值变量
Dim i As Integer Dim t As Integer
Dim a(1 To 100) As Integer Private Sub Form_Load() i = 0
Label1.Caption = \"\" '清空Label1对象的显示 End Sub
Private Sub Command1_Click() i = i + 1
a(i) =_____________________'从Text1获取输入
For i = 1 To 10 '循环处理10次 '构造产生[10,99]内的随机整数存储到数组元素
a(__ ) = Int(Rnd *____ ) +____
List1.AddItem Str(a(i)) '将该整数显示到列表框 Next i
max =______ '设置初始最大值 min =______ '设置初始最小值
For i = To 10 '循环比较处理 If Max < a(i) Then Max = a(i) '更新最大值 If___________Then _________________ '更新最小值
____'定义包含10个元素的整型数组
3 / 4
信息技术
Next i
Label2.Caption = \"最大值:\" + Str(Max) '显示最大值 Label3.Caption = \"最小值:\"+___________ '显示最小值 End Sub
17、有一个有趣的兔子繁殖问题:第1个月买来1对小兔子,2个月后会生1对小兔子,以后每个月都会生1对小兔子;而生下来的小兔子,也是2个月后开始每月生1对小兔子,以此类推。试问:n个月以后,兔子的总数达到多少?
问题分析:设第n月兔子数为地f(n),则f(n)=f(n-1)+f(n-2) Private Sub Command1_Click() Dim i As Integer
________________________ '定义存储20个整数的数组a List1.Clear a(1) =__________ a(2) =__________ List1.AddItem Str(a(1)) List1.AddItem Str(a(2)) n =_______________
'从文本框Text1获得月份
For i =___________To__________ a(i) =______________ List1.AddItem Str(a(i)) Next i End Sub
18、每隔1秒显示一个[10,20]之间的正整数显示在label1中,并判断是否是质数,结果显示在label2中。 Private Sub Command1_Click()
Timer1.Enabled = _______'启动计时器 End Sub
Private Sub Command2_Click()
Timer1.Enabled = False End Sub
Private Sub Timer1_Timer() Dim n As Integer Dim i As Integer Dim f As Boolean Randomize
n = Int(Rnd() * 11) + 10 Label1.Caption = Str(n) f = True
For i=2 To__________
If __________ Then f = False Loop
If __________Then
Label2.Caption = \"Yes\" Else
Label2.Caption = \"No\" End If
Next i
Text3.Text = ________ '循环结束后,统计数输出 End Sub
'质数标志变量
Private Sub Command1_Click() Dim s As String, m As String Dim c As Integer, i As Integer
s = ____________ '输入字符串赋给变量s m = _____________ '需要找的字符串赋给变量m c = 0 '给用来计数的变量c 赋初值0 For i = 1 To ___________'确定匹配总次数
If______________________ Then c = c + 1 '对比每次
取出的字符是否为m ,若是则计数加1
'保存产生的随机正整数
Private Sub Command1_Click()
Dim y As Integer '用于存储输入的十进制自然数 Dim s As String '用于存储转换后的结果 Dim r As Integer'用于存储 余数 y = Val(Text1.Text) s = \"\"'字符串变量置空
Do While y <> 0 '采用除八取余法 r = _________________ '采用除八取余法 s = Str(r) + _________ y = y \\ 8 Loop
Text2.Text = s'输出s到文本框2 End Sub
若点击“转换”按钮,文本框内显示为:_____________。
20、以下为:在给定字符串中寻找某子串个数统计的VB程序。
End Sub
19、下面为用“辗转相除法”编写的十进制转换为八进制的VB 程序,请补充完整。
4 / 4
因篇幅问题不能全部显示,请点此查看更多更全内容