VB课后实验6答案
- 格式:doc
- 大小:60.50 KB
- 文档页数:8
第6章过程与函数一、填空题1.数组名作为过程或函数实参,相应的形参传递方式为____按地址传递____。
2.一维长整型数组a作过程形参写作:a() As Long,二维长整型数组b作过程形参写作:____b() As Long ____。
3.过程形参为整型,对应实参为5.64,传递给形参的值为____6____。
4.调用过程时对形参的改变不会导致相应实参变量的改变,则该形参采用____按值传递____方式。
5.调用过程时对形参的改变就是对相应实参变量的改变,则该形参采用____按地址传递____方式。
6.声明Single类型全局变量x,写作____Public x As Single(或 Publicx!)____;声明Integer类型静态变量x,写作____Static x As Integer(或 Static x%)____。
7.在窗体Form1的过程中引用窗体Form2中的全局变量y,写作____Form2.y____。
8.阅读如下代码,单击窗体后,窗体上的显示结果为____s = 2 s = 5 s =9____。
Dim i As Integer, n As IntegerPrivate Sub Form_Click()Dim i As IntegerFor i = 1 To 3s = sum(i): Print "s ="; s;Next iEnd SubPrivate Function sum(n As Integer)Static j As Integerj = j + n + 1: sum = jEnd Function二、选择题1.VB程序设计语言中,函数过程与子过程必须分别用关键字( C)声明。
(A)Private,Public (B)Public,Private(C)Function, Sub (D)Sub, Function2.要调用一个已经定义好的函数myfunction( ),用语句的方式调用函数,下列写法哪个是正确的(D)(A)Call myfunction (B)myFunction(C)myFunction ( ) (D)CallmyFunction( )3.定义过程时,如果在过程名前加关键字Private,则该过程为( A)。
VB课后练习答案P12第一章课后练习答案:一、选择题二、填空题第二章(P39)选择题答案:填空题答案:1.Cmdl, Click2.Text 1.Text二"Hello"P64第三章课后练习答案一、选择题二、填空题1.(Y Mod 4=0 And Y Mod 10000) Or Y Mod 400=0 2.a<>0 And b*2-4*a*c>=0 3.X Mod 5=0 And X Mod 2=0 或 Tnt(x/5)=X/5 And Int(X/2)=X/2 4. 注意:返回的均是字符型。
第四章课后答案:P79一、选择题答案为:$$41.50010二、填空题三、程序设计题(提示)1、鸡的头数为x,兔的头数为y,则可列方程式:\x-\- y = h (兀 * 2 + y * 4 =于求得x, y 的值再在窗体上输出结果。
2、 利用Format 格式函数,再通过窗体的Print 将格式化后的信息输出到窗体上。
3、 厶员I 的周长=2加" $岡的面积=加25、通过Inputbox 函数或用文本框输入三边和圆的半径a,b,c, r,利用公式:. a + b + cn 二 ---------2 S 三角形面积=Jh (h - - b )(h - c )P97第五章课后练习答案:第9题| D一、选择题答案D 改为:30二、填空题第]题Y Mod 4二0 And Y Mod 100二0 Or Y Mod 400二0 第2题笫3题笫4题Private Sub Command l_Click()X=Val(Textl.Text)Select Case XCase Is>200. Isv-10()Print “xv 100 Or x>200"Case ls<=0Y=l()()-XCase Isv二100Y=100+XCase Is<=200Y=400End SelectText2.Text=yEnd Sub三、程序设计题(提示)1、判断条件:假设一个整数为xX Mod 3=0 Or x Mod 5=0 或x/3=x\3 Or x/5=x\52、选项按钮的知识点在P182,利用该控件的Wlue属性判断是否选中该项。
实验报告课程名称_程序设计基础Visual Basic_ 班级______ ______姓名_____ ____实验一 VB环境和创建一个简单的VB程序一.实验目的:1.了解VB系统对计算机软件、硬件的要求。
2.掌握启动和退出VB的方法。
3.了解和使用VB集成开发环境各窗口、菜单的一般功能。
4.熟悉建立、编辑、运行、保存一个简单的VB应用程序的全过程。
5.了解文本框、标签框、命令按钮的构造及其属性、事件和方法。
二.实验内容:1.设计一个简单的应用程序,要求在窗体上画一个文本框、一个标签和两个命令按钮编一程序,并把命令按钮分别设置为”显示”和”清除”。
程序运行后,单击”显示”按钮,在文本框中输出一行信息;单击”清除”按钮,则清除文本框中的内容,运行界面如图所示。
图实验1-1 运行界面三.实验结果:对象属性设置对象属性属性值说明caption我的第一个vb程序窗体Form1caption请输入姓名标签Label1text““文本框Text1caption显示命令按钮Command1caption清除命令按钮Command2四.实验思考:1.标签label控件设置的属性代码有哪些=“请输入姓名”=24=True2.两个按钮所使用的是什么事件代码分别是什么Private Sub Command1_Click()=“姓名”实验二简单程序设计数据类型及常用内部函数的简单应用一.实验目的:1.掌握Visual Basic数据类型的基本概念。
2.掌握用Visual Basic的各种运算符及表达式。
3.学习使用Visual Basic内部函数和数据输入、输出方法。
4.掌握命令按钮、文本框和标签。
5.设计顺序程序。
二.实验内容:1.编写一个华氏温度和摄氏温度之间的转换程序,如图2-2所示,要求用inputbox函数输入华氏温度,用msgbox输出转换后的摄氏温度。
转换公式是:C= 5 / 9(F - 32)。
F为华氏温度,C为摄氏温度。
vb6.0实验六习题与答案实验六专业_____________ 班级________年级________姓名______________学号_______________ 一、实验目的1、认识常用控件:单选按钮、复选框、框架、列表框、组合框、滚动条、滑动器(Slider)、时钟、图形控件;2、学习在窗体中创建常用控件2、学习在属性窗口和在程序代码中设置属性3、学习调用控件的方法4、学习编写各控件和鼠标与键盘的事件过程二、实验内容1、单选按钮、复选框、框架1)设置窗体F1的标题为“复选框、框架和单选按钮”;在窗体中设置复选框Ch1、Ch2 Ch1和Ch2的高度和宽度分别为360和1000;并程序运行时,Check2处于非少许状态。
框架Fr1包含单选按钮Op1和Op2。
2)设计窗体,要求①标题为“设置字体”;②在窗体中设置有边框的标签控件Label1,高度和宽度分别为450和3800,标题为“欢迎使用VB”,字号为“四号”,居中显示;③标题为“字体”框架包含两个标题分别为“楷体_GB2312”和“华文新魏”的单选按钮Op1和Op2;④标题为“斜体”框架包含两个标题分别为“是”和“否”的单选按钮。
⑤编写相应控件的事件过程,使得程序运行时,单击“楷体_GB2312”,标签控件的字体为楷体_GB2312,单击“华文新魏”,标签控件的字体为华文新魏;单击“是”,标签控件的字体为斜体,单击“否”,标签控件的字体取消斜体。
Private Sub Option1_Click()Label1.FontName = Option1.CaptionEnd SubPrivate Sub Option2_Click()Label1.FontName = Option2.CaptionEnd SubPrivate Sub Option3_Click() Label1.FontItalic = TrueEnd SubPrivate Sub Option4_Click() Label1.FontItalic = FalseEnd Sub3)在窗体是设置设置框Text1,其中文字为:黑体、四号、居中;设置单选按钮Option1和Option2,标题分别为“福州大学”和“阳光学院”,编写行当的事件过程,使得程序时,单击“福州大学”或“阳光学院”,在文本框中显示“福州大学”或“阳光学院”。
实验任务6参考答案课程名称:程序设计基础VB实验名称——实验六Visual Basic程序设计基础(2)一、实验目的:1.掌握顺序结构的程序设计方法2.掌握常用的接收和输出数据的方法3.进一步掌握常量、变量、运算符、表达式和常用函数的使用二、实验内容(包括实验要求(题目)、实验步骤、程序清单、运行情况):实验1注意:类型符省略为%——Integer,&——Long,!——Single,#——Double,@——Currency,结果转换方向整型→长整型→单精度型→双精度型→货币型第(1)组总结◆加法和减法的情况相同◆通常相同类型的操作数进行运算,结果同操作数本身,但是除法/比较特殊,除单精度数据除外(Single),相同数据进行除运算结果是Double◆不同类型的操作数进行运算,结果通常按占用内存字节数多的方向转换(规则:转换方向整型→长整型→单精度型→双精度型→货币型);也有特例:单精度与长整型运算结果为Double,单精度与货币型相乘运算结果为Double, 双精度与货币型相乘运算结果为Double,单精度与整型相除运算结果为Single第(2)组Dim a As Integer, b As Single, c As Singlea < 2 = 3 b^2 - 4*a*c > 0 "ABC">"ACB" "ABC" = "abc" 200 + True"123ab" & 246#1/1/2007# - #1/1/2000# "30" + 140 "123" & 456 "123" + 456实验2请先手工写出以下程序段的运行结果,然后使用立即窗口或在窗体的Click事件过程中分别添加如下的程序段,运行验证,进一步理解和掌握运算符和表达式的应用。
实验报告参考答案(本部)实验一VB集成开发环境实验内容(3):四、设计流程①界面设计:在窗体上画一个标签。
②属性设置:标签的width设为2000,height设为300。
有边框是BordStyle设为1,背景透明是BackStyle设为0。
显示“等级考试”是将caption设为“等级考试”,居中是将Alignment 设为2。
③代码设计:无五、关键代码(注意:解题方法有多种,其它方法只要能完成实验任务也是正确的)无六、调试和测试结果至少要写测试结果正确,如果写了调试中出现的典型问题及解决方法,分数给高些实验二简单的VB程序设计实验内容(3):四、设计流程①界面设计:在窗体上画一个标签、一个命令按钮。
②属性设置:固定边框是BordStyle设为1,背景透明是BackStyle设为0。
③代码设计:分别在3个事件过程form_load(),form_click(),Cmd1_click()中编程。
其中图片从网上下载,与工程文件、窗体文件保存在同一目录,代码中使用相对路径app.path。
五、关键代码(注意:解题方法有多种,其它方法只要能完成实验任务也是正确的)Private Sub Form_Load()Form1.Picture = LoadPicture(App.Path + "\tu.jpg")Form1.Caption = "我的变化"End SubPrivate Sub Form_Click()LBL1.Top = 0LBL1.Left = 0End SubPrivate Sub Cmd1_Click()Cmd1.Height = 1500Cmd1.Width = 2000End Sub六、调试和测试结果至少要写测试结果正确,如果写了调试中出现的典型问题及解决方法,分数给高些实验三数据类型及其运算四、设计流程①界面设计:在窗体上画1个文本框、1个标签、6个命令按钮。
实验一:一、选择1.D2.D3.B4.A5.B6.C7.CD8.D9.D 10. BC11. A 12.D 13. D 14. C 15. A二、填空1.windows2. 中断3.工具箱4.代码5.分类6.form2.show7. 出现语法错误8. 错9. 事件10. 面向对象11.工程文件结构12. 工程13. 设计程序代码14. 双击窗体15. C:\Program Files\Microsoft Visual Studio\VB98 或者VB的安装文件夹16.属性17.方法18.font 19. form_load() 20.对象实验二:一、选择1.B2.C3. B4.C5.C6.C7.B8.B9.D 10. A11. C 12.C 13. C 14. B 15. A16.C 17.B 18.D 19.C 20. C二、填空1. Form_Click()2. Interval、50003..vbp .frm4.left top Height、Width twip5.picture6.load7. locked8. font Alignment9. GotFocus() LostFocus() 10. 属性窗口程序代码实验三:一、选择1.A2.BC3.BC4.A5.A6.A7.BCD8.D9.B 10. B11. B二、判断题不合法的变量:3. 4. 5. 6. 8. 10. 11. 14.15. 16.三、1、abs(x+y)2. (3+x*y)^23. (-b+sqr(b^2-4*a*c))/(2*a)4.sin(30*3.14/180)+exp(2)四、1. int(rnd* 71+20) 或int(rnd* 71)+202. x<0 and y>0 or x>0 and y<0 或者x*y<03. x mod 3=0 or x mod 7=0或x/3=x\3 or x/7=x\74. x>=10 and x<205. x>="A" and x<="Z"6. left(s,3)实验四:一、选择1.C2.D3. C4.D5.A6.D7.B8.B9.A 10. C二、填空1. 48.71E-01, -4.87122. 关系、逻辑、算术3. 900,100,mid(s,2,1)4.m、1,2,3 、print m & "月是第二季度"、end select 三、1. X=4 y=132. 10实验五一、选择B C B A C二、填空(1)for x=2 to 10s*(1-1/x)(2) 1 t>1E-6(3) j t(4) 5 11 5实验六一、选择B C C C D D D D C A实验七一、选择1C 2C 3D 4A 5B 6D 7AB 8A 9A 10A 二、填空(1)n!(2)1+1+2+3+4+……+n(3)n是否是素数(4)冒泡排序(5)递归调用产生斐波那契数列(6)求最大公约数和最小公倍数第八页编程2-1Private Sub Command1_Click()Label3 = Val(Text1) * Val(Text2)End SubPrivate Sub Command2_Click()Label3 = Val(Text1) / Val(Text2)End Sub2-2Private Sub Command1_Click()Picture1.Picture = LoadPicture("d:\tu1.jpg") End SubPrivate Sub Command2_Click()Picture1.Picture = LoadPicture("d:\tu2.jpg") End SubPrivate Sub Command3_Click()Picture1.Visible = FalseEnd Sub2-5Private Sub Form_Load()Image1.Picture = LoadPicture("C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Sunset.jpg")End SubPrivate Sub Command1_Click()Timer1.Enabled = TrueEnd SubPrivate Sub Command2_Click()Timer1.Enabled = FalseEnd SubPrivate Sub Image1_Click()Timer1.Enabled = FalseEnd SubPrivate Sub Timer1_Timer()Image1.Left = Int(Rnd * (Form1.ScaleWidth - Image1.Width)) Image1.Top = Int(Rnd * (Form1.ScaleHeight - Image1.Height)) End Sub第11页编程2-3Private Sub Command1_Click()Dim x%, y%x = Int(Rnd * 900 + 100)Print "产生的随机数:"; xy = (x Mod 10) * 100 + (x \ 10 Mod 10) * 10 + x \ 100Print "反序数:"; Format(y, "000")End SubPrivate Sub Command2_Click()Dim x%, y As Stringx = Int(Rnd * 900 + 100)Print "产生的随机数:"; xy = Trim(Str(x))Print "反序数:" & Right(y, 1) & Mid(y, 2, 1) & Left(y, 1)End SubPrivate Sub Form_Load()End Sub2-4Private Sub Command1_Click()Dim m%, n%Randomizem = Val(Text1): n = Val(Text2)x = Int(Rnd * (n - m + 1) + m)y = Int(Rnd * (n - m + 1) + m)z = Int(Rnd * (n - m + 1) + m)Label3 = m & "到" & n & "之间的3个随机数为: " & x & Space(3) & y & Space(3) & zEnd SubPrivate Sub Form_Load()End Sub2-5Private Sub Command1_Click()Label1.Caption = DateEnd SubPrivate Sub Command2_Click()Label2.Caption = TimeEnd SubPrivate Sub Command3_Click()Label3.Caption = WeekdayName(Weekday(Date)) End SubPrivate Sub Form_Load()End Sub第十五页2-1方法一Private Sub Command1_Click()Dim x!, a!, aa%, b!, bb%, c!, cc$x = Val(Text1)a = x * 180 / 3.14aa = Int(a)b = (a - aa) * 60bb = Int(b)c = (b - bb) * 60cc = Format(c, "#.000")Label2 = "弧度" & Text1 & "转换为" & aa & "度" & bb & "分" & cc & "秒"End Sub方法二Private Sub Command1_Click()x = InputBox("请输入弧度数值", "弧度转换", 0)xx = Val(x)a = x * 180 / 3.14aa = Int(a)b = (a - aa) * 60bb = Int(b)c = (b - bb) * 60cc = Format(c, "#.000")MsgBox "弧度" & x & "转换为" & aa & "度" & bb & "分" & cc & "秒"End Sub2-2Private Sub Command1_Click()Dim x%x = Val(Text1)If x / 400 = x \ 400 Or x Mod 4 = 0 And x Mod 100 <> 0 ThenLabel2 = Text1 & "年是闰年"ElseLabel2 = Text1 & "年不是闰年"End IfEnd Sub2-3方法二Private Sub Command1_Click()Dim x%, y%, z%x = InputBox("输入第一个数")y = InputBox("输入第二个数") z = InputBox("输入第三个数") If x > y Then t = x: x = y: y = t If y > z Then t = y: y = z: z = t If x > y Then t = x: x = y: y = t Print x, y, zEnd SubPrivate Sub Form_Load()End Sub方法一Private Sub Command1_Click() Dim x%, y%, z%x = Val(Text1)y = Val(Text2)z = Val(Text3)If x > y Then t = x: x = y: y = t If y > z Thent = y: y = z: z = tIf x > y Thent = x: x = y: y = tEnd IfLabel1 = x & Space(5) & y & Space(5) & z End Sub2-4方法一Private Sub Command1_Click()x = Val(InputBox("请输入上网时间:"))If x <> -1 ThenSelect Case xCase Is < 10fei = 25Case 10 To 50fei = x * 2Case 50 To 100fei = x * 1.5Case Is >= 100fei = x * 1End SelectMsgBox "上网费用为:" & fei & "元"End IfPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Load()End Sub方法二Private Sub Command1_Click()Dox = Val(InputBox("请输入上网时间:", , -1)) If x <> -1 ThenSelect Case xCase Is < 10fei = 25Case 10 To 50fei = x * 2Case 50 To 100fei = x * 1.5Case Is >= 100fei = x * 1End Selectzongfei = zongfei & Space(3) & fei MsgBox zongfei, , "上网费用为" ElseExit DoEnd IfLoopEnd SubPrivate Sub Command2_Click() EndEnd SubPrivate Sub Form_Load()End Sub2-5第18页2-3Private Sub Command1_Click()n = 0DoIf n Mod 2 = 1 And n Mod 3 = 2 And n Mod 5 = 4 And n Mod 6 = 5 And n Mod 7 = 0 Then Exit Don = n + 1LoopPrint nEnd Sub]2-5Private Sub Command1_Click()x = Val(Text1)y = x * 4n = 0Do While x <= yx = x * (1 + 0.1)n = n + 1Print xLoopPrint x, nEnd Sub2-6Private Sub Command1_Click()n = Val(InputBox("输入计算到第几项:", , 0)) For i = 1 To ns = s + (-1) ^ (i + 1) * iNextPrint n, sEnd SubPrivate Sub Form_Load()-8End Sub2-8Private Sub Command1_Click()Dim s As Double, pi As Doublen = 1: s = 0Do While 1 / (2 * n - 1) >= 0.0001s = s + (-1) ^ (n + 1) * 1 / (2 * n - 1)n = n + 1Looppi = 4 * sPrint piEnd Sub2-9Private Sub Command1_Click()For n = 100 To 999k = Trim(Str(n))If n = Left(k, 1) ^ 3 + Mid(k, 2, 1) ^ 3 + Right(k, 1) ^ 3 Then Print nNextEnd Sub2-11Private Sub Command1_Click()s = 0: Max = 0: Min = 1000For i = 1 To 20Randomizex = Int(Rnd * 50 + 51)Print x;If x > Max Then Max = xIf x < Min Then Min = xs = s + xNext iaver = s / 20PrintPrint "max="; Max, "min="; Min, "aver="; aver End SubPrivate Sub Form_Load()End Sub。
第6章习题参考答案一、判断题题号 1 2 3 4 5 6答案√√×√√×二、选择题题号 1 2 3 4 5答案 D C A D B三、程序填空题1.(1)nsp=true(2) m mod i=0(3) p1 and p2(4) p1=nsp(i)2.(1)number(i,7)(2) (int n, int m)(3) number=number*10+m四、程序阅读1. a=9 b=42.(1) 362516941(2)1499413.64. 1 4 6五、编写程序1.Public Function fact(x As Integer) As Single '求x!Dim f As Single, i As Integerf = 1For i = 1 To xf = f * i '累积Next ifact = fEnd FunctionPrivate Sub Form_Click()Dim n%, m%, y!Dom% = Val(InputBox("m="))n% = Val(InputBox("n="))Loop Until m >= n And n >= 0y = fact(m) / (fact(n) * fact(m - n))Print yEnd Sub2 private sub Insertfun(a%(), y%)Dim i as integer,n as integern=ubound(a)Redim preserve a(n+1)For i=ubound(a)-1 to 0 step -1If y <a(i) thena(i+1)=a(i)If i=0 then a(i)=yElsea(i+1)=yexit forend ifnext i3. '判断是否为回文函数Private Function Judge(str As String) As BooleanDim i As IntegerJudge = True '假设为回文For i = 1 To Len(str) \ 2 '依次判断对应位置的两个字符,只要有一组不等即不是回文If Mid(str, i, 1) <> Mid(str, Len(str) + 1 - i, 1) ThenJudge = FalseExit FunctionEnd IfNext iEnd Function4.Private Sub Form_Click()Dim n%,x!n = Val(InputBox("n="))x = Val(InputBox("x="))Print fe(n, x) '调用求值函数过程End Sub'求值函数过程Public Function fe(n%, x!) As SingleDim i As Integer, t As Singlefe = 1: t = 1For i = 1 To nt = t * x / i 't为通项fe = fe + tNext iEnd Function5.。
学院专业(班级)姓名学号任课教师目录实验一 Visual Basic编程环境和控件 (1)实验二窗体及基本控件使用 (7)实验三顺序结构程序设计 (14)实验四选择结构程序设计 (20)实验五选择结构程序设计(续) (25)实验六循环结构程序设计 (33)实验七循环结构程序设计(续) (38)实验八常用控件 (42)实验九常用控件(续) (51)实验十数组 (56)实验十一数组(续) (65)实验十二顺序文件 (70)实验十三过程 (77)实验十四过程(续) (84)实验十五菜单及通用对话框 (90)实验十六随机文件(选作) (94)附录:VB统考编程题(精选) (98)期末自测题(A卷) (108)期末自测题(B卷) (113)实验报告的整理与编写上机实验结束后,编写实验报告是软件工程的要求,也是培养科学作风的重要途径,实验报告的主要内容包括:(1)实验目的实验作为教学的一个重要环节,其目的在于更深入地理解和掌握课程教学中的有关基本概念,应用基本技术解决实际问题,从而进一步提高分析问题和解决问题的能力。
因此,当我们着手做一个实验的时候,必须明确实验的目的,以保证达到课程所指定的基本要求。
在写实验报告时,要进一步确认是否达到了预期的目的。
(2)实验内容实验的目的是要通过解决一些具体问题来达到的。
在书中,每一部分都安排了多个实验题目,根据教学安排、进度、实验条件、可提供的机时、学生的基础等因素,可以选择其中的几个或全部。
因此,在实验报告中,实验内容是指本次实验中实际完成的内容。
在每一个实验题目中,一般都提出一些具体要求,其中有些具体要求是为了达到实验目的而提出的,不仅有具体的实验题目,还应包括具体要求。
(3)程序设计说明包括算法设计思路,必要的流程图,界面设计说明、使用模块及变量的说明等。
(4)源程序代码Visual Basic的源程序包括界面设计和代码。
程序设计的产品是程序,它应与算法或流程图相一致,要与用户界面设计一致。
实验6 数组6-1Private Sub Command1_Click()Dim i As Integer, j As IntegerDim a(10) As Integer, t As IntegerPrint "交换前数据:"For i = 1 To 10a(i) = ……‘生成20-80之间的随机数Print ……;‘注意这里用分号,表示在一行上紧密输出各数组元素的值,‘如不用分号和逗号,则分行输出各数组元素的值。
Next iPrint ‘输出空行,表示后面的输出换到新的一行。
For i = 1 To 10 \ 2 ‘这里必须是10\2,表示交换5次,即可实现两两数据交换(第一'个和最后一个的交换,第二个和第九个的交换,以此类推)‘以下实现数据交换,必须通过第三个变量实现两两数据交换t = a(i)a(i) = a(10 - i + 1)a(10 - i + 1) = tNext iPrint "交换后数据:" ‘必须单独做循环输出数据,不能放在上面的循环里输出,因为上面循环只有5次,只能输出5个元素。
For i = 1 To 10Print ……;Next iEnd Sub6-2Private Sub Command1_Click()Dim a(10) As Integer, i As Integer, aver As IntegerDim max As Integer, imax As IntegerDim min As Integer, imin As Integer, sum As IntegerPrint "输入评委的评分"‘①输入数组元素For i = 1 To 10a(i) =……if a(i)<5 or a(i)>10 then‘出错信息‘i控制变量作何处理?endifNext i‘②输出数组元素For i=1 to 10Print ……;Next iPrint ‘换行‘③开始对数组元素进行处理imax = 1: imin = 1: sum = a(1): max = a(1) ‘imax表示最大元素的下标值,imin表示最小元素的下标值,max变量表示最大值,sum表示元素和变量。
第1章 习题参考答案一、思考题 略二、选择题1. C2. B第2章 习题参考答案一、判断题二、填空题1. 窗体font2. 不能在代码中设置 3. selstart 4. Locked5. TabIndex 、 0 6. vbModal 或 17. Activate 、 Deactivate 8.PictureBox 和 Frame -三、选择题第3章 习题参考答案一、思考题1、double2、 xyC@abc , 15eyd , Is , #END X8[P]3、变量有 (1) (4) (6) (8),常量有 (2)字符串型 (3)逻辑型 (5)字符串型 (7)字符串型 (9)日期型 (10)实型 4、 fe d cb a++5、 (1) 26 (2) 3.75 (3) 36、写出下列Visual Basic 表达式的值:(1) False (2) True (3) True (4) False (5) True(6) True (7) False (8) False7、将下列命题用Visual Basic布尔表达式表示:(1) z>x and z>y (2) abs(a)<=abs(b+2) or a > b+2(3) p mod q=0 (4) x<-5 or x>-2 and x<2 or x>5(5) x<z and y>z or x>z and y<z (6) a<b and a mod 2=08、写出下列函数的值:(1) -4 (2) 换行符(3) –3 (4) -1 (5) hello(6) ello (7) 16 (8) “-459.65” (9) 5二、填空题1.整型、长整型、双精度型、双精度型2.(X mod 10)*10+X\103.sin(1/4*3.14)+sqr(x+2*exp(y))/abs(x-y)4.(a+b)/(c*d-sqr(1-a^2))5.x mod 5=0 or x mod 9=06.False7.-3 、 2 、-2 、 28.CDEF9.x>0 and y>0 or x<0 and y<0 或x*y>010.s>=”A” and s<=”Z” or s>=”a” and s<=”z”三、选择题四、编程题1、Private Sub Form_Click()Dim x%, Ten%, hundred%x = Val(Text1.Text)Ten = (x \ 10) Mod 10hundred = x \ 100Print "百位数是: " & hundredPrint "十位数是: " & TenEnd Sub2Private Sub Form_Click()Dim char As String * 1Form1.CurrentX = Rnd * Form1.ScaleWidthForm1.CurrentY = Rnd * Form1.ScaleHeightchar = Chr(Int(Rnd * 16) + 65)Print charEnd Sub第4章习题参考答案一、判断题二、选择题三、程序阅读写出下列各段程序执行后的输出结果。
第6章思考题与习题一.思考题(解略)1.在Windows程序中,用户和计算机程序的交互过程主要表现在哪些方面?在VB中是通过什么途径提供用户交互的?2.如何实现弹出式菜单的设计和执行?3.在这本章我们介绍了剪切板的一些概念,如何在VB程序中使用剪切板?如果不是文本文件,那么应该如何使用剪切板?4.在键盘事件中,KeyPress和KeyDown及KeyUp之间有什么区别?在什么情况下使用KeyPress事件?5.如何确定鼠标是哪个按钮被按下?如果多个程序都使用鼠标,系统应该如何设计?6.如果需要编写一个程序,判断输入的单词是否是VB的关键字,那么应当如何设计这个程序?二.填空题1.mouseup*2.产生对象.Dragover事件*3.一个对象的DragMode属性要么是1,要么是0,它在属性窗口或程序代码中被设置。
4.MouseMove5.指针类型,17 996,Shift*7.拖放8.move9.KeyPress,对应按键的ASCII码。
KeyDown或KeyUp,Shift10.Click,当前窗体的输出位置11.右键,菜单12.AL T13.Visible,Enabled14.Click,115.Enabled False16.连接符”-”17.518.Clipboard.Clear19.文本,Clipboard.GetText20.PopupMenu,Call PopupMenu 菜单名称上机实验一.在一个窗体上放置一个文本框,向该文本框输入0~15(其他数提示为输入错误,要求重新输入),根据在文本框中的数字显示不同的鼠标指针。
Private Sub Text1_Change()If V al(Text1.Text) >= 0 And V al(Text1.Text) <= 15 ThenMe.MousePointer = V al(Text1.Text)ElseMsgBox "数据输入错误,请输入0-15的数"Text1.SelStart = 0Text1.SelLength = Len(Text1.Text)End IfEnd Sub二.设计一个程序,从键盘上读入一个字符,如果是在0~9,a~z之间,直接存入该字符到窗口中的文本框中,并给出它们对应的ASCII码,如果是A~Z,则将其转换为小写后在文本框中显示原来的字符和转换后小写的字符及其ASCII码,如果是其他字符,直接在文本框中显示提示信息“您输入亚的是字母和数字以外的符号”。
实验6 数组6-1Private Sub Command1_Click()Dim i As Integer, j As IntegerDim a(10) As Integer, t As IntegerPrint "交换前数据:"For i = 1 To 10a(i) = ……‘生成20-80之间的随机数Print ……;‘注意这里用分号,表示在一行上紧密输出各数组元素的值,‘如不用分号和逗号,则分行输出各数组元素的值。
Next iPrint ‘输出空行,表示后面的输出换到新的一行。
For i = 1 To 10 \ 2 ‘这里必须是10\2,表示交换5次,即可实现两两数据交换(第一'个和最后一个的交换,第二个和第九个的交换,以此类推)‘以下实现数据交换,必须通过第三个变量实现两两数据交换t = a(i)a(i) = a(10 - i + 1)a(10 - i + 1) = tNext iPrint "交换后数据:" ‘必须单独做循环输出数据,不能放在上面的循环里输出,因为上面循环只有5次,只能输出5个元素。
For i = 1 To 10Print ……;Next iEnd Sub6-2Private Sub Command1_Click()Dim a(10) As Integer, i As Integer, aver As IntegerDim max As Integer, imax As IntegerDim min As Integer, imin As Integer, sum As IntegerPrint "输入评委的评分"‘①输入数组元素For i = 1 To 10a(i) =……if a(i)<5 or a(i)>10 then‘出错信息‘i控制变量作何处理?endifNext i‘②输出数组元素For i=1 to 10Print ……;Next iPrint ‘换行‘③开始对数组元素进行处理imax = 1: imin = 1: sum = a(1): max = a(1) ‘imax表示最大元素的下标值,imin表示最小元素的下标值,max变量表示最大值,sum表示元素和变量。
min = a(1)‘min变量表示最小值,初值一定要在循环体外赋值,不然min=0,输入的数组元素值如果都>0,那min永远都为0.For i = 2 To 10If max < a(i) Then ……‘找最大值及下标If min > a(i) Then ……‘找最小值及下标sum = ……‘求数组元素和Next i‘④输出结果aver = (sum - a(imax) - a(imin)) / 8‘求平均值aver = (sum - max - min) / 8 Print "选手的得分为:"Print averEnd Sub6-3‘通用处定义窗体级变量Option ExplicitOption Base 1Dim a(5, 5) As Integer‘定义窗体级变量,以便在下面的4个命令按钮的click 事件中使用该数组Private Sub Command1_Click()Dim i As Integer, j As Integer ‘不可以再次定义a(5,5),否则a(5,5)只能在command1中有用,在其他命令按钮事件中不起作用。
‘二维数组元素的赋值用二重循环控制For i = 1 To 5For j = 1 To 5a(i, j) = Val(InputBox("输入a(" & i & "," & j & ")的值")) ‘此写法在输入对话框中可显示数组元素的下标值。
Next jNext iEnd SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer‘用二重循环控制二维数组元素的输出……Picture1.Print Mid(Str(a(i, j)) & " ", 1, 3); Spc(4); ’为了在输出时每列元素列对齐……‘用Picture1.Print输出空行……End SubPrivate Sub Command3_Click()Dim imax As Integer, max As Integer, jmax As Integer ‘imax表示最大值元素的下标,imin表示最小值元素的下标,max表示最大元素Dim sum1%, sum2%, sum3%Dim i As Integer, j As IntegerFor i = 1 To 5For j = 1 To 5If 条件 Thenmax =……: imax = ……: jmax =……End IfIf 条件 Then sum1 = ……‘i=j时,主对角线上的元素If 条件 Then sum2 = ……‘i<j时,上三角元素If 条件 Then sum3 = ……‘i>j时,下三角元素Next jNext iLabel1.Caption = "最大元素为a(" & imax & "," & jmax & ")=" & maxLabel2.Caption = "对角线元素之和为" & sum1Label3.Caption = "上三角元素之和为" & sum2Label4.Caption = "下三角元素之和为" & sum3End SubPrivate Sub Command4_Click()Picture1.Cls ‘清屏Label1.Caption = ""Label2.Caption = ""Label3.Caption = ""Label4.Caption = ""End Sub6-4Option Base 1Dim a() As Integer ‘定义动态数组,因为数组元素个数不确定Private Sub Form_Click()Dim i As Integer, j As Integer, p As BooleanDim n As IntegerFor i = 2 To 100p = True ‘注意True的写法,不能写出TureFor j = 2 To CInt(Sqr(i)) ‘j不能从1开始,思考一下为什么?If i Mod j = 0 Thenp = FalseExit For ‘i能被j整出,说明i已不是素数了,没必要继续执行循环,跳出循环。
End IfNext jIf p Then‘可写成if p=True Then,当P为True时说明i不被j整除,是素数。
n = ……‘用n变量累计素数的个数ReDim Preserve ……‘重新声明动态数组a()的大小,……‘将素数i赋给数组元素a(n)。
……‘输出即素数。
End IfNext i‘也可单独做循环输出数族元素a(n),即素数For i = 1 To nPrint Mid(Str(a(i)) & " ", 1, 3); Spc(4); ‘输出时列对齐If i Mod 6 = 0 Then Print ‘每行输出6个元素。
考虑在图像框中如何换行?Next iEnd Sub6-5Dim a(5, 5) As Integer, b(1 To 25) As Integer ‘定义窗体级变量,便于各个命令按钮使用该数组,注意在各命令按钮事件中不可再定义这两个数组a和b。
Private Sub Command1_Click()For i = 1 To 5For j = 1 To 5……‘给数组a各元素赋初值,同时输出各元素值Next jPicture1.Print ‘换行Next iEnd SubPrivate Sub Command2_Click()‘将二维数组转换成一维数组For i = 1 To 5For j = 1 To 5b((i - 1) * 5 + j) = a(i, j)Next jNext i‘用冒泡法或选择法对数组元素进行排序……‘输出排序后的结果For i = 1 To 25Picture2.Print ……‘输出一维数族元素b(i)If i Mod 5 = 0 Then……‘Picture2换行End IfNext iEnd SubPrivate Sub Command3_Click()Picture1.ClsPicture2.ClsEnd Sub6-6Dim a(1 To 10) As Integer‘定义窗体级变量Private Sub Command1_Click()‘给数组a各元素赋初值,同时输出各元素值For i = 1 To 10a(i) = Int((50 - 20 + 1) * Rnd) + 20Picture1.Print a(i);Next iEnd SubPrivate Sub Command2_Click()‘用冒泡法排序Private Sub Command3_Click()‘二分查找6-7Option ExplicitDim s() As String, n As Integer‘定义窗体级变量,其中s为字符数组Private Sub Command1_Click()Dim i As Integer, smax As String, imax As Integer, j As Integer Dim s1 As String‘选择排序,注意:对字符数族元素可直接排序,不必转换成整型数据。
For i = 1 To n - 1imax = iFor j = i + 1 To nIf s(j) > s(imax) Then imax = jNext js1 = s(imax)s(imax) = s(i)s(i) = s1Next iFor i = 1 To nPicture1.Print s(i)Next iEnd Sub‘如用冒泡法排序,如何编程?练习一下。
Private Sub Command2_Click()Picture1.ClsEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Thenn = ……‘n值加1,即数组元素个数增加1个ReDim Preserve s(n) ‘动态数组使用前必须声明s(n) = ……‘用s数组存放字符串Text1.Text = "" ‘清空文本框,便于输入下一个字符串。