VB教材习题答案
- 格式:doc
- 大小:755.00 KB
- 文档页数:43
习题1一.单项选择题(要求在四个备选答案中选出一个正确答案)1.Visual Basic是一种( D )的可视化程序设计语言。
A.面向机器 B.面向过程 C.面向问题 D.面向对象2.在VB中,下面被称为对象的是( C )A. 窗体B.控件C. 窗体和控件D. 窗体、控件、属性3.以下说法正确的是( A )A.对象的可见性可设为1或0B.标题的属性值可设为任何文本C.如果属性的值不设置,默认为空D.属性窗口中属性只能按字母顺序排列4.为了在属性窗口中设置窗体的属性,预先要执行的操作是( A )。
A.单击窗体上没有控件对象的地方 B.单击任一个控件对象C.双击任一个控件对象 D.双击窗体上没有控件对象的地方5.要设置窗体上各控件的属性,可在( C )中进行。
A.窗体布局窗口 B.工程资源管理器窗口C.属性窗口 D.窗体窗口6.在代码窗口中,当从对象框中选定了某一对象后,在( A )中会列出适用该对象的事件。
A.过程框 B.属性窗口 C.工具箱 D.工具栏7.创建一个简单的应用程序,该程序只有一个窗体,则该工程至少有( B )个文件需要保存。
A.1 B.2 C.3 D.48.程序运行中用鼠标双击当前窗体时,会触发窗体的( C )事件。
A.Load B.Unload C.DblClick D.KeyPress9.在Visual Basic 6.0集成开发环境中,可以( D )。
A.编辑、调试、运行程序,但不能生成可执行程序B.编辑、运行程序,生成可执行程序,但不能调试程序C.编辑、调试程序,生成可执行程序,但不能运行程序D.编辑、调试、运行程序,并能生成可执行程序10.以下叙述正确的是( C )。
A.用属性窗口只能设置窗体的属性B.用属性窗口只能设置工具箱中标准控件的属性C.用属性窗口可以设置窗体和控件的属性D.用属性窗口可以设置任何对象的属性11.在VB程序运行期间,若改变窗体大小,则自动触发的窗体事件是( B )A. ClickB. ResizeC. LoadD. Unload12.以下为窗体文件扩展名的是( C )A. .basB. .clsC. .frmD. .ers13.能确定控件尺寸的是( A )A.Width和HeightB.Top和LeftC. Width或HeightD.Top或Left二. 多项选择题(要求在五个备选答案中选出多个正确答案)1.下列论述中,正确的是( ACDE )。
第1章习题与答案一、选择题1. 在VB集成环境创建VB应用程序时,除了工具箱窗口、窗体窗口、属性窗口外,必不可少的窗口是:(A)窗体布局窗口(B)立即窗口(C)代码窗口(D)监视窗口2. 保存新建的工程时,默认的路径是:(A)My Documents (B)VB98 (C)\ (D)Windows3. 将调试通过的工程经“文件”菜单的“生成.exe文件”编译成.exe后,将该可执行文件转到其他机器上不能运行的主要原因是:(A)运行的机器上无VB系统所需的动态连接库(B)缺少.frm窗体文件(C)该可执行文件有病毒(D)以上原因都不对4.当需要上下文帮助时,选择要帮助的“难题”,希望出现MSDN窗口及显示所需“难题”的帮助信息。
应按的键的(A)Help (B)F10 (C)Esc (D)F15.Visual Basic中提供的On Error Resume Next错误陷阱语句的功能是:(A)当发生错误时,使程序跳转到语句标号为0的程序块(B)当发生错误时,不使用错误处理程序块(C)当发生错误时,忽略错误行,继续执行下一语句(D)当发生错误时,终止本过程程序执行,继续执行下一过程6.在VB环境中,工程文件的扩展名是:(A).frm (B).bas (C).vbp (D).frx7.将一个VB程序保存在磁盘上,至少会产生的文件是:(A).doc、.txt (B)aaa、.exe (C).vbp、.frm (D).bat、.sys8.下面关于对象的描述中,错误的是:(A)对象就是自定义结构变量(B)对象代表正在创建的系统中的一个实体(C)对象是一个状态和操作(或方法)的封装体(D)对象之间的信息传递是通过消息进行的9.下面4项中不属于面向对象系统三要素的是(A)变量(B)事件(C)属性(D)方法10.下面各种高级语言中,不是面向对象程序设计语言的是(A)Visual Basic (B)C++ (C)Pascal (D)Java二、填空题1.当进入VB集成环境后,发现没有显示“工具箱”窗口,应选择【1】菜单的【2】选项,使“工具箱”窗口显示。
VB程序设计教程课后参考答案习题一一、填空题1.对象、事件驱动2.窗体、控件3.属性4.属性窗口、编程设置5.事件过程6.对象名、下划线、事件名7.Form_click8.Print form1.print “我的VB”9.主窗口、属性、工具箱、代码、窗体、工程资源管理10.菜单、快捷键二、选择题1.C 2. A 3. B 4. B 5. D 6. B C 7. A 三、简答题(略)习题二一、选择题1. D2. C3. C4. B5. C6. B7. C8. B 9. A 10. B 11. B 12. C 13. D 14. B15. A 16. A 17. A 18. A 19. B 20. C 21. A22. B 23. B 24. A 25. C 26. A 27. B 28. B29. C 30. B 31. D 32. D 33. C二、填空题1.Controlbox、Maxbutton、Minbutton2.Multiline TRUE3.******4.单文档界面(SDI)多文档界面(MDI)5.窗体显示6.Passwordchar7._change()三、编程题(略)习题三一、基础知识题(略)二、填空题1.整型、长整型、单精度、双精度2.(x mod 10)*10+x\103.Sin(3.14*15/180)+sqr(x+exp(3))/abs(x-y)-log(3*x)4.(a+b)/(1/(c+5)-c*d/2)5.X mod 5=0 or x mod 9=06.False7.-4、3、-3、3、-4、48.CDEF10.TRUE11.变量、属性12.‘_ :13.(略)14.“”#15.Public、通用/模块、Dim、static、private16.+ 、&、+17.Now() 、time()、日期18.Inputbox()、字符串、val()19.Msgbox()三、选择题1.B 2. C 3. A 4. B D此题有误 5. B 6. A7. D 8. B 9. B 10. C 11. D 12. B13. C 14. B 15. A 16. C 17.A 18. D19. A 20. D 21. A 22. C 23. C 24. D25. A 26. D 27. D 28. B 29. C 30. B31. C 32. B 33. C D此题有误34. C 35. A36. D 37. C 38. A 39. B 40. A 41. C42. C 43. D 44. C 45. D 46. A四、编程题1.Option ExplicitPrivate Sub Command1_Click()Dim a%, b%, c%, delta%Dim x1#, x2#, x#a = Val(InputBox("please input data to a:", "info", 1))b = Val(InputBox("please input data to b:", "info", 1))c = Val(InputBox("please input data to c:", "info", 1))If a = 0 And b <> 0 Thenx = -c / bPrint "所构成的方程是:" & b & "x" & "+" & c & "=0"Print "该一元一次方程的根是:", xEnd IfIf a = 0 And b = 0 ThenPrint "很抱歉,不能构成合法的方程!"End IfIf a <> 0 Thendelta = b * b - 4 * a * cIf delta >= 0 Thenx1 = (-b + Sqr(delta)) / (2 * a)x2 = (-b - Sqr(delta)) / (2 * a)Print "所构成的方程是:" & a & "x2" & "+" & b & "x" & "+" & c & "=0"Print "该方程的根是:"Print "第一个根是:", x1Print "第二个根是:", x2Else2Print "该方程有两个虚根:"Print "第一个虚根是:" & -b / (2 * a) & "+" & Sqr(Abs(delta)) / (2 * a) & "i"Print "第二个虚根是:" & -b / (2 * a) & "-" & Sqr(Abs(delta)) / (2 * a) & "i" End IfEnd IfEnd Sub2.Option ExplicitPrivate Sub Command1_Click()Dim i%, s%s = 0For i = 1 To 99 Step 2s = s + iNextPrint sEnd Sub3.Option ExplicitPrivate Sub Command1_Click()Dim i%Dim s#s = 0For i = 1 To 100s = s + 1 / i * (-1) ^ (i + 1)NextPrint sEnd Sub4.Option ExplicitPrivate Sub Command1_Click()Dim i%, n%Dim t#, s#n = Val(InputBox("please input data:", "info", 5))s = 0t = 1For i = 1 To nt = t * is = s + tNextPrint sEnd Sub5.Option ExplicitPrivate Sub Command1_Click()Dim a%, b%, c%Dim p#, s#a = Val(InputBox("please input data to a:", "info", 3))b = Val(InputBox("please input data to b:", "info", 4))c = Val(InputBox("please input data to c:", "info", 5))If (a + b > c And Abs(a - b) < c) Or (a + c > b And Abs(a - c) < b) Or ((b + c) > a And Abs(b - c) < a) Thenp = (a + b + c) / 2s = Sqr(p * (p - a) * (p - b) * (p - c))Print "三角形的面积是:" & sElsePrint "很抱歉,不能构成合法的△三角形!"End IfEnd Sub6.Option ExplicitPrivate Sub Command1_Click()Dim ji%, tu%For ji = 1 To 27For tu = 1 To 27If ji * 2 + tu * 4 = 78 And ji + tu = 27 ThenPrint "鸡的个数是:" & jiPrint "兔的个数是:" & tuEnd IfNextNextEnd Sub7.Option ExplicitPrivate Sub Command1_Click()Dim i%Dim s#, t#s = 10t = 10For i = 1 To 7t = t * 0.4s = s + t * 2NextEnd Sub8.Option ExplicitPrivate Sub Command1_Click()Dim i%, fs%, max%, min%, s%Dim ave#fs = Val(InputBox("please input score:", "info", 90))s = fsmax = fsmin = fsFor i = 2 To 7fs = Val(InputBox("please input score:", "info", 90))If max < fs Thenmax = fsEnd IfIf min > fs Thenmin = fsEnd Ifs = s + fsNextave = (s - max - min) / 5Print "该运动员的平均成绩是:" & aveEnd Sub9. ‘同学们,这道题方法很多,主要考察你对选择结构的理解,我给出其中一种方法。
二、教科书中的练习题参考答案习题三,参考答案一、VB定义了哪几种数据类型?各自有什么特点?变量有哪几种类型?常量有哪几种类型?答:在Visual Basic中,数据类型分为三大类:基本数据类型、用户自定义数据类型、枚举类型。
基本数据类型是系统定义的一些类型,用户自定义数据类型和枚举类型时用户根据实际情况可以自己定义的类型,并且类型中可以混合基本数据类型。
变量有整型、长整型、单精度浮点型、双精度浮点型、货币型、字节型、字符串型、布尔型、日期型、对象型、变体型数据,还可以使用户自定义类型和枚举类型。
常量有整型、长整型、单精度浮点型、双精度浮点型、货币型、字符串型、布尔型、日期型。
二、说明下列哪些是Visual Basic合法的直接常量,并分别指出它们的类型。
100.0 %100 123D3 0100 “ASDF””1234.5” #2006/6/1# 100# &H123 True答:合法的直接常量有:100.0、123D3、0100、“ASDF”、”1234.5”、 #2006/6/1#、100#、&H123、True、其中整型数据有:0100、&H123单精度数据有: 100.0双精度数据有:123D3、100#字符型数据有:“ASDF”、”1234.5”日期型数据有:#2006/6/1#布尔型数据有:True三、下列数据哪些是变量,哪些是常量?是什么类型的常量?Name ”name” False ff ”11/16/99”答:变量有:Name、ff、常量有:”name”、 False、”11/16/99”其中”name”、”11/16/99”是字符串型,False是布尔型四、下列符号中,哪些可以是Visual Basic的合法变量名?Sum33 x45_0 450_x Single XYZ False 答:上面合法的变量名有:Sum33、x45_0、XYZ。
五、把下列数学表达式写成Visual Basic表达式:(1)5||zyx++(2)6)1(xy+(3)xy yx310+答:(1)Abs(x+y)+z^5 (2) (1+x*y)^6 (3)(10*x+Sqr(3*y))/(x*y)六、计算下列函数的值:(1) Int(-3.14159) (2) Sqr(Sqr(81))(3) Int(Abs(99-100)/2) (4) Sgn(7*3+2-10)答:(1) -4 (2) 3 (3) 0 (4) 1七、写出下列表达式的值:(1) (2^4+8*3 Mod 5)/2 (2) 4^3\7+8-(6>3 or 5<34 and 8<>7)答:(1) 10 (2) 18八、设X=8,Y=4,Z=5,求下列表达式的值(实数保留三位小数):(1) X+4*Z (2) X^3/7答:(1) 28 (2) 73.143习题四,参考答案4.1 略。
<大学程序设计基础-Visual Basic>教材课后习题答案第1章一、选择题1 2 3 4 5 6 7B D BC B B D第2章一、选择题1 2 3 4 5 6 7 8 9 10B C B C B C A A A A11 12 13 14A B A A二、填空题1.rem或’ _ :2.“” # #3.5x2-3x-2sinA/34.3214565.300三、操作题1、程序段:Private Sub Command1_Click()Dim x As Integer, y As IntegerDim s As Long, c As Longx = Text1.Texty = Text2.Texts = x * yc = (x + y) * 2Label3.Caption = "长方形的面积为" + Str(s)Label4.Caption = "长方形的周长为" + Str(c)End Sub3、程序段:Private Sub Command1_Click()Text1.Text = "第一"End SubPrivate Sub Command2_Click()Text1.Text = "第二"End Sub4、程序代码:Private Sub Text1_Change()Text1.MaxLength = 10End Sub5、程序代码:Private Sub Text1_Click()Text1.SelStart = 0Text1.SelLength = Len(Text1.Text)End Sub第3章一、选择题1 2 3 4 5 6 7D A D B A D B二、填空题1. False2.B^2-4*a*c else三、操作题1.从键盘输入三个值,判断它们能否构成三角形的三个边。
如果能构成一个三角形,则计算三角形的面积。
第一章一选择题1 Visual Basic采用了()的编程机制(A) 面向过程(B)面向对象(C)事件驱动(D)可视化2 以下不属于Visual Basic 版本的是()(A)学习版(B)企业版(C)专业版(D)工程版3 Visual Basic从()版本开始推出中文版(A)2.0 (B)3.0 (C)4.0 (D)5.04 Visual Basic6.0是一个()位应用程序的开发工具(A)8 (B)16 (C)32 (D)645 退出Visual Basic集成开发环境的快捷键是()(A)Ctrl+Q (B)Alt+Q (C)Alt+A (D)Ctrl+A6 Visual Basic集成开发环境由种工作状态,不属于3种工作状态之一的是()(A)设计状态(B)运行状态(C)中断状态(D)编写代码状态7 在Visual Basic集成开发环境下不能激活属性窗口的操作是()(A) 在执行“工程”菜单中的“属性窗口”菜单命令(B)执行“视图”菜单中的“属性窗体”菜单命令(C)在对象上右击,从弹出的快捷菜单中选择“属性窗口”菜单命令(D) 按下快捷键F48 在设计阶段,当双击窗体设计器中窗体上的某个控件时,所打开的窗口是()(A)工具箱窗口(B)属性窗口(C)工程资源管理器窗口(D)代码编辑窗口9 当新建一个工程并启动Visual Basic后,工具箱中的控件是()(A)内部控件(B)ActiveX控件(C)内部控件和ActiveX控件(D)内部控件或ActiveX控件10 下列可以打开立即窗口的操作的是()(A)Ctrl+R (B)Ctrl+C (C)Ctrl+O (D)Ctrl+G11 在新建一个“标准EXE”工程后,不在工具箱中出现的控件是()(A)通用对话框(B)列表框(C)文本框(D)命令按钮12 如果要向工具箱中加入ActiveX控件,可以执行“工程”菜单中的()命令(A)引用(B)部件(C)工程属性(D)添加窗体13 Visual Basic规定窗体文件的扩展名是()(A).fom (B).vbp (C).bas (D).frm14 Visual Basic规定标准模块文件的扩展名是()(A).frm (B).vbp (C).bas (D).vbg15 下列不能打开工具箱窗口的操作是()(A) 按下F8快捷键(B)按下Alt键不放开,先按下V键再按下X键(C)执行“视图”菜单中的“工具箱”菜单命令按钮(D)单击“工具箱”上的“工具箱”按钮16 以下可以产生工程组文件(.vbg)的情况是()(A)当一个程序中包含了两个以上的窗体时(B)当一个程序中包含了两个以上的标准模块时(C) 当一个程序中包含了两个以上的工程时(D)当一个程序中包含了两个以上的类模块时。
VB习题答案(1-3章)习题一一、选择题1.C 2.C 3.A 4.C 5.C 6.C 7.B二、填空题1.学习版、专业版、企业版2.窗体界面3.Alt+F4三、简答题1.简述Visual Basic语言的特点。
Visual Basic是Windows操作平台下的可视化编程语言,它继承和发展了BASIC语言的基本功能,具有简单易学、功能强大等特点。
Visual Basic提供了可视化设计工具,以图形用户界面(GUI)为PC机用户提供了一个直观的工作环境。
支持面向对象的程序设计(OOP),采用事件驱动方式,提供对象的链接与嵌入(OLE)和访问数据库等功能。
2. Visual Basic 6.0的集成开发环境由哪些部分组成,各部分的主要功能是什么?1. 标题栏:用来显示打开的工程名称和系统的工作状态。
2. 菜单栏:菜单栏中包括“文件”、“编辑”、“视图”、“工程”、“格式”、“调试”、“运行”、“查询”、“图表”、“工具”、“外接程序”、“窗口”和“帮助”共有13个菜单项。
这是一组下拉式菜单,提供了设计、编辑、编译和调试应用程序所需要的绝大部分功能和命令。
3. 工具栏: Visual Basic 6.0提供了“编辑”、“标准”、“窗体编辑器”和“调试”4种工具栏。
工具栏上形象直观的排列着一些最常用的命令按钮,对应特定的常用操作命令。
4. 控件箱:控件箱提供了一组控件。
设计界面时,用户可以用鼠标双击控件箱中的控件,在窗体中画出该控件,或用鼠标单击控件箱中的控件,然后在窗体中拖动鼠标画出所需的控件。
5. 窗体设计器:窗体设计器是应用程序最终面向用户的窗口。
各种控件、图形、数据以及程序的运行结果都在窗体设计器窗体中显示出来。
6. 工程资源管理器:在工程资源管理器窗口中(图1-2),列出了应用程序的工程以及工程中的窗体和模块。
7. 属性窗口:属性窗口主要用来设置Visual Basic窗体及各控件的属性特征,属性窗口的主体部分分为左右两列,左边是控件的属性名列表,右边是控件的属性值列表。
第1章VB集成环境与VB概述一、选择题第2章常用控件与界面设计一、选择题第3章数据、表达式与简单程序设计一、选择题第4章选择分支与循环一、选择题二、填空题1.5 7 13 12 14 112. 3 1 5 3 4 13. right(a$,i)4. 45. 6-i6. 6 11 10 21 13 347. 5 14 138. Is else end select9. a*(2*i-1)*(-1)*x/(2*i+2) i+110. 0 n-111. 1 t*(-1)*x^2/((2*k-1)*(2*k)) Abs(t)>eps12. count1=count+1 count1>013. sum=0 sum+j st & k & “+”14. 9 x三、编程题1.Option ExplicitPrivate Sub Command1_Click()Dim s As String, i As Integer, ch As String * 1Dim a As Integer, b As Integer, c As Integers = Text1.TextFor i = 1 To Len(s)ch = Mid(s, i, 1)If (ch >= "0" And ch <= "9") Thena = a + 1ElseIf (ch >= "A" And ch <= "Z") Or (ch >= "a" And ch <= "z") Thenb = b + 1Elsec = c + 1End IfNextPrint "数字个数"; aPrint "字符个数"; bPrint "其他字符"; cEnd Sub2.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, n As IntegerDim a As Integer, b As Integer, c As IntegerFor i = 1 To 50n = Int(Rnd * 90 + 10)Print n;If i Mod 10 = 0 Then PrintIf n <= 40 Thena = a + 1ElseIf n <= 70 Thenb = b + 1Elsec = c + 1End IfNext iPrint "小于等于40的个数:"; aPrint "大于40小于等于70的个数:"; bPrint "大于70的个数:"; cEnd Sub3.Option ExplicitPrivate Sub Command1_Click()Dim x As SingleDim t As Long, n As Integerx = 1t = 1n = 1Do While 1 / t >= 0.0001x = x + 1 / tn = n + 1t = t * nLoopPrint xEnd Sub4.Option ExplicitPrivate Sub Command1_Click()Dim k As Integer, sum As Integer, i As Integerk = InputBox("请输入一个正整数k", "输入框")For i = 1 To Len(CStr(k))sum = sum + Mid(k, i, 1)Next iMsgBox k & "的各位数字之和" & sumEnd Sub5.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, iSum As LongFor i = 1 To 20iSum = iSum + i ^ 4NextPrint iSumEnd Sub6.Option ExplicitPrivate Sub Command1_Click()Dim a As Integer, b As IntegerDim sum1 As Integer, sum2 As LongDim i As Integer, j As IntegerFor a = 2 To 3000sum1 = 0sum2 = 0For i = 1 To a \ 2If a Mod i = 0 Then sum1 = sum1 + i Next ib = sum1For j = 1 To b \ 2If b Mod j = 0 Then sum2 = sum2 + j Next jIf sum2 = a And a < b Then Print a, bNextEnd Sub7.Private Sub Command1_Click() '打印菱形Dim i As Integer, j As IntegerClsFor i = 1 To 6 '打印菱形上边6行Print Tab(20);Print Spc(6 - i);For j = 1 To 2 * (i - 1) + 1If j = 1 Or j = 2 * (i - 1) + 1 ThenPrint "*";ElsePrint " ";End IfNext jPrintNext iFor i = 5 To 1 Step -1 '打印下半部分Print Tab(20);Print Spc(6 - i);For j = 1 To 2 * (i - 1) + 1If j = 1 Or j = 2 * (i - 1) + 1 ThenPrint "*";ElsePrint " ";End IfNext jPrintNext iEnd Sub8.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, j As Integer, iSum As IntegerPrint "连续和为1250的正整数是:"For i = 1 To 500iSum = 0For j = i To 500iSum = iSum + jIf iSum >= 1250 Then Exit ForNextIf iSum = 1250 ThenPrint i; " ~"; jEnd IfNextEnd Sub9.Option ExplicitPrivate Sub Command1_Click()Dim a As Integer, b As Integer, c As IntegerFor a = 1 To 50For b = a To 50For c = b To 50If a ^ 2 + b ^ 2 = c ^ 2 ThenPrint a, b, cEnd IfNext cNext bNext aEnd Sub第5章数组一、选择题二、填空题1.Variant2.ReDim A(N)A(1)If M < A(I) Then M = A(I)3.Int(26 * Rnd) + 65Chr(t)i + 1 To 10A(i) > A(j)4.InStr(s, ",")Right(s, Len(s) - n)s5.T – 1I + 16.k = 6 - i – jmax = m7.j = 48j = j-38.i + 1i = i + 19. 23710. 3103511.numi + 1a(j)=temp三、编程题1.Option ExplicitOption Base 1Private Sub Command1_Click()Dim a(10) As IntegerDim i As Integer, max As IntegerFor i = 1 To 10a(i) = Int(90 * Rnd) + 10Print a(i);Next iPrinti = 1max = 0Do While i <= 10If a(i) Mod 3 = 0 ThenIf a(i) > max Thenmax = a(i)End IfEnd Ifi = i + 1LoopIf max = 0 ThenPrint "无要找的数"ElsePrint max & "是最大的能被3整除的数"End IfEnd Sub2.Option ExplicitOption Base 1Private Sub Command1_Click()Dim A() As IntegerDim I As Integer, m As IntegerDim K As IntegerReDim A(10)Print "原数组:";For I = 1 To 10A(I) = IPrint A(I);Next IPrintm = InputBox("????m")K = 9 + mReDim Preserve A(K)For I = 11 To KA(I) = A(I - 10)Next IFor I = 1 To 10A(I) = A(I + m - 1)Next IPrint "平移后的数组:";For I = 1 To 10Print A(I);Next IPrintEnd Sub3.Option ExplicitOption Base 1Private Sub Command1_Click()Dim I As Integer, J As Integer, K As IntegerDim a() As Integer, n As Integer, p As Integer Dim s As String, Flag As Booleanp = 1For K = 10 To 100I = 1Do While I <= 10 And Not FlagJ = 1Do While J <= 10 And Not Flagn = I ^ 2 + J ^ 2If n = K ThenFlag = TrueReDim Preserve a(p)a(p) = Kp = p + 1s = I & Str(J) & Str(K)List1.AddItem sEnd IfJ = J + 1LoopI = I + 1LoopFlag = FalseNext KEnd Sub4.Option ExplicitPrivate Sub Command1_Click()Dim A(10) As IntegerDim B(10) As Integer, S As StringDim I As Integer, J As Integer, X As IntegerA(1) = Int(90 * Rnd) + 10S = A(1)For I = 2 To 10DoX = Int(90 * Rnd) + 10For J = 1 To I - 1If X = A(J) Then Exit ForNext JIf J = I ThenA(I) = XS = S & " " & A(I)Exit DoEnd IfLoopNext IText1.Text = SB(1) = Int(90 * Rnd) + 10S = B(1)For I = 2 To 10DoX = Int(90 * Rnd) + 10For J = 1 To I - 1If X = B(J) Then Exit ForNext JIf J = I ThenB(I) = XS = S & " " & B(I)Exit DoEnd IfLoopNext IText2.Text = SS = ""For I = 1 To 10For J = 1 To 10If A(I) = B(J) ThenS = S & " " & A(I)End IfNext JNext IIf S = "" ThenText3.Text = "没有重复"ElseText3.Text = SEnd IfEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text1.SetFocusEnd Sub5.Option ExplicitPrivate Sub Command1_Click()Dim I As Integer, J As IntegerDim a() As Integer, K As Integer, Sum As Integer K = Val(Text1.Text)I = 1DoJ = K Mod 10ReDim Preserve a(I)a(I) = JSum = Sum + JK = K \ 10I = I + 1Loop Until K = 0Text2.Text = SumEnd Sub6.Option ExplicitPrivate Sub Command1_Click()Dim a(100, 2) As Integer, K As IntegerDim I As Integer, J As IntegerDim M As Integer, N As IntegerK = 1For I = 1 To 99For J = 1 To 99If I > J ThenM = I - JN = I + JIf Sqr(M) = Int(Sqr(M)) And Sqr(N) = Int(Sqr(N)) ThenList1.AddItem I & " " & Ja(K, 1) = Ia(K, 2) = JK = K + 1End IfEnd IfNext JNext IEnd Sub7.Option ExplicitOption Base 1Dim a(5, 5) As IntegerPrivate Sub Command1_Click() '生成数组并显示Dim i As Integer, j As IntegerPicture1.ClsPicture2.ClsPicture3.ClsRandomizeFor i = 1 To 5For j = 1 To 5a(i, j) = Int(90 * Rnd) + 10Picture1.Print a(i, j);NextPicture1.PrintNextEnd SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer, max As IntegerDim b(5) As Integer, c(5) As IntegerFor i = 1 To 5max = a(i, 1)For j = 1 To 5If max < a(i, j) Thenmax = a(i, j)End Ifb(i) = maxIf max = a(i, j) Then c(i) = jNext jNext iFor i = 1 To 5Picture2.Print b(i)Picture3.Print c(i)NextEnd Sub8.Option ExplicitOption Base 1Dim a(5, 5) As IntegerPrivate Sub Command1_Click() '生成数组并显示Dim i As Integer, j As IntegerPicture1.ClsPicture2.ClsLabel3.Caption = "最大值?"Label4.Caption = "最小值?"RandomizeFor i = 1 To 5For j = 1 To 5a(i, j) = Int(90 * Rnd) + 10Picture1.Print a(i, j);NextPicture1.PrintNextEnd SubPrivate Sub Command2_Click() '交换并显示Dim i As Integer, j As Integer, t As IntegerDim maxi As Integer, mini As Integer, max As Integer, min As Integer max = 10: min = 99For i = 1 To 5For j = 1 To 5If max < a(i, j) Thenmax = a(i, j)maxi = iEnd IfIf min > a(i, j) Thenmin = a(i, j)mini = iEnd IfNextNextIf maxi <> mini ThenFor j = 1 To 5t = a(maxi, j)a(maxi, j) = a(mini, j)a(mini, j) = tNext jFor i = 1 To 5For j = 1 To 5Picture2.Print a(i, j);NextPicture2.PrintNextLabel3.Caption = "最大值" & max & "在第" & maxi & "行"Label4.Caption = "最小值" & min & "在第" & mini & "行"ElsePicture2.Print "最小值和最大值在一行"Label3.Caption = "最大值" & max & "在第" & maxi & "行"Label4.Caption = "最小值" & min & "在第" & mini & "行"End IfEnd SubPrivate Sub Form_click()Picture1.ClsPicture2.ClsLabel3.Caption = ""Label4.Caption = ""End Sub9.Option Base 1Private Sub Command1_Click()Dim i As Integer, j As Integer, n As Integer, a() As Integern = InputBox("请输入一个奇数N:")If n Mod 2 = 0 ThenMsgBox ("请重新输入奇数!")End IfReDim a(n, n)For i = 1 To nFor j = 1 To nIf i = (n + 1) / 2 And j = (n + 1) / 2 Thena(i, j) = -1ElseIf i = j Or i + j = n + 1 Thena(i, j) = 1Elsea(i, j) = 0End IfNext jFor i = 1 To nFor j = 1 To nPrint a(i, j);Next jPrintNext iEnd Sub10.Option Base 1Dim a(10) As IntegerPrivate Sub Command1_Click()Dim i As IntegerPrint "生成的数组:"RandomizeFor i = 1 To 10a(i) = Int(Rnd * 90) + 10Print a(i);NextPrintEnd SubPrivate Sub Command2_Click()Dim i As Integerx = InputBox("请输入要删除的数组元素下标:") Print "删除第" & x & "个数组元素后:"For i = x + 1 To 10a(i - 1) = a(i)NextFor i = 1 To 9Print a(i);NextEnd Sub11.Option ExplicitDim a(20) As Integer, i As IntegerPrivate Sub Command1_Click()RandomizeFor i = 1 To 20a(i) = Int(Rnd * 9) + 1Text1 = Text1 & a(i) & " "If i = 10 Then Text1 = Text1 & vbCrLf NextPrivate Sub Command2_Click()Dim j As Integer, k As Integer, b(20) As Boolean 'b(2)用来记录a(2)是否和前面的数相同,相同记为true,不再统计For i = 1 To 20k = 1If b(i) = False Then '如果b(i)=False,表示a(i)没有被统计过For j = i + 1 To 20If a(i) = a(j) Thenk = k + 1b(j) = TrueEnd IfNext jList1.AddItem a(i) & "出现次数:" & kEnd IfNextEnd SubPrivate Sub Command3_Click()Text1 = ""List1.ClearEnd Sub第6章过程一、选择题二、填空题1. 6 .2. 4 20 1013.第一行是 6 26 、第三行是-2 984.第一行10 6 、第二行 5 -55.第一行 6 5 、第三行8 76.第一行11 、第二行77.Fun(i)Fun=p8.第一行 4 、第二行2079.第一行29 、第二行28.710.J=kb( ) As Integerb( k-1) =b(k)i11.第一行gec 、第二行ge 、第四行 312.p1 = True And p2 = True 或p1 And p2= isp(i)Isp = Truem Mod i = 013.Convert(st)Len(s)"A" To "F"k = k + p * h14.isualVisualVisu15.s + an + 1x As Single, n As Integer 、p * (x + i) / ((2 * i - 1) * i * x)16.27617.Left(s, 1)Mid(s, i - 1, 1) = Mid(s, i, 1)n = 1c & CStr(n)18.chtempTrue19.val(mid(s,i,j))n as longprime=True20.A(2,2)的值是 6 ,A(3,1) 的值是8 ;A(4,2) 的值是 321.Option1(i)X22.1023.第一行7 6 ,第二行16 16 ,第三行,4524.第一行15 1 ,第二行35 3 ,第三行,50三、改错题1、Option Base 1Private Sub Command1_Click()Dim A() As Integer, I As Integer, J As Integer, Logic As Boolean Dim K As IntegerReDim A(1)A(1) = 50————————'K=1For I = 51 To 149K = 1 '位置错Logic = FalseCall Sub1(A, I, Logic)If Logic ThenK = K + 1ReDim A(K) 'ReDim Preserve A(K)A(K) = IEnd IfNext IFor I = 1 To UBound(A)Text1 = Text1 & Str$(A(I))If I Mod 5 = 0 Then Text1 = Text1 & vbCrLfNext IEnd SubPrivate Sub Sub1(A() As Integer, N As Integer, F As Boolean) Dim I As Integer, J As Integer, Ub As IntegerUb = UBound(A)For I = 1 To UbFor J = 2 To A(I)If A(I) Mod J = 0 And N Mod J = 0 ThenExit For 'Exit SubEnd IfNext JF = TrueNext IEnd Sub2、Option ExplicitOption Base 1Private Sub Command1_Click()Dim I As Integer, Flg As Boolean, S1 As Integer, S2 As IntegerDim J As Integer, K As Integer, P() As IntegerReDim P(1)P(1) = 2For I = 3 To 150 Step 2For J = 2 To Sqr(I)If I Mod J = 0 Then Exit ForNext JIf J > Sqr(I) ThenReDim Preserve P(UBound(P) + 1)P(UBound(P) + 1) = I 'P(UBound(P)) = IEnd IfNext IFor I = 80 To 125If fun(I, P, S1, S2) Then 'If fun(I, P, S1, S2)Text1 = Text1 & Str$(I) & "=" & Str(S1) & "*" & Str$(S2) & vbCrLf End IfNext IEnd SubPrivate Function fun(N As Integer, P() As Integer, S1 As Integer, S2 As Integer) As Boolean Dim I As Integer, J As IntegerFor I = 1 To UBound(P)For J = 1 To UBound(P) - 1If N = P(I) * P(J) ThenS1 = P(I)S2 = P(J)'fun = TrueExit Functionfun = True '位置错End IfNext JNext IEnd Function3、Option ExplicitPrivate Sub Get_Chess(Chess() As Integer, idx As Integer, Over As Integer) 'ByVal idx As IntegerDim Ub As Integer, Counter As Integer, K As IntegerUb = UBound(Chess)Chess(idx) = 0Counter = 1K = 0 '位置错Do Until Counter = Ub - 1Do Until K = 2idx = idx + 1If idx > Ub Then idx = 1K = K + Chess(idx)LoopChess(idx) = 0Counter = Counter + 1LoopFor Over = 1 To UbIf Chess(Over) <> 0 Then Exit ForNext OverEnd SubPrivate Sub Command1_Click()Dim Chess(32) As Integer, I As Integer, J As IntegerDim K As Integer, idx As IntegerFor I = 1 To 32For J = 1 To 32Chess(J) = 1Next JCall Get_Chess(Chess, I, K)If K = 23 ThenText1 = "从第" & Str$(I) & "号棋子开始取"Exit ForEnd IfNext IEnd Sub4、Option ExplicitPrivate Sub Form_Click()Dim S As String, Flg As BooleanDoS = InputBox("输入一个自然数")If S = "" Or Not IsNumeric(S) ThenMsgBox "请重新输入", 48 + vbOKOnlyElseExit DoEnd IfLoopjudge(S, Flg) ' Call judge(S, Flg) 或judge S, Flg If Flg ThenPrint S; "是回文数"ElsePrint S; "不是回文数"End IfEnd SubPrivate Sub judge(Ch As String, F As Boolean)Dim L As Integer, I As IntegerL = Len(Ch)F = True ' F = FalseFor I = 1 To LIf Mid$(Ch, I, 1) <> Mid$(Ch, L + 1 - I, 1) Then Exit Sub Next IF = False ' F = TrueEnd Sub四、编程题1.Private Function Prime(a As Integer) As BooleanDim i As IntegerFor i = 2 To Sqr(a)If a Mod i = 0 Then Exit FunctionNext iPrime = TrueEnd Function'方法一Private Sub Command1_Click()Dim m As Integer, i As Integerm = InputBox("请输入一个大于2 的偶数")If m <= 2 Or m Mod 2 <> 0 Then MsgBox "请输入大于2的偶数": Exit Sub If Prime(2) And Prime(m - 2) ThenPrint m & "=2 +" & m - 2ElseDoi = i + 1If Prime(2 * i + 1) And Prime(m - (2 * i + 1)) ThenPrint m & "=" & 2 * i + 1 & "+" & m - (2 * i + 1)Exit DoEnd IfLoop While 2 * i + 1 < m - (2 * i + 1)End If'方法二Private Sub Command2_Click()Dim m As Integer, i As Integer, p() As Integer, n As IntegerDim flg As Booleanm = InputBox("请输入大于2的偶数")If m <= 2 Or m Mod 2 <> 0 Then MsgBox "请输入大于2的偶数": Exit Sub ReDim p(1)p(1) = 2n = 1For i = 3 To m - 2 Step 2If Prime(i) Thenn = n + 1ReDim Preserve p(n)p(n) = iEnd IfNext iFor i = 1 To nFor j = 1 To nIf p(i) + p(j) = m ThenPrint m & "=" & p(i) & "+" & p(j)flg = TrueExit ForEnd IfNext jIf flg = True Then Exit ForNext iEnd Sub2.Private Function Fact(a As Integer) As LongIf a = 0 Or a = 1 ThenFact = 1ElseFact = a * Fact(a - 1)End IfEnd FunctionPrivate Sub Command1_Click()Dim n As Integer, m As Integer, result As Singlen = Val(Text1.Text)m = Val(Text2.Text)If n >= m Thenresult = Fact(n) / Fact(m) / Fact(n - m)Text3.Text = resultMsgBox "要求n>=m,请重新输入"Text1.Text = ""Text2.Text = ""Text1.SetFocusEnd IfEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text1.SetFocusEnd Sub3.Private Function Istgs(n As Integer) As BooleanDim s As String, L As IntegerL = Len(CStr(n))s = CStr(n ^ 2)If Right(s, L) = n Then Istgs = TrueEnd FunctionPrivate Sub Command1_Click()Dim n As IntegerFor n = 10 To 300If Istgs(n) Then List1.AddItem n & "^2" & "=" & n ^ 2 Next nEnd SubPrivate Sub Command2_Click()EndEnd Sub4.Private Sub Command1_Click()Dim a(3, 4) As Integer, i As Integer, j As IntegerDim m As Integer, mj As IntegerRandomizeFor i = 1 To 3For j = 1 To 4a(i, j) = Int(900 * Rnd + 100)Print a(i, j);Next jPrintNext iFor i = 1 To 3m = 0Call max(a, i, m, mj)Print "第" & i & "行最大值为" & m & ",在第" & mj & "列"Next iEnd SubPrivate Sub max(a() As Integer, i As Integer, m As Integer, maxj As Integer) Dim j As Integerm = a(i, 1): maxj = 1For j = 2 To UBound(a, 2)If a(i, j) > m Thenm = a(i, j)maxj = jEnd IfNext jEnd SubPrivate Sub Command2_Click()EndEnd Sub5.Private Function Judge(n As Integer) As BooleanDim sum As Integersum = yz(n)If yz(sum) = 2 * n Then Judge = TrueEnd FunctionPrivate Function yz(n As Integer) As IntegerDim i As IntegerFor i = 1 To nIf n Mod i = 0 Then yz = yz + iNext iEnd FunctionPrivate Sub Command1_Click()Dim n As IntegerFor n = 1 To 500If Judge(n) Then Print nNext nEnd SubPrivate Sub Command2_Click()EndEnd Sub6.Private Sub Command1_Click()Dim n As Integer, j As Integer, flg As BooleanFor n = 2 To 30flg = FalseFor j = 2 To nIf pfs(j) And n Mod j = 0 Thenflg = TrueExit ForEnd IfNext jIf flg = False Then Print n;Next nEnd SubPrivate Function pfs(n As Integer) As BooleanIf Sqr(n) = Int(Sqr(n)) Then pfs = TrueEnd Function7.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd Function'判断某数是否为回文数Private Function Hws(n As Long) As BooleanDim i As Integer, s As String, L As Integers = CStr(n): L = Len(s)For i = 1 To Len(s) / 2If Mid(s, i, 1) <> Mid(s, L + 1 - i, 1) Then Exit Function Next iHws = TrueEnd FunctionPrivate Sub Command1_Click()Dim x As Long, t As Longx = InputBox("请输入一个正整数:")t = xDo While Hws(t) = FalsePrint t; "+"; fxs(t); "="; t + fxs(t)t = t + fxs(t)LoopEnd Sub8.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd FunctionPrivate Sub Command1_Click()Dim n As Long, t As LongFor n = 1 To 999t = fxs(n)If t ^ 2 = fxs(n ^ 2) And n Mod 10 <> 0 And n < t ThenList1.AddItem n & " " & tList2.AddItem n & "^2" & "=" & n ^ 2 & " " & t & "^2" & "=" & t ^ 2 End IfNext nEnd Sub9.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd FunctionPrivate Function Judge(n As Integer) As BooleanDim i As Integer, L As Integer, a(9) As Integer, t As IntegerIf Sqr(n) = Int(Sqr(n)) ThenL = Len(CStr(n))For i = 1 To Lt = Mid(CStr(n), i, 1)a(t) = 1Next iFor i = 0 To 9Sum = Sum + a(i)Next iIf Sum = L - 1 Then Judge = TrueEnd IfEnd FunctionPrivate Sub Command1_Click()Dim a As IntegerFor a = 300 To 2000If Judge(a) Then List1.AddItem aNext aEnd Sub10.Private Function F(n As Integer) As BooleanDim i As IntegerFor i = 1 To Len(CStr(n))If i Mod 2 = 1 And Mid(CStr(n), i, 1) Mod 2 <> 1 Then Exit FunctionIf i Mod 2 = 0 And Mid(CStr(n), i, 1) Mod 2 <> 0 Then Exit Function Next iF = TrueEnd FunctionPrivate Sub Command1_Click()Dim a(8) As Integer, i As Integer, j As IntegerRandomizeDot = Int(900 * Rnd + 100)For j = 1 To iIf t = a(j) Then Exit ForNext jIf j = i + 1 Theni = i + 1a(i) = tList1.AddItem a(i)If F(a(i)) Then List2.AddItem a(i)End IfLoop Until i = 8End SubPrivate Sub Command2_Click()List1.ClearList2.ClearEnd SubPrivate Sub CmdEnd_Click()EndEnd Sub11.Private Function prime(a As Integer) As BooleanDim i As IntegerFor i = 2 To Sqr(a)If a Mod i = 0 Then Exit FunctionNext iprime = TrueEnd FunctionPrivate Function nx(n As Integer) As IntegerDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext inx = Val(s)End FunctionPrivate Sub Command1_Click()Dim n As Integer, t As IntegerFor n = 100 To 900t = nx(n)If prime(n) And prime(t) And n < t ThenList1.AddItem "(" & n & "," & t & ")"End IfNext nEnd SubPrivate Sub Command2_Click()List1.ClearEnd Sub12.Option Base 1Dim a(4, 5) As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As IntegerRandomizeFor i = 1 To 4For j = 1 To 5a(i, j) = Int(Rnd * 90 + 10)Picture1.Print a(i, j);Next jPicture1.PrintNext iEnd SubPrivate Sub Fp(a() As Integer, i As Integer, maxj As Integer, Flg As Boolean) Dim max As Integer, j As Integer, t As Integermax = a(i, 1): maxj = 1For j = 2 To UBound(a, 2)If a(i, j) > max Thenmax = a(i, j)maxj = jEnd IfNext jFor t = 1 To UBound(a, 1)If a(t, maxj) > max ThenFlg = FalseExit SubEnd IfNextFlg = TrueEnd SubPrivate Sub Command2_Click()Dim i As Integer, m As Integer, mj As Integer, f As BooleanFor i = 1 To 4f = Falsem = 0: mj = 0Call Fp(a, i, mj, f)If f = True ThenText1.Text = Text1.Text & "(" & i & "," & mj & "):" & a(i, mj) & vbCrLf End IfNext iEnd SubPrivate Sub Command3_Click()Picture1.ClsText1 = ""End Sub13.Private Sub Command1_Click()Dim a(30) As Integer, i As Integer, j As IntegerDim Flag As BooleanRandomizeDot = Int(900 * Rnd + 100)For j = 1 To iIf t = a(j) Then Exit ForNext jIf j = i + 1 Theni = i + 1a(i) = tText1.Text = Text1.Text + Str(a(i))If i Mod 10 = 0 Then Text1.Text = Text1.Text + vbCrLfIf IsDown(a(i)) ThenList1.AddItem a(i)Flag = TrueEnd IfEnd IfLoop Until i = 30If Flag = False Then List1.AddItem "无降序数"End SubPrivate Function IsDown(n As Integer) As BooleanDim i As Integer, S As StringS = CStr(n)For i = 1 To Len(S) - 1If Mid(S, i, 1) < Mid(S, i + 1, 1) Then Exit FunctionNext iIsDown = TrueEnd FunctionPrivate Sub Command2_Click()List1.ClearText1 = ""End Sub14.Option ExplicitPrivate Sub CmdFind_Click()Dim i As Integer, p As String, st As String, st1 As StringFor i = 100 To 999st = ""If csum(i) = zyz(i, st) Thenp = CStr(i)st1 = Left(p, 1) & "+" & Mid(p, 2, 1) & "+" & Right(p, 1)List1.AddItem i & ": " & st1 & "=" & Left(st, Len(st) - 1)End IfNext iIf List1.ListCount = 0 ThenList1.AddItem "无满足要求的数!"End IfEnd SubPrivate Function csum(m As Integer) As Integer '求各位数字之和Dim i As Integer, p As Stringp = CStr(m)For i = 1 To Len(p)csum = csum + Val(Mid(p, i, 1))Next iEnd FunctionPrivate Function zyz(ByVal m As Integer, st As String) As Integer '求所有质因子之和Dim i As Integeri = 2DoIf m Mod i = 0 Thenzyz = zyz + ist = st & i & "+"m = m \ iElsei = i + 1End IfLoop Until m = 1End Function15.Private Sub Command1_Click()Dim k As Integer, i As Integerk = InputBox("请输入要求的数列项数:")List1.AddItem "共输出前" & k & "项数列"For i = 0 To kList1.AddItem p(i)NextEnd SubPrivate Function p(n As Integer) As IntegerIf n = 0 Or n = 1 Or n = 2 Thenp = 1Elsep = p(n - 2) + p(n - 3)End IfEnd Function第7章文件一、选择题二、填空题1.顺序文件和随机文件2. EOF3. Write和Print4.返回或设置当前的工作目录5.5116.文件的写语句7.Append8.LOF9.关闭10.Pattern11.【1】For Input 【2】#2 【3】Not EOF(2) 12.【1】”END”【2】Text1.Text 或者Text113.【1】Input 【2】ch 【3】Len(mystr) 14.【1】Number 【2】s15.【1】For Append As #1 【2】"end" 【3】ct,nt 16.【1】For Input 【2】For Output As #2 【3】Not EOF(1) 【4】Line Input #1,str1 【5】Close #1,#2 【6】Kill “C:\old.txt 17.【1】Open "C:StuData.txt" For OutPut As #1 【2】Write 18.【1】"C:\data.txt" 【2】#1, a(i) 【3】k>1 And a(k-1)>b 【4】k = k -1三、综合题1.Option Base 1Dim arr(100) As IntegerPrivate Sub Command1_Click()Dim i As IntegerOpen "c:\in18.txt" For Input As #6For i = 1 To 100Input #6, arr(i)Next iClose #6End SubPrivate Sub Command2_Click()Dim i As IntegerText1.Text = ""Open "c:\out18.txt" For Output As #8For i = 1 To 100If arr(i) Mod 2 <> 0 ThenText1.Text = Text1.Text & Str(arr(i))Write #8, arr(i)End IfNext iClose #8End Sub2.Dim str As StringDim n As LongPrivate Sub Command1_Click()CommonDialog1.Filter = "文本文件(*.txt)|*.txt|All Files(*.*)|*.*"CommonDialog1.FilterIndex = 1CommonDialog1.Action = 1Open CommonDialog1.FileName For Input As #2n = LOF(2)str = Input(n, #2)Text1.Text = strClose #2End SubPrivate Sub Command2_Click()Dim i As IntegerFor i = 1 To Len(str)If Asc(Mid(str, i, 1)) <= Asc("Z") And Asc(Mid(str, i, 1)) >= Asc("A") Then Mid(str, i, 1) = LCase(Mid(str, i, 1))ElseIf Asc(Mid(str, i, 1)) <= Asc("z") And Asc(Mid(str, i, 1)) >= Asc("a") Then Mid(str, i, 1) = UCase(Mid(str, i, 1))End IfNext iText1.Text = strEnd SubPrivate Sub Command3_Click()Open "D:\out.txt" For Output As #3Print #3, strClose #3End Sub第8章程序调试一.选择题二.改错题1.a(i)=int(Rnd*19)+1 →a(i)=int(rnd*20)+1For l=1 to a(i)+1 →for i=2 to a(i)+1If l=a(i) →if l <> a(i)K=k+1 →k=k-1。
第3章程序流程控制3.1 填空题1.设变量r 表示圆的半径,则计算圆的面积并赋给变量s使用的赋值语句为( s=3.14159*r*r )。
2.给命令按钮Command2的Caption属性赋予字符串“退出”使用的赋值语句为( Command2.Caption="退出").3.为了求n的阶乘,要求用户输入n的值。
程序使用InputBox函数输入,要求对话框提示信息为“请输入一个求阶乘的数:”,标题为“求数的阶乘”,并且正确地把输入的信息转换为数值存放到变量n中,则使用的赋值语句为( n=val(InputBox("请输入一个求阶乘的数:","求数的阶乘"))。
4.如果使用MsgBox对话框显示提示信息“退出本系统?”,并显示“是(Yes)"和“否(No)”两个按钮,显示图标“?"号,指定第一个按钮为默认值以及标题为“提示信息",则调用MsgBox 函数的形式为( MsgBox("退出本系统?",4+32+0,"提示信息")).5.如果使用MsgBox对话框显示提示信息“文件未找到!”,并显示“确定”按钮、图标“!"号和标题“文件查找",则使用的MsgBox语句为( MsgBox"文件未找到",0+48+0,"文件查找")。
6.要在当前窗体Form和立即窗口输出字符串“Visual BASIC 6。
0”使用的Print方法分别是( Print “Visual BASIC 6.0”)和( Debug。
Print “Visual BASIC 6。
0” ).7.使用Print方法时,若用逗号分隔, 则按( 标准)格式输出各表达式的值,若用分号分隔,则按( 紧凑 )格式输出各表达式的值.8.注释语句是一个( 非执行)语句,VB不对它们进行编译,对程序的执行结果没有任何影响。
9.判别变量i是否为偶数,若为偶数就把它显示出来。
使用单行结构条件语句为( If i Mod 2=0 Then print x )。
Visual Basic程序设计教程(李杰主编清华大学出版社 2011.2)习题答案习题2参考答案2.2 单选题1、B2、C3、A4、D5、A6、B7、D8、C9、B 10、D2.3 填空题1、事件驱动2、Cancel3、Name4、Private Sub Form1_Click()5、运行程序6、代码窗口7、Text1.Text = "我是一个学生"8、LostFocus()事件9、Label1.Caption = "请输入用户名"Label1.ForeColor = vbGreen10、(Text1.Text)*22.4 事件练习题1、①该事件的对象是标签Label1,单击标签触发该事件。
②缺省Label1对象的代码是针对窗体,其余有Label1对象的代码是针对标签的。
③Label1.AutoSize = True语句使标签的大小自动随文字的多少而改变。
2、程序运行后,单击命令按钮,在Text1文本框显示"知音海外版",在Text2文本框显示"计算机世界"。
3、单击“显示文本框”命令按钮触发的事件过程Private Sub Command1_Click()Text1.Visible = TrueText1.ForeColor = vbRedText1.Text = "VB程序设计"End Sub单击“隐藏文本框”命令按钮触发的事件过程Private Sub Command2_Click()Text1.Visible = FalseEnd Sub习题3参考答案3.2 单选题1 C2 C3 D4 B5 B6 B7 B8 C9 D3.3填空题1.REM(或‘) _ :2 双引号(“”)#3 $ %4 UCASE()5.(log(1+d*d)-exp(2))^(5/2) [ 还有一种理解方式:(log(1+d*d)-e*e)^(5/2)]6. &O113 &H4B习题4参考答案4.2 单选题BDCBD4.3 填空题1.MsgBox("是否删除? ", vbOkCancel + vbQuestion, "删除")2.The Length of 12345=53. 变量或表达式4. 15. loop4.4 程序设计题1.Private Sub Command1_Click()If Text1.Text = "asdf" ThenMsgBox "密码正确!"ElseMsgBox "密码错误", vbRetryCancel, "错误"End IfEnd Sub2. < 题目中的“连续产生n*n个字母”应该改为“连续产生n个字母”> Private Sub Command1_Click()Dim n%, y%, i%n = Val(Text1.Text)If n > 10 Or n<=0 ThenMsgBox "数据超界!"Text1.Text=””Text1.SetFocusElsey = Int((90 - 65 + 1) * Rnd) + 65For i = 1 To nPrint Chr(y + i)Next iEnd IfEnd Sub3.Private Sub Form_Click()Dim a!, b!, c!, x1!, x21, d!a = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)d = b * b - 4 * a * cIf d >= 0 Thenx1 = (-b + Sqr(d)) / (2 * a)X2 = (-b - Sqr(d)) / (2 * a)Print x1; X2ElsePrint "没有实根"End IfEnd Sub4.Private Sub Form_Click()Dim i%, j%, s%, n%,q%n = InputBox("enter n:")q = 0For i = 1 To ns = 0For j = 1 To is = s + jNext jq = q + sNext iPrint qEnd Sub5.Private Sub Form_Click()Dim i%, j%, n%, k%n = 0For i = 1 To 3For j = 1 To 3For k = 1 To 3Print i & j & k,n = n + 1If n Mod 5 = 0 Then PrintNext kNext jNext iPrintPrint "n="; nEnd Sub6.Private Sub Form_Click()Dim i%, j%, n%, k%For i = 1 To 9For j = 0 To 9For k = 0 To 9n = i * 100 + j * 10 + kIf n = i ^ 3 + j ^ 3 + k ^ 3 Then Print n,Next kNext jNext iEnd Sub习题5参考答案5.2 单选题1 A2 B3 C4 C5 D6 D7 A8 C9 D 10 A 11 A 12 B 5.3 填空题1.False2.Caption3.0 ListCount-14.Print List1.List(3)5.Combo1.ReMoveItem 36.LargeChange7.Timer8.5009.Shape10.Borderstyle5.4 程序设计题1.Dim op1, op2, result As SingleDim operator As IntegerPrivate Sub Command1_Click(Index As Integer)If Index >= 0 And Index <= 10 ThenIf txt1.Text = "" Thentxt1.Text = CStr(Index + 1)Elsetxt1.Text = txt1.Text + CStr(Index + 1) End IfEnd IfIf Index >= 12 And Index <= 15 Thenop1 = CDbl(txt1.Text)operator = Indextxt1.Text = ""End IfIf Index = 11 Thenop2 = CDbl(txt1.Text)Select Case operatorCase 12result = op1 + op2Case 13result = op1 - op2Case 14result = op1 * op2Case 15result = op1 / op2End Selecttxt1.Text = CStr(result)End IfEnd SubPrivate Sub Command2_Click()op1 = 0op2 = 0result = 0txt1.Text = ""End SubPrivate Sub Command3_Click()EndEnd Sub2.Private Sub chkBold_Click()If chkBold.Value = vbChecked ThenTxt1.FontBold = TrueElseTxt1.FontBold = FalseEnd IfEnd SubPrivate Sub chkUnderline_Click()If chkUnderline.Value = vbChecked Then Txt1.FontUnderline = TrueElseTxt1.FontUnderline = FalseEnd IfEnd SubPrivate Sub Opt18_Click()Txt1.FontSize = 18End SubPrivate Sub Opt22_Click()Txt1.FontSize = 22End Sub3.Private Sub Form_Load()List1.AddItem "上海"List1.AddItem "北京"List1.AddItem "天津"List1.AddItem "广东"List1.AddItem "辽宁"List1.AddItem "陕西"List1.AddItem "河南"List1.AddItem "深圳"List1.AddItem "四川"List1.AddItem "重庆"End SubPrivate Sub List1_DblClick()For i = 0 To 9If List1.ListIndex = i ThenList2.AddItem List1.List(i)List1.RemoveItem iEnd IfNext iEnd Sub4.Private Sub Command1_Click()Timer1.Enabled=TrueTimer1.Tag=Text1.Text*60Frame1.Caption=“现在开始倒计时”End SubPrivate Sub Timer1_ Timer()Timer1.Tag=Timer1.Tag-1If m<0 ThenTimer1.Enabler=FalseMsgBox“预定的时间到了!”,0,“倒计时”Frame1.Caption=“请输入计时的分钟数:”Text1.Text=0Exit SubEnd Ifn1=Format(m Mod 60,“00”)n2=Format(m \ 60)Mod 60,“00:”)n3=Format(m \ 3600),“00:”)Text1.Text=n3&n2&n1End Sub习题6参考答案6.1单选题1.C2.C3.B4.B5.B6.D7.B8.B9.A 10.A6.2 填空题1.Option Base 12.变体类型3.preserve (注意:教材上面写成perserve, 教材错误)4.Variant变体类型5.96.相同,索引号7.1).通过复制粘贴的方式创建控件数组2).在设计时候添加多个同类型的类型控件,然后通过“属性”窗口将这些控件的名称改为相同,并把Index属性设为不同的下标值。
新编Visual Basic程序设计教程习题解答蔡树元著目录第一章Visual Basic概述 (1)第二章创建用户界面 (2)第三章VB语言基础 (4)第四章算法基础Visual Basic的基本语句 (6)第五章数组 (14)第六章程序调试 (26)第八章过程 (27)第一章Visual Basic概述1.VB是用于开发________环境下应用程序的工具。
(B)A. DOSB. WindowsC. DOS和WindowsD. UNIX2.VB6.0是________位操作系统下的应用程序开发工具。
(A)A. 32B. 16C. 32或16D. 643.一个对象可执行的动作与可被一个对象所识别的动作分别称为________(B)A.事件、方法B.方法、事件C.属性、方法D.过程、事件4.有一个红色、充满氢气的气球,如果人不小心松开手抓的引线,就会飞走;如果用针刺它,则会爆破。
请问,对于气球对象,哪些是属性、哪些是事件、哪些是方法?答:属性是红色、氢气;事件是松开、针刺;方法是飞走、爆破。
5.简述事件驱动过程程序的设计原理?答:使用VB不仅可以非常便捷地设计出Windows应用程序的窗口界面,设置界面中各种对象的属性,而且可以通过编写程序代码段,为对象规定在被某个―事件‖激活时应发生的各种动作以及所要进行的信息处理的具体内容,这样的代码段称为―过程‖。
为各个对象编写的过程集合在一起,就构成一个完整的应用程序。
6.VB的集成开发环境都有哪些元素些组成?答:VB的集成开发环境由标题条、菜单条、弹出式菜单(上下文菜单)、工具栏、控件工具箱、初始窗体、工程资源管理器子窗口、属性子窗口、窗体布局子窗口、代码编辑器窗口、立即、本地和监视窗口等。
7.简述用VB开发应用程序的一般步骤?答:VB开发应用程序的一般步骤是:①创建程序的用户界面;②设置界面上各个对象的属性;③编写对象响应事件的程序代码;④保存工程;⑤测试和调试应用程序,检查并排除程序中的错误;⑥创建可执行程序。
第二章创建用户界面1.窗体的属性主要可分为几类?Caption属性和Name属性有何不同?答:窗体的属性主要可分为:杂项、外观、行为、字体、位置等五类。
Caption:窗体标题,是出现在窗体标题栏上的文本内容;Name:窗体名称,在程序代码中被作为对象的标识名。
2.以下窗体名中哪些是非法的窗体名?(A B E)A. aformB. 3frmC. f_1D. frm5E. f_1*3.VB为什么要提供多种窗体边框风格?试从已学习过的各种Windows应用程序的窗口中举例说明?答:VB中提供了六种窗体的边框风格,如设定值为1和3,它表示Windows应用程序中的对话框,其大小不可改变;设定值为2表示Windows应用程序中的窗口,其大小可以改变。
4.在桌面上存在多个窗口时,改变窗口的工作状态会引发何种事件?改变窗口大小呢?答:改变窗口的工作状态会引发激活事件和失去激活事件;改变窗口大小会引发Resize事件。
5.(略)6.有程序代码如下:Form2.Caption=‖Help‖,试问:Form2、Caption和Help分别代表_ __ (C)A.对象、值、属性B.值、属性、对象C.对象、属性、值D.属性、对象、值7.VB的常用控件中,哪些控件具有Caption属性,而没有Text属性?哪些控件具有Text属性,却没有Caption属性?答:具有Caption属性而没有Text属性的控件有:标签、命令按钮、复选框、选项按钮、框架;具有Text属性而没有Caption属性的控件有:文本框、组合框、列表框。
8.对象的属性是否只能在设计界面时在属性窗口中进行设置?属性窗口中的属性列表是否包括了一个对象的所有属性?答:属性的设置既可以在属性窗口中进行设置,也可以在程序代码中进行设置,但有些对象的有些属性只能在属性窗口中进行设置,如文本框的多行属性,有些对象的有些属性只能在程序代码中进行设置,如列表框的列表项数目属性;属性窗口中的属性列表中不包括一个对象的所有属性,如列表框的ListIndex属性、ListCount属性就不在属性列表中。
9.除窗体之外,还有哪些控件可作为其他控件的容器使用?答:还有:框架、图片框10.常用控件中具有Value属性的控件有哪些?它们的取值及类型有何异同?答:常用控件中具有V alue属性的控件有:选项按钮、复选框、滚动条:(1)选项按钮的取值为逻辑型,选中该选项按钮时,其值为True,未选中该选项按钮时,其值为False;(2)复选框的取值为数值型,选中该复选框时,其值为1,未选中该复选框是,其值为0,复选框变灰时,其值为2;(3)滚动条的取值为数值型,其值为滚动块在滚条中的位置。
11.哪些控件对象可以获得焦点?某程序的界面上有多个文本框,还有命令按钮,如果没有特别设置,在程序启动时,哪个控件将具有焦点?答:可以获得焦点的控件对象:文本框、命令按钮、选项按钮、复选框、列表框、组合框、滚动条(水平滚动条、垂直滚动条)如果没有特别设置,在程序启动时,首先设置具有焦点的控件将具有焦点。
12.以下使用方法的代码中,正确的是________ (C)A. Label1.SetFocusB. Form1.ClearC. Text1.SetFocusD. Combo1.Cls将复选框的Value属性设为"2",其效果与把它的Enabled属性设置为"False"有何异同?若把一个控件的Visible属性设为"False",意味着什么?答:将复选框的Value属性设为2,表示该复选框暂时变灰,启动后仍然可以对其操作,而将复选框的Enabled属性设置为False,表示该复选框灰化,启动后不可以对其操作,直到将Enabled属性设置为True,才能对其操作。
若把一个控件的Visible属性设为False,表示该控件不可见。
14.如何给一个列表框或组合框控件增添列表项?已有的列表项如何删除?答:给列表框或组合框控件增添列表项,可用属性窗口中的List属性,或在程序代码中使用AddItem 方法。
如果删除所有的列表项可用Clear方法,如果删除某一列表项可用RemoveItem方法。
附:显示、清除、删除方法1.显示方法:(1)窗体[窗体名.]Print 内容例:[Form1.]Print "学习Visual Basic"(2)文本框文本框名.Text=内容例:Text1.Text="学习Visual Basic"(3)标签标签名.Caption=内容例:Label1.Caption= "学习Visual Basic"(4)图片框图片框名.Print 内容例:Picture1.Print "学习Visual Basic"(5)列表框列表框名.AddItem 内容[,位置号]例:List1. AddItem "学习Visual Basic"List1. AddItem "学习Visual Basic",6(6)组合框组合框名.AddItem 内容[,位置号]例:Combo1. AddItem "学习Visual Basic"Combo1. AddItem "学习Visual Basic",62.清除方法(1)窗体[窗体名.]Cls例:[Form1.]Cls(2)文本框文本框名.Text=""例:Text1.Text= ""(3)标签标签名.Caption=""例:Label1.Caption= ""(4)图片框图片框名.Print 内容例:Picture1.Cls(5)列表框列表框名. Clear例:List1. Clear(6)组合框组合框名. Clear例:Combo1. Clear3.删除方法(1)列表框列表框名.RemoveItem 位置号例:List1. RemoveItem List1.ListIndex(2)组合框组合框名.AddItem 内容[,位置号]例:Combo1. RemoveItem Combo1.ListIndex第三章 VB 语言基础1. 如果编写的过程要被多个窗体及其对象调用,应将这些过程放在哪一类模块中?(B )A.窗体模块B.标准模块C.工程D.类模块 2. 事件过程与通用过程的主要区别是什么?答:事件过程是指为窗体以及窗体上的各种对象编写的用来响应由用户或系统引发的各种事件的代码行;通用过程是指一个应用程序中的多个窗体可以共享一些代码,或者一个窗体内不同的事件过程可以共享的一些代码;事件过程是由用户或系统响应某个事件而执行的,通用过程是由事件过程或其他通用过程调用而执行的。
3. 通用过程只能存在于标准模块中,这种说法对吗?答:不对,通用过程既可存在于标准模块中,也可存在于窗体模块中。
4. VB 有哪些数据类型?答:VB 中的数据类型有:整型、长整型、单精度、双精度、定长字符型、变长字符型、逻辑型、字节型、日期型、货币型、对象型、变体型。
5. 字符型常量与日期型常量在使用时有何区别?下列常量中哪些是字符串型常量,哪些是日期型常量?哪些什么也不是?A. ―I am a student.‖B. ―江苏南京‖C. #02/25/1999#D. #January 1,1993#E. ―02/25/1999#F. #January 1,1993‖答:字符型常量在使用时要加西文的双引号,日期型常量再使用时要加#号;字符型常量有:A 、B ;日期型常量有:C 、D ;什么也不是:E 、F 。
6. 下列符号中哪些是VB 合法的变量名?A. blnFragB. _a5bC. lngNumD. Area_TriangleE. User&InputF. 5Name答:合法的变量名有:A 、C 、D7. 变量作用域包括几个等级?说明的方式有何区别?答:变量作用域包括三个等级:过程级、窗体级、全局级。
局部(过程级):用Dim 、Static 在过程中定义,作用范围:该过程,脱离该过程后无效,也就是在其它过程中无效;Static :静态变量,脱离该过程后,变量的值不消失,用于子过程或函数过程中;窗体(模块)级:用Private 、Dim 在通用/声明部分定义,作用范围:该窗体中所有过程,脱离该窗体后无效,也就是在其它窗体的过程中无效;全局(公有的):用Public 在通用/声明部分定义;如果在标准模块中定义,则作用范围为该工程的所有窗体,调用时直接使用变量名;如果在窗体模块中定义,则作用范围为该工程的所有窗体,但本窗体调用时直接使用变量名,该工程中其它窗体调用时,须加定义时的窗体名作为前缀。