资源描述
1、算法描述:求的1100之间所有偶数的和注:请不要更改原程序结构,删除(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 iEnd Function2、操作要求: 顺序查找单词“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 IfEnd Sub3、小王今年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 = ageEnd FunctionSub 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 IfEnd Sub4、操作要求: 设计一个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=4x+1)。如:输入-2后,输出结果:5.Function func(x)If x 0 Then func = (1) abs(3*x+1)Else func = (2) 4*x+1End IfEnd Function6、操作要求: 打开“C:MyExam工程1.vbp”补充完成程序并保存!该程序的功能是:从键盘上输入两个数a和b,比较a和b的大小,并输出较小的数。Function func(a, b)If (1) Then ab func = b Else func = 两数相等 End IfEnd IfEnd Function7、操作要求: 输入a、b、c的值,判断一元二次方程 ax2+bx+c=0是否有解,如果无解则输出“无解” ,如果两个解相同则输出“两解相同”,否则输出“两解不同”。Function f(a, b, c)请完成其它的判断语句 If b * b - 4 * a * c 0 Then f = 两解不同End FunctionSub 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 IfEnd Sub8、操作要求: 打开“C:MyExam工程1.vbp”补充完成程序并保存!该程序的功能是: 求实数x的绝对值。Function func(x) If x = 0 (1) then func = x Else func = (2) -x (3) end ifEnd Function9、操作要求: 打开“C:MyExam工程1.vbp”进行以下操作后并保存!填空完成程序,计算N!的值并在窗体上打印出结果,如输入:3,则输出:6。(注:N!=12N)Function func(n)Dim i As Integer(1) func=1For i = 1 To (2) nfunc = func * i 计算N!Next iEnd Function10、操作题:“提示信息”界面设计,如下图所示,要求(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 SingleFunction 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 = stEnd FunctionSub 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 IfEnd Sub12、购物问题:购物满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 sub13、十进制转化成二进制问题:将一个十进制数转化为二进制数。 Function func(x)Dim bin(32),j,strStr=”j=0do while (x0)bin(j)=(1) x mod 2(2) x=x2j=j+1loopdo while (j0)str=str&bin(j-1)j=(3) j-1loopfunc=strend function14、水仙花数问题:水仙花数是满足下面条件的一组三位的正整数,它们满足条件:每一位上数字的立方之和恰好等于它自己。例如: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 Sub15、用递归算法来计算斐波那契数列1,1,2,3,5,8,13,21的第N项,我们可以写出这样的计算公式: fib(n)=fib(n-1)+fib(n-2) (n2) 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)需要再次执行算法fibEnd Function也可以用如下代码来完成:Function fib(n As Integer) As Long 计算斐波那契数列第n项 If n = 1 or n=2 Then fib = 1 已知第1项、第2项均为1 If n2 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
展开阅读全文