VB程序设计教程课后参考答案.doc_第1页
VB程序设计教程课后参考答案.doc_第2页
VB程序设计教程课后参考答案.doc_第3页
VB程序设计教程课后参考答案.doc_第4页
VB程序设计教程课后参考答案.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

杨飞 整理第 16 页 共 16 页2020/2/8VB程序设计教程课后参考答案习题一一、 填空题1 对象、事件驱动2 窗体、控件3 属性4 属性窗口、编程设置5 事件过程6 对象名、下划线、事件名7 Form_click8 Print form1.print “我的VB”9 主窗口、属性、工具箱、代码、窗体、工程资源管理10 菜单、快捷键二、 选择题1C 2. A 3. B 4. B 5. D 6. B C 7. A三、简答题(略)习题二一、 选择题1. D 2. C 3. C 4. B5. C6. B7. C8. B9. A10. B11. B12. C13. D14. B15. A16. A17. A18. A19. B20. C21. A22. B23. B24. A25. C26. A27. B28. B29. C30. B31. D32. D33. C二、 填空题1 Controlbox、Maxbutton、Minbutton2 Multiline TRUE3 *4 单文档界面(SDI) 多文档界面(MDI)5 窗体显示6 Passwordchar7 _change()三、 编程题(略)习题三一、 基础知识题(略)二、 填空题1 整型、长整型、单精度、双精度2 (x mod 10)*10+x103 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 CDEF9 GBCDEFA10 TRUE11 变量、属性12 _ :13 (略)14 “” 15 Public、通用/模块、Dim、static、private16 + 、 &、 +17 Now() 、 time()、 日期18 Inputbox()、字符串、val()19 Msgbox()三、 选择题1B2. C3. A4. B D此题有误 5. B6. A7. D8. B9. B10. C11. D12. B13. C14. B15. A16. C17.A18. D19. A20. D21. A22. C23. C24. D25. A26. D27. D28. B29. C30. B31. C32. B33. C D此题有误34. C35. A36. D37. C38. A39. B40. A41. C42. C43. D44. C45. D46. 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 Then x = -c / b Print 所构成的方程是: & b & x & + & c & =0 Print 该一元一次方程的根是:, xEnd IfIf a = 0 And b = 0 Then Print 很抱歉,不能构成合法的方程!End IfIf 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) Print 所构成的方程是: & a & x2 & + & b & x & + & c & =0 Print 该方程的根是: Print 第一个根是:, x1 Print 第二个根是:, x2 Else Print 所构成的方程是: & a & x2 & + & b & x & + & c & =0 Print 该方程有两个虚根: 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 2 s = s + iNextPrint sEnd Sub3.Option ExplicitPrivate Sub Command1_Click()Dim i%Dim s#s = 0For i = 1 To 100 s = 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 n t = t * i s = 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) b And Abs(a - c) a And Abs(b - c) a) Then p = (a + b + c) / 2 s = Sqr(p * (p - a) * (p - b) * (p - c) Print 三角形的面积是: & sElse Print 很抱歉,不能构成合法的三角形!End IfEnd Sub6.Option ExplicitPrivate 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 NextNextEnd Sub7.Option ExplicitPrivate Sub Command1_Click()Dim i%Dim s#, t#s = 10t = 10For i = 1 To 7 t = t * 0.4 s = s + t * 2NextPrint 第八次落地共经过的路径是: & sEnd 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 7 fs = Val(InputBox(please input score:, info, 90) If max fs Then min = fs End If s = s + fsNext ave = (s - max - min) / 5Print 该运动员的平均成绩是: & aveEnd Sub9. 同学们,这道题方法很多,主要考察你对选择结构的理解,我给出其中一种方法。Option ExplicitPrivate 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 = x Text5.Text = y Text6.Text = z Else Text4.Text = x Text5.Text = z Text6.Text = y End If End IfElse 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 IfEnd IfEnd SubPrivate Sub Form_Load()Text1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = Text6.Text = End Sub10Option ExplicitPrivate Sub Command1_Click()Dim x%, y%, m%x = Val(Text1.Text)y = Val(Text2.Text)m = x Mod yDo While m 0 x = y y = m m = x Mod yLoopText3.Text = yEnd SubPrivate Sub Form_Load()Text1.Text = Text2.Text = Text3.Text = End Sub习题四一、 选择题1B2. C3. D4. A5. D6. C7. D8. B二、 填空题1 b(i)=a(i-1)+a(i) print2 Variant3 M=lbound(a,2) to n next i4 205 从大到小排序(这是一种比较好的插入排序法,希望同学们能够掌握)6 Preserve7 A(k)=min8 空的变体型9 J=ubound(a,2) flag=false:exit for10 Dim aa(9,4) as integer三、 简答题(略)四、 编程题1Option ExplicitPrivate 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 = 0For 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 IfNextMsgBox 该字符串的元音字母个数是 & n & 个End Sub2这道题题目有问题,应改为“与其转置矩阵相加”Option ExplicitOption Base 1Private Sub Command1_Click()Dim aa(3, 3) As Integer, bb(3, 3) As Integer, cc(3, 3) As IntegerDim i%, j%For i = 1 To 3 For j = 1 To 3 aa(i, j) = Rnd * 100 我假设为100以内的任意整数 NextNextCall disp(aa) 调用函数,显示aa数组的内容For i = 1 To 3 For j = 1 To 3 bb(j, i) = aa(i, j) NextNextCall disp(bb) 调用函数,显示bb数组的内容For i = 1 To 3 For j = 1 To 3 cc(i, j) = aa(i, j) + bb(i, j) NextNextCall disp(cc) 调用函数,显示cc数组的内容End SubPrivate Sub Form_Load()RandomizeEnd SubSub disp(sz() As Integer) 专门编写一个显示数组的函数,希望同学们在题目中经常使用 Dim i%, j% For i = 1 To 3 For j = 1 To 3 Print sz(i, j); Next Print NextEnd Sub3. 这道题题目有问题,应改为“2,16任意进制的数值”Option ExplicitOption Base 1Private Sub Command1_Click()Dim x%Form1.Cls 清除窗体x = Val(InputBox(please input data:, info, 20)Call ejz(x) 调用函数求解二进制Print 换行Call sljz(x) 调用函数求解十六进制End SubSub ejz(ByVal m As Integer) 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 Loopaa(i) = m Mod 2Print 转换后的二进制数是:;For j = i To 1 Step -1 Print aa(j);NextEnd SubSub 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 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); NextEnd Sub这道题,请同学们认真思考,学会其它各种进制转换的算法。4. 本道题我给出两种方法,希望同学们通过该题目,熟悉函数的运用。方法一:Option ExplicitOption Base 1Private Sub Command1_Click()Dim i%, str1 As String, str() As String, str2 As String, length As Integerstr1 = InputBox(请输入第一个字符串:, info, exam)length = Len(str1)ReDim str(length) 重新调整数组大小,目的是为排序起作用For i = 1 To length str(i) = Mid(str1, i, 1) 给该数组赋值,换句话说,让第一个字符串放入数组中NextCall 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) 让第一个字符串和第二个字符串放入数组中NextCall sort(str, length) 调用函数对插入后字符串排序Print 插入第二个字符串后排序后的结果:Call disp(str, length) 调用函数显示插入后字符串排序后的结果End SubSub 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) str(j) = t End If Next NextEnd SubSub disp(str() As String, length As Integer) Dim i% For i = 1 To length Print str(i); Next PrintEnd Sub方法二:Option ExplicitOption Base 1Private Sub Command1_Click()Dim i%, str1 As String, str() As String, str2 As String, strinsert() As String, length As IntegerForm1.Clsstr1 = InputBox(请输入第一个字符串:, info, exam)length = Len(str1)ReDim str(length)For i = 1 To length str(i) = Mid(str1, i, 1)NextCall sort(str, length)Print 第一个字符串排序后的结果:Call disp(str, length)str2 = InputBox(请输入第二个字符串:, info, good)length = Len(str1) + Len(str2) + 1ReDim strinsert(length)For i = 1 To Len(str1) strinsert(i) = str(i)NextFor i = 1 To Len(str2) Call insert(strinsert, Mid(str2, i, 1), Len(str1) + i) 调用函数,逐个字符插入NextPrint 插入第二个字符串后排序后的结果:Call disp(strinsert, length - 1)End SubSub 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) str(j) = t End If Next NextEnd SubSub disp(str() As String, length As Integer) Dim i% For i = 1 To length Print str(i); Next PrintEnd SubSub 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(length - 1) Then 插入字符落在最后一个位置 str(length) = zm End If NextEnd Sub小结:这道题有一定的难度,希望同学们在做题时应尽量考虑各种条件,要力争考虑全面。如何通过该题获取函数、数组等编程的经验,请同学们认真总结,这题值得大家多花些时间研究,你可以使用更好的方法。习题五一、 选择题1. A2. B3. A4. A5. A6. D7. B8. C9. B10. C11. C12. D13. C14. C15. C16. D17. A18. B19. D20. A21. A22. C23. C二、 填空题1SDI MDI2对象.属性名属性值3Form1.show4.选中5Additem removeitem6复选框7300008Aa=Inputbox(“请输入学号”,”查询系统”) MsgBox 没有搜索到该生信息, vbOKOnly, 查询结果9. 0 1 2 3 10 Mdichild11. MDI12. 1 多个13 Load load form114. Mdiform1.arrage 排列方式15可以访问多个文档窗体16MDIform三、应用题(略)习题六一、 填空题1 下拉式、弹出式2 &3 -4 Visible5 Enabled6 弹出快捷菜单二、 选择题1A2. D3. B4. B5. B6. A7. C三、 简答题(略)四、 应用题(略)习题七一、填空题1. Mousemove2. Mousedoen3. 14. CTRL5. 确定鼠标按下时所处的坐标位置6. Enter Tab Backspace7. 按键的Ascii码8. 按下的物理键(本题有误,keyascii 应改为keycode)9. Dragicon10. drag move二、选择题1AC(本题题意不明确)2. B 3. C4. C5. D6. D7. B8. B9. C10. D三、 应用题(略)习题八一、 选择题1D2. A3. B 4. D二、 阅读下面程序,写出程序的输出结果1welcome 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:302第,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三、 简答题(略)四、 编程题1Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, x As String, s#Open a:datatest.dat For Input As #1Line Input #1, xs = 1For i = 1 To Val(x) s = s * iNextClose #1Open a:datatest.dat For Append As #1Print #1, Chr(13) + Chr(10) & sClose #1End Sub2.Option ExplicitOption Base 1Public hh As StringPrivate Sub Command1_Click()Dim name As String, sex As Stringname = Text1.Textsex = Space(4) + Text2.Text Put #1, , name Put #

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论