• 143.50 KB
  • 2022-04-22 11:21:05 发布

《VB程序设计》习题答案-林卓然编著.doc

  • 14页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'《VB语言程序设计》教材林卓然编著《VB程序设计》习题参考答案第1章习题一、单选题1.D2.B3.C4.A5.C6.A7.A8.B9.C10.(1)A(2)B二、多选题1.ACDE2.BCDE3.CD4.CE三、填空题1.事件驱动2.解释,编译3.设计,运行,中断4.属性,方法,事件5.Command2_Click6.中央,代码7.MyForm.frm8.(1)Cmd1_Click()(2)Print"VB语言程序设计"编程及上机调试1.按要求设置窗体属性2.在窗体上建立一个标签Label1。程序代码如下:PrivateSubForm_Click()Label1.Caption="你单击了窗体"EndSubPrivateSubForm_DblClick()Label1.Caption="你双击了窗体"EndSub3.在窗体上建立两个文本框Text1(输入数)、Text2(输出数)和一个命令按钮Command1。两个文本框的Text属性均为空。PrivateSubCommand1_Click()DimxAsSinglex=Val(Text1.Text)Text2.Text=15*xEndSub第2章习题一、单选题1.①D,②D2.①A,②C3.A4.B5.B6.B7.C8.D9.B10.B11.A12.A13.B14.A15.B16.A17.B二、多选题1.BD2.CD3.AC4.AD三、填空题14 1.(1)Sin(50*3.14159/180)(2)(2+x*y)/(2–y*y)(3)a*a–3*a*b/(3+a)(4)x^(3/8)+Sqr(y*y+4*a*a/(x+y^3))2.Int(50+6*Rnd)3.(1)138(2)3(3)214(4)"inchina"(5)70(6)"45"(7)04."系统管理数据库"编程及上机调试1~3题:按要求完成操作练习。4.PrivateSubCommand1_Click()""最大化"按钮Form1.WindowState=2"最大化EndSubPrivateSubCommand2_Click()""还原"按钮Form1.WindowState=0"还原EndSubPrivateSubCommand3_Click()""最小化"按钮Form1.WindowState=1"最小化EndSub5.在窗体上建立三个文本框Text1(第一个数)、Text2(第二个数)、Text3(计算结果)和一个命令按钮Command1(“计算”)。PrivateSubCommand1_Click()DimxAsSingleDimyAsSinglex=Val(Text1.Text)y=Val(Text2.Text)Text3.Text=x*x+y*yEndSub6.在窗体上建立两个文本框Text1(输入一串字符)、Text2(输出结果)和一个命令按钮Command1。PrivateSubCommand1_Click()DimxAsStringx=Left(Text1.Text,1)+Right(Text1.Text,1)Text2.Text=xEndSub第3章习题一、单选题1.C2.B3.D4.D5.B6.C7.B8.D9.D10.A11.A12.C13.C14.B15.(1)A(2)C16.A17.B18.(1)D(2)B(3)C19.D二、多选题1.AC2.AC3.ABCF三、填空题1.$000,1242.Label1.Caption="a*b="3.Height,Width4.25.Text1.SetFocus6.Multiline,ScrollBars,27.编程技术,程序设计8.PrivateSubText2_Change()´当文本框Text2中的文本内容发生变动时,执行该事件过程Label1.Caption=Text1.Text´把文本框Text1中的文本内容作为标签Label1的标题EndSubPrivateSubText1_GotFocus()´当文本框Text1获得焦点时,执行该事件过程Text1.SelStart=0´选定文本框Text1中的所有文本内容Text1.SelLength=Len(Text1.Text)EndSub编程及上机调试1.在窗体上建立一个文本框Text1(输入n值)、三个标签Label1(第一个随机数)、Label2(14 第二个随机数)和Label3(第三个随机数),以及一个命令按钮Command1。PrivateSubCommand1_Click()n=Val(Text1.Text)Randomizex=Int(1+n*Rnd)Label1.Caption="第一个随机数"+Str(x)x=Int(1+n*Rnd)Label2.Caption="第二个随机数"+Str(x)x=Int(1+n*Rnd)Label3.Caption="第三个随机数"+Str(x)EndSub2.在窗体上建立了四个文本框Text1、Text2、Text3和Text4,以及一个命令按钮Command1(“交换”)和Command2(“合并”)。PrivateSubCommand1_Click()"“交换”t=Text1.TextText1.Text=Text2.TextText2.Text=Text3.TextText3.Text=tEndSubPrivateSubCommand2_Click()"“合并”t=Text1.Text+Text2.Text+Text3.TextText4.Text=tEndSub3.(1)Rnd*9000+1000(2)Str(x)(3)Mid(s,3,1)+Mid(s,2,1)+Left(s,1)4.PrivateSubCommand1_Click()"往左Text1.Left=0EndSubPrivateSubCommand2_Click()"往右Text1.Left=Form1.Width-Text1.WidthEndSubPrivateSubCommand3_Click()"居中Text1.Left=(Form1.Width-Text1.Width)/2EndSub5.PrivateSubCmd1_Click()Lab1.Visible=TrueLab1.Caption="您已下达显示命令"EndSubPrivateSubForm_Click()Cmd1.Visible=TrueEndSub6.PrivateSubForm_KeyPress(KeyAsciiAsInteger)ShowPrint"输入字符:";Chr(KeyAscii),"ASCII码为;";KeyAsciiEndSubPrivateSubForm_DblClick()ClsEndSub7.产生这三个消息框的相应语句是:产生第1个消息框:x=MsgBox("在这里显示提示信息",4+0,"请确认")产生第2个消息框:x=MsgBox("在这里显示"+Chr(13)+"提示信息",3+0,"请确认")产生第3个消息框:x=MsgBox("在这里显示"+Chr(13)+"提示信息",2+16+0,"请确认")第4章习题一、单选题1.C2.A3.C4.C5.B6.A7.D8.B9.B10.(1)D(2)A(3)B二、多选题14 1.ABCFGHJ2.BE3.CD4.CDE5.AE三、填空题1.(SAnd(A>=18AndA<=20)AndH>=1.65)Or(NotSAnd(A>=16AndAge<=18)AndH>=1.60)2.600003.(1)"0"To"9"(2)"a"To"z","A"To"Z"(3)Else4.(1)6(2)-2(3)25.SelectCasexCaseIs<20CaseIs<=0y=2y=4CaseIs<=30CaseIs<10y=3y=0CaseElseCaseIs<15y=4y=1EndSelect6.(1)(x>100)And(xMod5=0)(2)0(3)Len(Text1.Text)(4)Text1.SelText编程及上机调试1.在窗体上建立两个文本框Text1(输入数)及Text2(显示结果),一个命令按钮Command1(“判断”)。PrivateSubCommand1_Click()"“判断”x=Val(Text1.Text)IfxMod2=0ThenText2.Text="偶数"Else消息Text2.Text="奇数"EndIfEndSub2.窗体上建立了一个文本框Text1,用于显示结果。PrivateSubForm_Load()x=Val(InputBox("请输入星期几(0~6)"))SelectCasexCaseIs=0Text1.Text="星期日(Sunday)"CaseIs=1Text1.Text="星期一(Monday)"CaseIs=2Text1.Text="星期二(Tuesday)"CaseIs=3Text1.Text="星期三(Wednesday)"CaseIs=4Text1.Text="星期四(Thursday)"CaseIs=5Text1.Text="星期五(Friday)"CaseIs=6Text1.Text="星期六(Saturday)"CaseElseText1.Text="输入错误"EndSelectEndSub3.窗体上建立了一个文本框Text1(“输入口令”)和一个命令按钮Command1(“检查”)。PrivateSubCommand1_Click()"“检查”x=Text1.TextIfx="12345678"ThenMsgBox("欢迎你用机!")ElseMsgBox("对不起,口令错")EndIfText1.Text=""Text1.SetFocusEndSub14 PrivateSubForm_Load()Text1.Text=""Text1.MaxLength=8Text1.PasswordChar="*"EndSub4.窗体上建立了两个文本框Text1(输入字符串)及Text2(转换结果),一个命令按钮Command1(“清除”)。PrivateSubCommand1_Click()"“清除”Text1.Text=""Text2.Text=""Text1.SetFocusEndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)DimsAsString*1s=Chr(KeyAscii)SelectCasesCase"A"To"Z"s=LCase(s)Case"a"To"z"s=UCase(s)CaseElses="*"EndSelectText2.Text=Text2.Text+sEndSub5.分别选择”红”、”绿”、”蓝”复选框后,单击命令按钮Command1时,通过RGB函数调配的颜色作为一个标签的背景色(BackColor)。PrivateSubCommand1_Click()r=0:g=0:b=0IfCheck1.Value=1Then"”红”复选框r=255EndIfIfCheck2.Value=1Then"”绿”复选框g=255EndIfIfCheck3.Value=1Then"”蓝”复选框b=255EndIfLabel1.BackColor=RGB(r,g,b)EndSub6.程序代码如下:PrivateSubForm_Load()LabClk.Caption="0"LabClk.Alignment=1LabClk.BorderStyle=1LabClk.FontSize=22LabClk.FontName="黑体"TimClk.Interval=1000EndSubPrivateSubTimClk_Timer()LabClk.Caption=Val(LabClk.Caption)+1EndSub7.(1)Chr(KeyAscii)(2)ElseIfChr(KeyAscii)(3)CheC=CheC-1(4)CheC(5)Is>0或Else第5章习题一、单选题1.A2.B3.(1)C,(2)B4.B5.C6.A7.(1)B,(2)C,(3)B8.B9.B10.B14 二、填空题1.(1)4次,n=13(2)3次,n=8(3)3次,n=27(4)3次,n=10(5)1次,n=122.(1)Len(s)(2)Mid(s,k,1)(3)c+t(4)Text2.Text3.(1)t=1(2)n=n+1(3)t=t*24.05.Text6.下拉列表框7.AddItem,RemoveItem或Clear8.(1)ItemA(2)ItemD(3)ItemD(4)ItemA9.(1)Mid(x,p+3)(2)p+4(3)InStr(p,x,"123")编程及上机调试1.和数为:1.21。程序代码如下:PrivateSubForm_Load()Shows=0Fork=1To100s=s+1/(1+k*4)NextkPrintsEndSub2.程序代码如下:PrivateSubForm_Load()DimiAsInteger,aAsInteger,bAsInteger,cAsIntegerShowFori=100To999a=Int(i/100)b=Int((i-100*a)/10)c=i-100*a-10*bIfa*a*a+b*b*b+c*c*c=iThenPrintiEndIfNextiEndSub3.在窗体上建立一个文本框Text1(初始值)、一个列表框List1(显示结果)和一个命令按钮Comd1(“查找”)。PrivateSubComd1_Click()"“查找”DimnAsIntegern=Val(Text1.Text)List1.Clear:k=0DoWhilek<=99IfNot(nMod7=0)ThenList1.AddItemnk=k+1EndIfn=n+1LoopEndSub4.程序代码如下:PrivateSubForm_Load()Shown=Val(InputBox("正整数n="))Fori=1TonForj=i+1TonFork=j+1TonIfi*i+j*j=k*kThenPrint"(";i;",";j;",";k;")"EndIfNextkNextjNexti14 EndSub5.在窗体上建立一个列表框List1和一个“显示表项”命令按钮Command1。程序代码如下:PrivateSubCommand1_click()""显示表项"按钮单击事件FontSize=12ClsFori=0ToList1.ListCount-1"逐项判断IfList1.Selected(i)Then"真时为选中PrintList1.List(i)EndIfNextiEndSub6.(1)Text1.Text(2)UCase(x)(3)t>="A"Andt<="Z"(4)y+x7.程序代码如下:PrivateSubForm_Load()ShowDimaAsSingle,xn0AsSingle,xn1AsSinglea=Val(InputBox("请输入一个正数"))xn1=aDoxn0=xn1xn1=(xn0+a/xn0)/2LoopWhileAbs(xn0-xn1)>=0.00001Printa;"的平方根为";xn1EndSub第6章习题一、单选题1.D2.A3.(1)B,(2)B4.C5.C6.A7.(1)C(2)B(3)A(4)B(5)D二、多选题1.AD2.CD三、填空题1.二,12;1,3;-1,22.01232222210144443.Name,Index4.(1)0ToIndex(2)Val(Text1(k).Text)5.(1)i+1Tok(2)s(i)s(i-1)(4)h=h+16.(1)ReDima(1Ton+1)(2)a(K+1)=a(K)(3)a(p)编程及上机调试1.程序代码如下:PrivateSubForm_Load()ShowDima(100)AsSinglen=Val(InputBox("输入个数n"))Print"处理前数据:"Fork=1Tona(k)=Val(InputBox("请输入第"&k&"个数"))Printa(k);NextkPrintM=Int(n/2)Fork=1ToMh=n-k+1t=a(h):a(h)=a(k):a(k)=t14 NextkPrint"处理的结果:"Fork=1TonPrinta(k);NextkEndSub2.程序代码如下:PrivateSubForm_Load()Dima(6,6)AsIntegerShowFori=1To6Forj=1To6SelectCaseiCaseIsja(i,j)=2CaseIs=ja(i,j)=0EndSelectPrinta(i,j);NextjPrintNextiFori=1To6t=a(1,i):a(1,i)=a(6,i):a(6,i)=tNextiPrint:PrintFori=1To6Forj=1To6Printa(i,j);NextjPrintNextiEndSub3.在窗体上建立两个列表框List1(处理前数据)和List2(处理后数据),以及标签Label1。程序代码如下:PrivateSubForm_Load()Dima(100)AsInteger,b(100)AsIntegerRandomizen=100Fori=1Ton"输入数组a的n个元素x=Int(20*Rnd)List1.AddItemxa(i)=xNextik=0Fori=1Ton"删除零元素Ifa(i)<>0Thenk=k+1:b(k)=a(i):List2.AddItemb(k)EndIfNextiLabel1.Caption="数组中零元素个数:"+Str(n-k)EndSub4.(1)g(x-10)+1(2)n-1(3)g(t)=16(2)n16(3)Mid(ch,r+1,1)编程及上机调试1.在窗体上建立四个文本框Text1和一个命令按钮Command1(“检验”)。文本框Text1~Text3用于输入,Text4用于输出结果。PrivateSubCommand1_Click()DimaAsString,bAsString,cAsStringa=Trim(Text1.Text)b=Trim(Text2.Text)c=Trim(Text3.Text)Ifche(a)Andche(b)Andche(c)ThenText4.Text=Val(a)+Val(b)+Val(c)ElseText4.Text="存在非数字字符"EndIfEndSubFunctionche(xAsString)AsBoolean"若存在非数字字符,函数值为假che=TrueFork=1ToLen(x)s=Mid(x,k,1)Ifs<"0"Ors>"9"Thenche=FalseExitForEndIfNextkEndFunction2.在窗体上建立七个文本框Text1~Text7和一个命令按钮Command1(“比较”)。Text1~Text6用于输入,Text7用于输出结果。PrivateSubCommand1_Click()a=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)d=Val(Text4.Text):e=Val(Text5.Text):f=Val(Text6.Text)Callmax(a,b,c,m)Callmax(m,d,e,m)Callmax(m,f,f,m)Text7.Text=mEndSubSubmax(x,y,z,m)‘标准模块文件14 Ifx>yThenm=xElsem=yEndIfIfm""(2)Mid(s,p+1)(3)n4.程序代码如下:PrivateSubForm_Load()DimxAsSingle,nAsInteger,yAsDoublex=InputBox("x=","求X的n次方")n=InputBox("n=","求X的n次方")y=Power(x,n)ShowPrintx;"的";n;"次方=";Format(y,"###,###.##")EndSubFunctionPower(xAsSingle,nAsInteger)AsDoubleIfn>1ThenPower=Power(x,n-1)*xElsePower=xEndIfEndFunction5.在窗体上设置三个窗体Form1~Form3。Form1中建立了两个文本框Text1(“用户名”)和Text2(“密码”),以及命令按钮Command1(“判断”)。Form2中建立了一个文本框Text1(其Text属性值为“欢迎你使用本系统”)和命令按钮Command1(“返回”)。Form3中建立了一个文本框Text1(其Text属性值为“对不起,请向管理员查询”)和命令按钮Command1(“退出”)。DimnAsIntegerPrivateSubCommand1_Click()‘窗体Form1的“判断”usern=Trim(Text1.Text):passw=Trim(Text2.Text)Ifusern="username"Andpassw="password"ThenForm1.HideForm2.ShowElsen=n+1:Text1.SetFocusIfn=3ThenForm1.HideForm3.ShowEndIfEndIfText1.Text="":Text2.Text=""EndSubPrivateSubForm_Activate()Text1.Text="":Text2.Text=""Text1.SetFocusEndSubPrivateSubCommand1_Click()‘窗体Form2的“返回”Form2.HideForm1.ShowEndSubPrivateSubCommand1_Click()‘窗体Form3的“退出”UnloadForm1UnloadForm2UnloadForm3EndEndSub6.(1)Form1窗体模块程序代码:PrivateSubForm_Load()14 RandomizeEndSubPrivateSubCommand1_Click()""生成随机数"DimsAsStrings=""Fori=1To10a(i)=Int(11+90*Rnd)s=s+Str(a(i))+","NextiText1.Text=Left(s,Len(s)-1)EndSubPrivateSubCommand2_Click()""求最大数"Text2.Text=Max()EndSubPrivateSubCommand3_Click()""打开排序窗口"Form1.Hide"隐藏主窗体Form2.Show"显示“排序”窗体EndSubPrivateSubCommand4_Click()""结束"UnloadForm1"隐藏主窗体UnloadForm2"显示“排序”窗体EndEndSub(2)Form2窗体模块程序代码:PrivateSubCommand1_Click()"“排序”DimtAsStringCallSort(t)Text1.Text=tEndSubPrivateSubCommand2_Click()"“返回”Form2.Hide"隐藏“排序”窗体Form1.Show"显示主窗体EndSub(3)标准模块程序代码:Publica(1To10)AsSingleFunctionMax()AsSingle"求最大值DimmAsSinglem=a(1)Fori=2To10Ifma(j)Thent=a(i):a(i)=a(j):a(j)=tEndIfNextjs=s+Str(a(i))+","Nextis=s+Str(a(10))EndSub第8章习题一、单选题1.B2.D3.D4.A5.B6.B14 7.A8.(1)D(2)D9.B二、填空题1.随机存取方式2.Get,Put3.(1)Open"StData1.txt"ForOutputAs#1(2)Write#1,StNo,StMb(3)Close#14.(1)Open"StData1.txt"ForInputAs#1(2)EOF(1)(3)Input#1,StNo,StMb5.(1)13(2)Text1.Text="9999"(3)Text1.Text6.(1)num+1(2)Input(3)num(4)Stno(num),Text1.Text(5)Stno(num)编程及上机调试1.程序代码如下:Dimd(1To20)AsIntegerPrivateSubCommand1_Click()""产生随机数"Fori=1To20d(i)=Int(1+99*Rnd)List1.AddItemd(i)NextiEndSubPrivateSubCommand2_Click()""保存"Open"MyFile3.txt"ForOutputAs#1Fori=1To20Write#1,d(i)NextiClose#1EndSubPrivateSubCommand3_Click()""读出"Open"MyFile3.txt"ForInputAs#1DoWhileNotEOF(1)Input#1,xList2.AddItemxLoopClose#1EndSubPrivateSubCommand4_Click()""结束"EndEndSub2.本程序的用户界面和程序代码较为复杂,请见具体程序文件。第9章习题单选题1.B2.D3.D4.B5.A6.A编程及上机调试1.程序代码如下:PrivateSubForm_load()Dimx(3)AsSingle,yAsSingleOnErrorGoToerrln"以后出错时转移到errlny=2/0"产生"除数为0"的错误x(4)=1"产生"下标越界"的错误MsgBox("终止程序的运行")UnloadMe"卸载窗体Enderrln:"标号SelectCaseErr.NumberCase11""除数为0"的错误码为1114 MsgBox("除数为0(错误码为11),跳过该错误")ResumeNext"返回Case9""下标越界"的错误码为9MsgBox("下标越界(错误码为9),跳过该错误")ResumeNext"返回CaseElse"其他错误处理MsgBox("错误发生在"&Err.Source_&",代码为"&Err.Number_&",即"&Err.Description)EndSelectEndSub2.改正后的程序代码如下:PrivateSubForm_Load()ShowFori=1To11PrintTab(20-i);Forj=1To2*i-1Ifj<=iThenk=jElsek=2*i-jEndIfIfk>9Thenk=k+7PrintChr(k+48);NextjNextiEndSub3.(1)n=n+1(2)d(1,j)=d(3,j)(3)d(i,2)=d(i,4)(4)i=jOri+j=5(5)d(i,j)=d(i,j)+1(6)n=0(7)Text1.Text第10章习题一、单选题1.C2.(1)A(2)C3.D4.C5.A6.D7.(1)A(2)D8.A9.B10.B11.A12.D二、填空题1.(1)Change(2)Value(3)Scroll(4)Value2.(1)P1.Picture(2)P2.Picture(3)P2.Picture=P3.Picture3.菜单编辑器,顶;PopUpMenu4.(1)Button.Index(2)BackColor=RGB(255,0,0)(3)BackColor=RGB(0,255,0)(4)BackColor=RGB(0,0,255)5.(1)Picture1(2)"X="+Str(X)(3)"Y="+Str(Y)6.DragMode,1;07.Action,4,ShowFont编程及上机调试1.在窗体上建立一个水平滚动条HScroll1和一个文本框Text1。程序代码如下:PrivateSubForm_Load()HScroll1.Max=1000HScroll1.Min=0HScroll1.LargeChange=5HScroll1.LargeChange=10HScroll1.Value=500EndSubPrivateSubHScroll1_Change()Text1.Text=HScroll1.Value14 EndSubPrivateSubHScroll1_Scroll()Text1.Text=HScroll1.ValueEndSub2.在窗体上建立一个计时器Timer1和“开始”、“停止”两个命令按钮。程序代码如下:Privatelen_SAsSingle,sAsInteger"模块级变量PrivateSubCommand1_Click()"“开始”Timer1.Enabled=Trues=0CallSub_MoveEndSubPrivateSubCommand2_Click()"“停止”Timer1.Enabled=FalseEndSubPrivateSubForm_Load()Timer1.Enabled=False"先取各指针的长度len_S=Sqr((LineS.Y2-LineS.Y1)^2+(LineS.X2-LineS.X1)^2)"秒针长度EndSubPrivateSubTimer1_Timer()"定时器的定时事件过程s=s+1CallSub_MoveEndSubPrivateSubSub_Move()"定时器的定时事件过程pi=3.14159LineS.X2=LineS.X1+len_S*Sin(pi*s/30)"绘制秒针LineS.Y2=LineS.Y1-len_S*Cos(pi*s/30)EndSub3.按要求在窗体上设计一个二级下拉菜单。4.在窗体上建立一个通用对话框CommonDialog1、“打开”及“字体”两个命令按钮和文本框Text1。程序代码如下:PrivateSubCommand1_Click()""打开"CommonDialog1.DialogTitle="选择文件"CommonDialog1.Filter="文本文件|*.txt""设置文件过滤器CommonDialog1.InitDir="C:""设置默认文件夹CommonDialog1.ShowOpen"显示“打开”对话框Text1.Text=CommonDialog1.FileNameEndSubPrivateSubCommand2_Click()""字体"CommonDialog1.Flags=cdlCFScreenFontsCommonDialog1.ShowFontText1.FontName=CommonDialog1.FontName"设置字体名称Text1.FontSize=CommonDialog1.FontSize"设置字体大小Text1.FontBold=CommonDialog1.FontBold"粗体Text1.FontItalic=CommonDialog1.FontItalic"斜体EndSub(完)14'