资源描述
<p>1、算法描述:求的1~100之间所有偶数的和
'注:请不要更改原程序结构,删除(1)、(2)、(3),并在对应位置填写正确的代码
'Function func()
(1) i As Integer dim
func = (2) 0
For i = 2 To 100 Step (3) 2
func = func + i
Next i
End Function
2、操作要求: 顺序查找单词“name” :
输入10个不同的单词给数组,查找单词“name”是否在数组中;如果在,输出单词在数组中的位置,否则,输出“不在数组中”。
Sub main()
Dim i As Integer
Dim buzai As Boolean
'定义数组d,下界为1,上界为10,数据类型为string,在dim后完善语句
Dim (1) d(1 To 10) As String
'输入10个单词,在for语句后完善i的初始值与终值
For i =(2) 1 to 10
'输入每个单词给数组元素,在赋值号左侧添加变量
(3) = InputBox("Please input word " & i) d(i)
Next i
buzai = True
i = 0
While buzai = True And i < 10
'顺序查找单词,数组下标增1,在赋值号右侧添加表达式
i =(4) i+1
'判断数组元素是否为单词"name",在if语句后添加判断条件
If (5) Then d(i) = "name"
buzai = False
End If
Wend
If buzai = False Then
MsgBox "在数组中的位置为:" + Str(i)
Else
MsgBox "不在数组中"
End If
End Sub
3、小王今年26岁,资助了一名贫困大学生,
'他想从明年开始每年比上一年多资助一名贫困大学生。
'编程求解小王到多少岁,就能资助到n名甚至更多大学生?
Function func(n)
stu = 1
age = 26
'请完善下面两条语句
Do While stu < Val(n)
age = age + (1) 1
stu = (2) + age – 25 stu
Loop
func = age
End Function
Sub Main()
If Command = "assess" Then
Open "in.txt" For Input As #1
Line Input #1, n
Close #1
Open "out.txt" For Output As #1
Print #1, func(n)
Close #1
Else
'请完善大学生数n的输入语句
(3) = InputBox("请输入大学生数 n:", "Input") n
MsgBox func(n)
End If
End Sub
4、操作要求:
设计一个VB学习指导程序的窗口运行界面,界面设计如下图。要求
(1)打开“C:\MyExam\工程1.vbp”,设置窗体Form1属性值:
将该窗体标题命名为“VB学习指导”;
(2)添加一个标签控件Label1,并设置如下属性值:
该控件填充内容“VB学习指导”;
字体为隶书,字形为粗体,字号为三号,字体颜色为调色板中第5行第7列,并居中对齐;
(3)对标签控件Label2(请输入口令:),设置如下属性值:
根据字体大小自动调整;
(4)添加一个文本框控件Text1,并设置如下属性值:
文本框高度为650,宽度为2215;
文本框内容为空;
(5)添加一个命令按钮Option2,并设置如下属性值:
将该按钮标题命名为“退出”;
字体为黑体,字号为四号;
按钮宽度1575,高度735;
(5)保存并提交。
5、操作要求:
打开"C:\MyExam\工程1.vbp”,补充完成程序。实现当从键盘上输入x的值后,求函数y的值(当x<0时,y=|3x+1|;当x>=0时,y=4x+1)。如:输入-2后,输出结果:5.
Function func(x)
If x < 0 Then
func = (1) abs(3*x+1)
Else
func = (2) 4*x+1
End If
End Function
6、操作要求: 打开“C:\MyExam\工程1.vbp”补充完成程序并保存!该程序的功能是:从键盘上输入两个数a和b,比较a和b的大小,并输出较小的数。
Function func(a, b)
If (1) Then a<strong func="a" else="" if="" then="" a="">b
func = b
Else
func = "两数相等"
End If
End If
End Function
7、操作要求: 输入a、b、c的值,判断一元二次方程 ax^2+bx+c=0是否有解,如果无解则输出“无解” ,如果两个解相同则输出“两解相同”,否则输出“两解不同”。
Function f(a, b, c)
'请完成其它的判断语句
If b * b - 4 * a * c < 0 Then f = "无解"
If b * b - 4 * a * c = 0 Then (1) f="两解相同"
(2) If b * b - 4 * a * c > 0 Then f = "两解不同"
End Function
Sub Main()
If Command = "assess" Then
Open "in.txt" For Input As #1
Line Input #1, a
Line Input #1, b
Line Input #1, c
Close #1
Open "out.txt" For Output As #1
Print #1, f(a, b, c)
Close #1
Else
a = InputBox("请输入 a", "Input")
b = InputBox("请输入 b", "Input")
'请完成变量c的输入语句
(3) c = InputBox("请输入 c", "Input")
MsgBox f(a, b, c)
End If
End Sub
8、操作要求: 打开“C:\MyExam\工程1.vbp”补充完成程序并保存!该程序的功能是: 求实数x的绝对值。
Function func(x)
If x >= 0 (1) then
func = x
Else
func = (2) -x
(3) end if
End Function
9、操作要求: 打开“C:\MyExam\工程1.vbp”进行以下操作后并保存!填空完成程序,计算N!的值并在窗体上打印出结果,如输入:3,则输出:6。(注:N!=1×2×…×N)
Function func(n)
Dim i As Integer
(1) func=1
For i = 1 To (2) n
func = func * i '计算N!
Next i
End Function
10、操作题:“提示信息”界面设计,如下图所示,要求
(1)打开“C:\MyExam\工程1.Vbp”,对窗体Form1设置如下属性值:
窗体标题为“提示信息”;
背景色为调色板第1行第7列。
(2)添加一个标签控件Label,并设置如下属性值:
标签标题为“要继续吗?”(注:“?”为中文标点符号);
标签高度为495,宽度为1935;
字体为楷体_GB2312,字形为常规,字号为三号,字体颜色为调色板第5行第8列,背景类型为0。
(3)添加一个按钮控件CommandButton,并设置如下属性值:
按钮标题为“否”;
字号为小四。
(4)保存并提交。
11、操作要求:
输入10位同学的英语成绩存放在数组score中,利用选择排序算法按照从大到小的顺序进行排序 。
' 算法描述:
'输入10位同学的英语成绩存放在数组score中
'利用选择排序算法按照从大到小的顺序进行排序
'定义数组score,下界为1,上界为10,数据类型为Single
Dim (1) score(1 To 10) As Single
Function f()
'i为排序的次数,应该排序9次,为i添加初值和终值
For i =(2) 1 To 9
Min = score(i): m = i
'j为每次排序的数的范围,应从i+1开始直到第10个数,为j添加初值和终值
For j =(3) i + 1 To 10
If score(j) > Min Then Min = score(j): m = j
Next j
'以k为中间变量,编写交换score(i)和score(m)的语句
k = score(i)
score(i) = score(m)
(4) score(m) = k
Next i
st = "排序后的数列为:"
For i = 1 To 10
st = st + Str(score(i)) + " "
Next i
f = st
End Function
Sub Main()
Dim i As Integer, m As Integer, k As Integer, j As Integer
Dim st As String
If Command = "assess" Then
Open "in.txt" For Input As #1
Dim x As String
For i = 1 To 10
Line Input #1, x
score(i) = Val(x)
Next i
Close #1
Open "out.txt" For Output As #1
Print #1, f()
Close #1
Else
For i = 1 To 10
'输入10位同学的英语成绩,在赋值号左侧添加变量
(5) = InputBox("请输入第" & i & "个数据") score(i)
Next i
MsgBox f()
End If
End Sub
12、购物问题:购物满1000元,打7折,800到1000元,打8折,500到800元,打9折。
Private sub command1_click()
X=val(text1.text)
If x>=1000 then
(1) Y=0.7*x
Elseif (2) then x>=800
Y=0.8*x
Elseif x>=500 then
(3) Y=0.9*x
Else
Y=x
End if
Text2.text=y
End sub
13、十进制转化成二进制问题:将一个十进制数转化为二进制数。
Function func(x)
Dim bin(32),j,str
Str=””
j=0
do while (x>0)
bin(j)=(1) x mod 2
(2) x=x\2
j=j+1
loop
do while (j<>0)
str=str&bin(j-1)
j=(3) j-1
loop
func=str
end function
14、水仙花数问题:水仙花数是满足下面条件的一组三位的正整数,它们满足条件:每一位上数字的立方之和恰好等于它自己。例如:153就是一个水仙花数,13+53+33=153,请找出所有的水仙花数及个数。
参考程序代码如下:
方法一:
Private Sub Command1_Click()
Dim sum As Integer
Dim i, a, b, c As Integer
List1.Clear
Sum=0
For i = 100 To 999
a = i \ 100 ‘求得百位上的数字
b = i \ 10 Mod 10 ‘求得十位上的数字
c = i Mod 10 ‘求得个位上的数字
If a ^ 3 + b ^ 3 + c ^ 3 = i Then ‘判断是否满足条件
List1.AddItem (Str(i))
sum = sum + 1 ‘统计个数
End If
Next i
Label1.Caption = "个数:" + Str(sum)
End Sub
方法二:
Private Sub Command1_Click()
Dim sum As Integer
Dim i, j, k As Integer
List1.Clear
Sum=0
For i = 1 To 9 ‘百位数
For j = 0 To 9 ‘十位数
For k = 0 To 9 ‘个位数
If i ^ 3 + j ^ 3 + k ^ 3 = 100 * i + 10 * j + k Then ‘是否满足条件
List1.AddItem (Str(100 * i + 10 * j + k))
sum = sum + 1 ‘统计个数
End If
Next k
Next j
Next i
Label1.Caption = "个数:" + Str(sum)
End Sub
15、用递归算法来计算斐波那契数列1,1,2,3,5,8,13,21……的第N项,我们可以写出这样的计算公式:
fib(n)=fib(n-1)+fib(n-2) (n>2)
fib(2)=1 (n=2)
fib(1)=2 (n=1)
Fib函数参考程序代码如下:
Function fib(n As Integer) As Long ‘计算斐波那契数列第n项
If n = 1 or n=2 Then
fib = 1 ‘已知第1项、第2项均为1
Else
fib = fib(n-1)+fib(n -2) ‘计算公式,fib(n)=fib(n-1)+fib(n-2)
End If ‘要求fib(n-1)和fib(n-2)需要再次执行算法fib
End Function
也可以用如下代码来完成:
Function fib(n As Integer) As Long ‘计算斐波那契数列第n项
If n = 1 or n=2 Then fib = 1 ‘已知第1项、第2项均为1
If n>2 then fib = fib(n-1)+fib(n -2) ‘计算公式
End Function
参考程序代码如下:
Private Sub Command1_Click()
Dim n As Integer
Dim an As Long
n = Val(Text1.Text)
an = fib(n)
Text2.Text = Str(an)
End Sub</strong></p><!--0时,y=|3x+1|;当x-->
展开阅读全文