《VB程序设计教程课后参考答案-.pdf》由会员分享,可在线阅读,更多相关《VB程序设计教程课后参考答案-.pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、杨飞 整理第 1 页共 16 页4/15/2013 VB 程序设计教程课后参考答案习题一一、填空题1 对象、事件驱动2 窗体、控件3 属性4 属性窗口、编程设置5 事件过程6 对象名、下划线、事件名7 Form_click 8 Print form1.print“我的 VB”9 主窗口、属性、工具箱、代码、窗体、工程资源管理10菜单、快捷键二、选择题1C 2.A3.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
2、 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+x10 3 Sin(3.14*15/180)+sqr(x+exp(3)/abs(x-y)-log(3*x)4(a
3、+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 页4/15/2013 10TRUE 11变量、属性12,_:13(略)14“”15Public、通用/模块、Dim、static、private 16+、&、+17Now()、time()、日期18Inputbox()、字符串、val()19Msgbox()三、选择题1B 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
4、.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(
5、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
6、*a)Print 所构成的方程是:&a&x2&+&b&x&+&c&=0 Print 该方程的根是:Print 第一个根是:,x1 Print 第二个根是:,x2 Else Print 所构成的方程是:&a&x2&+&b&x&+&c&=0 杨飞 整理第 3 页共 16 页4/15/2013 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 Privat
7、e 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
8、,5)s=0 t=1 For i=1 To n t=t*i s=s+t Next Print s End Sub 杨飞 整理第 4 页共 16 页4/15/2013 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
9、 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 三角形的面积是:&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 N
10、ext 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 页4/15/2013 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
11、=fs max=fs min=fs For i=2 To 7 fs=Val(InputBox(please input score:,info,90)If max 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(T
12、ext3.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 杨飞 整理第 6 页共 16 页4/15/2013 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
13、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 10Option 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 杨飞
14、 整理第 7 页共 16 页4/15/2013 Private Sub Form_Load()Text1.Text=Text2.Text=Text3.Text=End Sub 习题四一、选择题1B 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 10Dim
15、 aa(9,4)as integer 三、简答题(略)四、编程题1Option 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
16、_ 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 页4/15/2013 For i=1 To 3 For j=1 To 3 aa(i,j)=Rnd*100,我假设为 100 以内的任意
17、整数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),专门编写一个显示数组的函数,希望同学
18、们在题目中经常使用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(B
19、yVal m As Integer)杨飞 整理第 9 页共 16 页4/15/2013 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(ByV al m As Integer),注意十六进制数码的特殊性Dim aa(30)As String,i%,j%i=1 Do While m 16 0 Select Case m Mod
20、 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 页4/15/2013 C
21、ase 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 A
22、s 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=s
23、tr1+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 A
24、s 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 页4/15/2013 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 Comma
25、nd1_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(请输
26、入第二个字符串:,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)
27、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 页4/15/2013 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
28、,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 Next End Sub 小结:这道题有一定的难度,希望同学们在做题时应尽量考虑各种条件,要力争考虑全面。如何通过该题获取函数、数组等编程的经验,请同学们认真总结,这题值
29、得大家多花些时间研究,你可以使用更好的方法。习题五一、选择题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 页4/15/2013 1SDI MDI 2对象.属性名属性值3Form1.show 4.选中5Additem removeitem 6复选框730000 8Aa=Inputbox(“请输入学号”,”查询系统”)MsgBox 没有搜索到该生信息,vbOKOnly,查询结果 9.0 1 2
30、 3 10 Mdichild 11.MDI 12.1 多个13Load load form1 14.Mdiform1.arrage 排列方式15可以访问多个文档窗体16 MDIform 三、应用题(略)习题六一、填空题1 下拉式、弹出式2&3-4 Visible 5 Enabled 6 弹出快捷菜单二、选择题1A 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.按下的物理键
31、(本题有误,keyascii 应改为 keycode)9.Dragicon 10.drag move 二、选择题杨飞 整理第 14 页共 16 页4/15/2013 1AC(本题题意不明确)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 二、阅读下面程序,写出程序的输出结果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
32、#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,
33、个数,37 第,13,个数,41 第,14,个数,43 第,15,个数,47 三、简答题(略)四、编程题1Option Explicit Private Sub Command1_Click()Dim i As Integer,x As String,s#Open a:datatest.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:datatest.dat For Append As#1 Print#1,Chr(13)+Chr(10)&s 杨飞 整理第 15 页共 16 页4/1
34、5/2013 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 P
35、rivate 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 页4/15/2013 End Sub 习题九一、填空题1.Data databasename recordsource 2数据绑定datasource datafield datasource datafield3.recordset 表类型(dbopentable)dynaset 类型(dbopendynaset
36、)快照类型(dbopensnapshot)4.AbsolutePosition EOF 指向最后一条记录nomatch 5.addnew delete update 6.movefirst movelast movenext moveprevious data 控件的 recordset 7FindFirst Findlast Findnext Findprevious 8.判断表的首部(指针无效)判断表的尾部(指针无效)9Readonly 10.recordcount close 11.Data1.Recordset.Findfirst(出生年月=#1973/10/1#)Data1.Reco
37、rdset.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.方法或函数二、选择题1C 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 公共控件存储图像3Imagelist 4.tooltiptext 5.简单的复杂的二、选择题1D 2.A 请同学们掌握学习方法,认真复习。有问题可以与我联系:fei_yang_