首页 VB程序设计教程课后参考答案

VB程序设计教程课后参考答案

举报
开通vip

VB程序设计教程课后参考答案VB程序设计教程课后参考答案 杨飞 整理 第 1 页 共 16 页 8/10/2010 VB程序设计教程课后参考答案 习题一 一、填空题 1( 对象、事件驱动 2( 窗体、控件 3( 属性 4( 属性窗口、编程设置 5( 事件过程 6( 对象名、下划线、事件名 7( Form_click 8( Print form1.print “我的VB” 9( 主窗口、属性、工具箱、代码、窗体、工程资源管理 10( 菜单、快捷键 二、选择题 1(C 2. A 3. B 4. B 5. D 6. B...

VB程序设计教程课后参考答案
VB程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 教程课后参考答案 杨飞 整理 第 1 页 共 16 页 8/10/2010 VB程序设计教程课后参考答案 习题一 一、填空题 1( 对象、事件驱动 2( 窗体、控件 3( 属性 4( 属性窗口、编程设置 5( 事件过程 6( 对象名、下划线、事件名 7( Form_click 8( Print form1.print “我的VB” 9( 主窗口、属性、工具箱、代码、窗体、工程资源管理 10( 菜单、快捷键 二、选择题 1(C 2. A 3. B 4. B 5. D 6. B C 7. A 三、简答题(略) 习题二 一、选择题 1. D 2. C 3. C 4. B 5. C 6. B 7. C 8. B 9. A 10. B 11. B 12. C 13. D 14. B 15. A 16. A 17. A 18. A 19. B 20. C 21. A 22. B 23. B 24. A 25. C 26. A 27. B 28. B 29. C 30. B 31. D 32. D 33. C 二、填空题 1( Controlbox、Maxbutton、Minbutton 2( Multiline TRUE 3( ****** 4( 单文档界面(SDI) 多文档界面(MDI) 5( 窗体显示 6( Passwordchar 7( _change() 三、编程题(略) 习题三 一、基础知识题(略) 二、填空题 1( 整型、长整型、单精度、双精度 2( (x mod 10)*10+x\10 3( 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=0 6( False 7( -4、3、,3、3、,4、4 8( CDEF 9( GBCDEFA 杨飞 整理 第 2 页 共 16 页 8/10/2010 10( TRUE 11( 变量、属性 12( „ _ : 13( (略) 14( “” , 15( Public、通用/模块、Dim、static、private 16( + 、 &、 + 17( Now() 、 time()、 日期 18( Inputbox()、字符串、val() 19( Msgbox() 三、选择题 1(B 2. C 3. A 4. B D此题有误 5. B 6. A 7. D 8. B 9. B 10. C 11. D 12. B 13. C 14. B 15. A 16. C 17.A 18. D 19. A 20. D 21. A 22. C 23. C 24. D 25. A 26. D 27. D 28. B 29. C 30. B 31. C 32. B 33. C D此题有误 34. C 35. A 36. D 37. C 38. A 39. B 40. A 41. C 42. C 43. D 44. C 45. D 46. A 四、编程题 1. Option Explicit Private 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 Then x = -c / b Print "所构成的方程是:" & b & "x" & "+" & c & "=0" Print "该一元一次方程的根是:", x End If If a = 0 And b = 0 Then Print "很抱歉,不能构成合法的方程~" End If If a <> 0 Then delta = b * b - 4 * a * c If delta >= 0 Then x1 = (-b + Sqr(delta)) / (2 * a) x2 = (-b - Sqr(delta)) / (2 * a) 2 Print "所构成的方程是:" & a & "x" & "+" & b & "x" & "+" & c & "=0" Print "该方程的根是:" Print "第一个根是:", x1 Print "第二个根是:", x2 Else 2 Print "所构成的方程是:" & a & " x" & "+" & b & "x" & "+" & c & "=0" 杨飞 整理 第 3 页 共 16 页 8/10/2010 Print "该方程有两个虚根:" Print "第一个虚根是:" & -b / (2 * a) & "+" & Sqr(Abs(delta)) / (2 * a) & "i" Print "第二个虚根是:" & -b / (2 * a) & "," & Sqr(Abs(delta)) / (2 * a) & "i" End If End If End Sub 2. Option Explicit Private Sub Command1_Click() Dim i%, s% s = 0 For i = 1 To 99 Step 2 s = s + i Next Print s End Sub 3. Option Explicit Private Sub Command1_Click() Dim i% Dim s# s = 0 For i = 1 To 100 s = s + 1 / i * (-1) ^ (i + 1) Next Print s End Sub 4. Option Explicit Private Sub Command1_Click() Dim i%, n% Dim t#, s# n = Val(InputBox("please input data:", "info", 5)) s = 0 t = 1 For i = 1 To n t = t * i s = s + t Next Print s End Sub 杨飞 整理 第 4 页 共 16 页 8/10/2010 5. Option Explicit Private 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) Then p = (a + b + c) / 2 s = Sqr(p * (p - a) * (p - b) * (p - c)) Print "三角形的面积是:" & s Else Print "很抱歉,不能构成合法的?三角形~" End If End Sub 6. Option Explicit Private Sub Command1_Click() Dim ji%, tu% For ji = 1 To 27 For tu = 1 To 27 If ji * 2 + tu * 4 = 78 And ji + tu = 27 Then Print "鸡的个数是:" & ji Print "兔的个数是:" & tu End If Next Next End Sub 7. Option Explicit Private Sub Command1_Click() Dim i% Dim s#, t# s = 10 t = 10 For i = 1 To 7 t = t * 0.4 s = s + t * 2 Next Print "第八次落地共经过的路径是:" & s 杨飞 整理 第 5 页 共 16 页 8/10/2010 End Sub 8. Option Explicit Private Sub Command1_Click() Dim i%, fs%, max%, min%, s% Dim ave# fs = Val(InputBox("please input score:", "info", 90)) s = fs max = fs min = fs For i = 2 To 7 fs = Val(InputBox("please input score:", "info", 90)) If max < fs Then max = fs End If If min > fs Then min = fs End If s = s + fs Next ave = (s - max - min) / 5 Print "该运动员的平均成绩是:" & ave End Sub 9. „同学们,这道题方法很多,主要考察你对选择结构的理解,我给出其中一种方法。 Option Explicit Private Sub Command1_Click() Dim x%, y%, z% x = Val(Text1.Text) y = Val(Text2.Text) z = Val(Text3.Text) If x > y Then If x < z Then Text4.Text = z Text5.Text = x Text6.Text = y Else If y > z Then Text4.Text = x Text5.Text = y Text6.Text = z Else Text4.Text = x Text5.Text = z 杨飞 整理 第 6 页 共 16 页 8/10/2010 Text6.Text = y End If End If Else If y < z Then Text4.Text = z Text5.Text = y Text6.Text = x Else If x < z Then Text4.Text = y Text5.Text = z Text6.Text = x Else Text4.Text = y Text5.Text = x Text6.Text = z End If End If End If End Sub Private Sub Form_Load() Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" End Sub 10( Option Explicit Private Sub Command1_Click() Dim x%, y%, m% x = Val(Text1.Text) y = Val(Text2.Text) m = x Mod y Do While m <> 0 x = y y = m m = x Mod y Loop Text3.Text = y End Sub 杨飞 整理 第 7 页 共 16 页 8/10/2010 Private Sub Form_Load() Text1.Text = "" Text2.Text = "" Text3.Text = "" End Sub 习题四 一、选择题 1(B 2. C 3. D 4. A 5. D 6. C 7. D 8. B 二、填空题 1( b(i)=a(i-1)+a(i) print 2( Variant 3( M=lbound(a,2) to n next i 4( 20 5( 从大到小排序(这是一种比较好的插入排序法,希望同学们能够掌握) 6( Preserve 7( A(k)=min 8( 空的变体型 9( J=ubound(a,2) flag=false:exit for 10( Dim aa(9,4) as integer 三、简答题(略) 四、编程题 1( Option Explicit Private Sub Command1_Click() Dim zfc As String, zm As String, i%, lenth%, n% zfc = InputBox("please input string:", "info", "you are good student") lenth = Len(zfc) n = 0 For i = 1 To lenth zm = Mid(zfc, i, 1) „取每一个字母 If UCase(zm) = "A" Or UCase(zm) = "E" Or UCase(zm) = "O" Or UCase(zm) = "I" Or _ UCase(zm) = "U" Then n = n + 1 End If Next MsgBox "该字符串的元音字母个数是" & n & "个" End Sub 2(?这道题题目有问题,应改为“与其转置矩阵相加” Option Explicit Option Base 1 Private Sub Command1_Click() Dim aa(3, 3) As Integer, bb(3, 3) As Integer, cc(3, 3) As Integer Dim i%, j% 杨飞 整理 第 8 页 共 16 页 8/10/2010 For i = 1 To 3 For j = 1 To 3 aa(i, j) = Rnd * 100 „我假设为100以内的任意整数 Next Next Call disp(aa) „调用函数,显示aa数组的内容 For i = 1 To 3 For j = 1 To 3 bb(j, i) = aa(i, j) Next Next Call disp(bb) „调用函数,显示bb数组的内容 For i = 1 To 3 For j = 1 To 3 cc(i, j) = aa(i, j) + bb(i, j) Next Next Call disp(cc) „调用函数,显示cc数组的内容 End Sub Private Sub Form_Load() Randomize End Sub Sub disp(sz() As Integer) „专门编写一个显示数组的函数,希望同学们在题目中经常使用 Dim i%, j% For i = 1 To 3 For j = 1 To 3 Print sz(i, j); Next Print Next End Sub 3. ?这道题题目有问题,应改为“2,16任意进制的数值” Option Explicit Option Base 1 Private Sub Command1_Click() Dim x% Form1.Cls „清除窗体 x = Val(InputBox("please input data:", "info", 20)) Call ejz(x) „调用函数求解二进制 Print „换行 Call sljz(x) „调用函数求解十六进制 End Sub Sub ejz(ByVal m As Integer) 杨飞 整理 第 9 页 共 16 页 8/10/2010 Dim aa(30) As Integer, i%, j% i = 1 Do While m \ 2 <> 0 aa(i) = m Mod 2 m = m \ 2 i = i + 1 Loop aa(i) = m Mod 2 Print "转换后的二进制数是:"; For j = i To 1 Step -1 Print aa(j); Next End Sub Sub sljz(ByVal m As Integer) „注意十六进制数码的特殊性 Dim aa(30) As String, i%, j% i = 1 Do While m \ 16 <> 0 Select Case m Mod 16 „想一想,为什么要这样转换 Case 10 aa(i) = "A" Case 11 aa(i) = "B" Case 12 aa(i) = "C" Case 13 aa(i) = "D" Case 14 aa(i) = "E" Case 15 aa(i) = "F" Case Else aa(i) = CStr(m Mod 16) End Select m = m \ 16 i = i + 1 Loop Select Case m Mod 16 Case 10 aa(i) = "A" Case 11 aa(i) = "B" Case 12 aa(i) = "C" Case 13 aa(i) = "D" Case 14 aa(i) = "E" 杨飞 整理 第 10 页 共 16 页 8/10/2010 Case 15 aa(i) = "F" Case Else aa(i) = CStr(m Mod 16) End Select Print "转换后的十六进制数是:"; For j = i To 1 Step -1 Print aa(j); Next End Sub „这道题,请同学们认真思考,学会其它各种进制转换的算法。 4. 本道题我给出两种方法,希望同学们通过该题目,熟悉函数的运用。 方法一: Option Explicit Option Base 1 Private Sub Command1_Click() Dim i%, str1 As String, str() As String, str2 As String, length As Integer str1 = InputBox("请输入第一个字符串:", "info", "exam") length = Len(str1) ReDim str(length) „重新调整数组大小,目的是为排序起作用 For i = 1 To length str(i) = Mid(str1, i, 1) „给该数组赋值,换句话说,让第一个字符串放入数组中 Next Call sort(str, length) „调用函数对第一个字符串排序 Print "第一个字符串排序后的结果:" Call disp(str, length) „调用函数显示第一个字符串排序后的结果 str2 = InputBox("请输入第二个字符串:", "info", "good") str1 = str1 + str2 length = Len(str1) + Len(str2) ReDim str(length) „重新调整数组大小,目的是为插入后字符串排序起作用 For i = 1 To length str(i) = Mid(str1, i, 1) „让第一个字符串和第二个字符串放入数组中 Next Call sort(str, length) „调用函数对插入后字符串排序 Print "插入第二个字符串后排序后的结果:" Call disp(str, length) „调用函数显示插入后字符串排序后的结果 End Sub Sub sort(str() As String, length As Integer) Dim i%, j%, t As String For i = 1 To length - 1 For j = i + 1 To length If str(i) > str(j) Then t = str(i) str(i) = str(j) 杨飞 整理 第 11 页 共 16 页 8/10/2010 str(j) = t End If Next Next End Sub Sub disp(str() As String, length As Integer) Dim i% For i = 1 To length Print str(i); Next Print End Sub 方法二: Option Explicit Option Base 1 Private Sub Command1_Click() Dim i%, str1 As String, str() As String, str2 As String, strinsert() As String, length As Integer Form1.Cls str1 = InputBox("请输入第一个字符串:", "info", "exam") length = Len(str1) ReDim str(length) For i = 1 To length str(i) = Mid(str1, i, 1) Next Call sort(str, length) Print "第一个字符串排序后的结果:" Call disp(str, length) str2 = InputBox("请输入第二个字符串:", "info", "good") length = Len(str1) + Len(str2) + 1 ReDim strinsert(length) For i = 1 To Len(str1) strinsert(i) = str(i) Next For i = 1 To Len(str2) Call insert(strinsert, Mid(str2, i, 1), Len(str1) + i) ‘调用函数,逐个字符插入 Next Print "插入第二个字符串后排序后的结果:" Call disp(strinsert, length - 1) End Sub Sub sort(str() As String, length As Integer) Dim i%, j%, t As String For i = 1 To length - 1 For j = i + 1 To length If str(i) > str(j) Then 杨飞 整理 第 12 页 共 16 页 8/10/2010 t = str(i) str(i) = str(j) str(j) = t End If Next Next End Sub Sub disp(str() As String, length As Integer) Dim i% For i = 1 To length Print str(i); Next Print End Sub Sub insert(str() As String, zm As String, length%) Dim i%, j% For i = 1 To length - 1 If zm >= str(i) And zm < str(i + 1) Then „插入字符落在内部情况 For j = length - 1 To i + 1 Step -1 str(j + 1) = str(j) Next str(i + 1) = zm Exit For End If If zm < str(1) Then „插入字符落在第一个位置 For j = length - 1 To 1 Step -1 str(j + 1) = str(j) Next str(1) = zm End If If zm >= str(length - 1) Then „插入字符落在最后一个位置 str(length) = zm End If Next End Sub 小结:这道题有一定的难度,希望同学们在做题时应尽量考虑各种条件,要力争考虑全面。如何通过该题获取函数、数组等编程的经验,请同学们认真 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf ,这题值得大家多花些时间研究,你可以使用更好的方法。 习题五 一、选择题 1. A 2. B 3. A 4. A 5. A 6. D 7. B 8. C 9. B 10. C 11. C 12. D 13. C 14. C 15. C 16. D 17. A 18. B 19. D 20. A 21. A 22. C 23. C 二、填空题 杨飞 整理 第 13 页 共 16 页 8/10/2010 1(SDI MDI 2(对象.属性名,属性值 3(Form1.show 4.选中 5(Additem removeitem 6(复选框 7(30000 8(Aa=Inputbox(“请输入学号”,”查询系统”) MsgBox "没有搜索到该生信息", vbOKOnly, "查询结果" 9. 0 1 2 3 10 Mdichild 11. MDI 12. 1 多个 13( Load load form1 14. Mdiform1.arrage 排列方式 15(可以访问多个文档窗体 16(MDIform 三、应用题(略) 习题六 一、填空题 1( 下拉式、弹出式 2( & 3( - 4( Visible 5( Enabled 6( 弹出快捷菜单 二、选择题 1(A 2. D 3. B 4. B 5. B 6. A 7. C 三、简答题(略) 四、应用题(略) 习题七 一、填空题 1. Mousemove 2. Mousedoen 3. 1 4. CTRL 5. 确定鼠标按下时所处的坐标位置 6. Enter Tab Backspace 7. 按键的Ascii码 8. 按下的物理键(本题有误,keyascii 应改为keycode) 9. Dragicon 10. drag move 二、选择题 杨飞 整理 第 14 页 共 16 页 8/10/2010 1(AC(本题题意不明确) 2. B 3. C 4. C 5. D 6. D 7. B 8. B 9. C 10. D 三、应用题(略) 习题八 一、选择题 1( D 2. A 3. B 4. D 二、阅读下面程序,写出程序的输出结果 1( "welcome to visible basic",#2006-03-21#,#1899-12-30 15:03:30# "welcome to visible basic",#2006-03-21#,#1899-12-30 15:03:30# "welcome to visible basic",#2006-03-21#,#1899-12-30 15:03:30# welcome to visible basic 06-3-21 15:03:30 welcome to visible basic 06-3-21 15:03:30 welcome to visible basic 06-3-21 15:03:30 2( "第",1,"个数",2 "第",2,"个数",3 "第",3,"个数",5 "第",4,"个数",7 "第",5,"个数",11 "第",6,"个数",13 "第",7,"个数",17 "第",8,"个数",19 "第",9,"个数",23 "第",10,"个数",29 "第",11,"个数",31 "第",12,"个数",37 "第",13,"个数",41 "第",14,"个数",43 "第",15,"个数",47 三、简答题(略) 四、编程题 1( Option Explicit Private Sub Command1_Click() Dim i As Integer, x As String, s# Open "a:\data\test.dat" For Input As #1 Line Input #1, x s = 1 For i = 1 To Val(x) s = s * i Next Close #1 Open " a:\data\test.dat " For Append As #1 Print #1, Chr(13) + Chr(10) & s 杨飞 整理 第 15 页 共 16 页 8/10/2010 Close #1 End Sub 2. Option Explicit Option Base 1 Public hh As String Private Sub Command1_Click() Dim name As String, sex As String name = Text1.Text sex = Space(4) + Text2.Text Put #1, , name Put #1, , sex Put #1, , hh Text1.Text = "" Text2.Text = "" Text1.SetFocus End Sub Private Sub Command3_Click() Close #1 End End Sub Private Sub Form_Load() hh = Chr(13) + Chr(10) Open "e:\aaa.txt" For Binary As #1 Put #1, , " 姓名" Put #1, , " 性别" Put #1, , hh Text1.Text = "王语嫣" Text2.Text = "女" 杨飞 整理 第 16 页 共 16 页 8/10/2010 End Sub 习题九 一、填空题 1. Data databasename recordsource 2(数据绑定 datasource datafield datasource datafield 3. recordset 表类型(dbopentable) dynaset类型(dbopendynaset) 快照类型(dbopensnapshot) 4. AbsolutePosition EOF 指向最后一条记录 nomatch 5. addnew delete update 6. movefirst movelast movenext moveprevious data控件的recordset 7(FindFirst Findlast Findnext Findprevious 8. 判断表的首部(指针无效) 判断表的尾部(指针无效) 9(Readonly 10. recordcount close 11. Data1.Recordset.Findfirst(" 出生年月=#1973/10/1#") Data1.Recordset.FindNext (" 出生年月=#1973/10/1#") 12. Data1.Recordset.Findfirst(" 姓名=?张艳?") Data1.Recordset.Findfirst(" 语文>85") 13. fields Data1.Recordset.Fields("销售日期") Data1.Recordset.Fields(1) 14. create drop alter 15. select insert update delete 16. 方法或函数 二、选择题 1(C 2. B 3. B 4. C 5. C 6. D 7. D 8. B 9. C 10. D 11. C 12. C 13. C 14. BC 15. C 16. B 三、应用题(略) 习题十 一、填空题 1(.OCX 2. 为其它windows公共控件存储图像 3(Imagelist 4. tooltiptext 5. 简单的 复杂的 二、选择题 1(D 2. A 请同学们掌握学习方法,认真复习。 有问题可以与我联系:fei_yang_fei@sina.com.cn
本文档为【VB程序设计教程课后参考答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_105949
暂无简介~
格式:doc
大小:66KB
软件:Word
页数:28
分类:生活休闲
上传时间:2017-10-18
浏览量:29