《Visual Basic程序设计-以计算思维为导向》课后答案作者:金莹 张洁_第1页
《Visual Basic程序设计-以计算思维为导向》课后答案作者:金莹 张洁_第2页
《Visual Basic程序设计-以计算思维为导向》课后答案作者:金莹 张洁_第3页
《Visual Basic程序设计-以计算思维为导向》课后答案作者:金莹 张洁_第4页
《Visual Basic程序设计-以计算思维为导向》课后答案作者:金莹 张洁_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

《VisualBasic程序设计——以计算思维为导向》课后答案作者:金莹张洁第1章1.VB的IDE(集成开发环境)的组成有哪些部分?解:标题栏、菜单栏、工具栏、控件工具箱、窗体设计窗口、代码窗口、工程资源管理窗口、属性窗口、窗体布局窗口。2.VB程序的可视化编程过程有哪些步骤?解: 分析设计,程序需要实现的功能如何用VB实现;界面设计,在窗体上添置需要的控件对象,并设置对象的属性;代码的编写,VB是事件驱动的程序语言,所以代码均应写在每一个事件过程或通用过程中;保存窗体和工程文件;调试程序和测试运行程序;考虑是否有更优化的方法。3.考虑一下计算思维的重要性,与程序设计的关系。略4.修改例1-1,窗体输出“HelloWorld”时,将命令按钮隐藏起来。 解:PrivateSubCommand1_Click()Print"HelloWorld"Command1.Visible=FalseEndSub第2章1.算法的特点有哪些? 解:确定性、有穷性、可行性、输入、输出2.写出给以下5个数字:15、21、11、37、24按从小到大排序的算法。(分别用自然语言、流程图描述) 解:算法一(自然语言描述):Step1:找出最小的数字11,排在第1个;Step2:在剩下的4个数字中找出最小的数字15,排在第2个;Step3:在剩下的3个数字中找出最小的数字21,排在第3个;Step4:再在剩下的2个数字中找出最小的数字24,排在第4个;Step5:剩下最后一个数字37,排在第5个。算法二(流程图描述):开始开始N(1)~N(5)分别赋值i=1i<k在N(i)到N(5)中寻找最小的数,交换到N(i)中i=i+1输出N(1)ToN(5)结束3.有10个数据的集合S,写一个算法:在集合S中查找数据N,如果找到即输出“找到数据N”,如果没找到则输出“没有找到数据N”。(分别用自然语言、流程图描述) 解:算法一(自然语言描述):S1:输入数据的个数k=10和要查找的数据N;S2:使i=1,i用于计数;S3:从数据集合中依次读取一个数据X;S4:若X=N,输出“找到数据N”的信息,算法结束,否则转S5;S5:使i=i+1,计数器计数;S6:若i≤k;则重复执行S3、S4、S5(循环);否则转S7;S7:输出“没有找到数据N”信息,算法结束。算法二(流程图描述):开始开始输入k=10待查找数据NX=Ni=i+1输出没有找到数据N结束i=i+1读出Xi<=k是输出找到数据N读出X是4.设计一个判断素数的算法(所谓素数,是指该数只能被1和它自身整除。分别用自然语言、流程图描述) 解:算法一(自然语言描述): S1:i=2S2:判断一个数N能否整除i,若能整除转S4S3: i=i+1,判断i是否大于N的开方,若不大于则重复S2、S3 S4:判断i是否大于N的开方,若小于等于则输出“N不是素数”,否则输出“N是素数”算法二(流程图描述):开始开始输入数据Ni=2NModi=0输出N不是素数是i=i+1i<=Sqr(N)是输出N是素数结束

第3章1.窗体可以将外观设置为无标题栏,需要修改的窗体属性是____________。 C A.Appearance B.WindowState C.BorderStyle D.FillStyle2.命令按钮的Default属性、Cancel属性设置的注意事项。解:Default:确定属性。一般用于Caption属性为“确定”的命令按钮。该属性值为“True”的命令按钮周围有一圈黑色的边框,表示如果焦点在除命令按钮之外的其他控件上时,按回车键,等同于单击该命令按钮,触发其单击事件。同一窗体中若有多个命令按钮,则只能设置其中一个按钮的Default属性为True。需要注意的是,若焦点在其他按钮上,则按回车键时,将触发得到焦点的按钮的Click事件,即焦点优先。Cancel:取消属性。一般用于Caption属性为“取消”的命令按钮。按Escape(Esc)键触发该属性值为“True”的命令按钮的单击事件。同一窗体中若有多个命令按钮,则只能设置其中一个按钮的Cancel属性为True。3.文本框要显示多行文字需要设置哪个属性? 解:MultiLine属性4.设计一个菜单,菜单项包括以下项目: “文件“菜单: 打开(O) 保存(S) 退出(E) “帮助”菜单: 帮助主题 关于 解:略第4章1.VB有哪些基本数据类型?这些基本数据类型的关键字和类型符分别是什么? 解:数据类型关键字类型说明符逻辑型Boolean无字节型Byte无货币型Currency@日期型Date无双精度型Double#整型Integer%长整型Long&对象型Object无单精度型Single!字符串型String$字符串型String变体型Variant无2.已知X、Y、A、B为整型变量,且X<Y,A<B,则以下关系式成立的是____。 BA.Sgn(X-Y)-Sgn(A-B)<0B.Sgn(X-Y)-Sgn(A-B)=-2C.Sgn(X-Y)-Sgn(A-B)=0D.Sgn(X-Y)-Sgn(A-B)=-13.能正确描述代数式的VB表达式是____。 DA.Abs(e3+Log(x)+Ant(y))/(X+Log(10)+cos(57))B.Abs(e3+Log(x)+Ant(y))/(X+Log(10)+cos(57*3.14/180))C.Abs(Exp(3)+Log(x)+Ant(y))/(X+Log(10)+cos(57*3.14/180))D.Abs(Exp(3)+Log(x)/Log(10)+Ant(y))/(X+Log(10)+cos(57*3.14/180))4.执行下面二行语句后,函数值最小是____。 ADimIAAsInteger,BAsSingle,SAsString*5,ChAsStringIA=32767:B=23.5:S="A":Ch="abcd"A.Len(IA)B.Len(B)C.Len(S)D.Len(Ch)5.以下语句中,执行____语句会出错。 C A.Print9/3*30000 B.Print200^2 C.Print200*200 D.Print"32700"+100第5章1.请使用Msgbox函数编写代码显示如下图所示提示消息对话框: 解:MsgBox"本行代码包含不可识别字符",vbAbortRetryIgnore,"提示"2.在SelectCase结构中,判断条件8≤x≤12的正确表示是什么? 解:SelectCasexCaseIs>=8SelectCasexCaseIs<=12EndSelectEndSelect3.在过程中有语句Fori=N1ToN2StepN3,在该循环体内有下列四条语句,其中____会影响循环执行的次数。 C①N1=N1+i ②N2=N2+N3③i=i+N3 ④N3=2*N3A.①③ B.①②③ C.③ D.①②③④4.下列代码的运行结果是什么?PrivateSubCommand1_Click()DimiAsInteger,jAsIntegerj=10.5Fori=1.5TojStep2i=i+1j=j+iNextiPrinti;jEndSub 解:11 28第6章1.VB程序开发过程中,可能会遇到3种错误,分别是哪3种?哪种错误一般系统不能自动检测出来? 解:语法错误、运行错误、逻辑错误。逻辑错误一般不能自动检测。2.在VB程序中如何设置断点?何时需要设置断点? 解:单击代码窗口最左边,便会出现一个深红色圆形标记,同时该行代码也呈深红色,即设置了断点。 调试程序时需要中断程序运行可设置断点。3.调试程序的时候,单步调试的快捷键是哪个? 解:F84.找出下列程序中的错误,改正并运行出正确的结果: 判断自然数N是否为素数:PrivateSubCommand1_Click()DimiAsInteger,nAsIntegern=Val(Text1.Text)Fori=1ToSqr(n) ‘改为Fori=2ToSqr(n)IfnModi=0ThenExitSub ‘改为ExitForNextiIfi>Sqr(n)ThenText2.Text="是素数"ElseText2.Text="不是素数"EndIfEndSub第7章1.判断以下关于数组的说法正确与否?(1)数组的维界取值范围必须在Integer数据的范围内,即-32768~32767 解:错误。在Long的范围内(2)数组下标用以确定数组元素在数组中的位置,下标的下界只能从0或1开始 解:错误。下界可以是任意整数(在Long范围内)(3)使用Preserve关键字的ReDim语句,只能改变动态数组最后一维的维上界 解:正确。跟数组的存储结构有关(4)控件数组既可以是一维的也可以是多维的 解:错误。只能是一维的2.按金字塔打印杨辉三角形。111 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1 解:参考实验教材实验9中的杨辉三角形PrivateSubCommand1_Click()Dima()AsInteger,b()AsInteger,iAsInteger,jAsIntegerReDimb(1)b(1)=1Fori=1To6ReDima(i)ReDimPreserveb(i)PrintSpace(7-i);Forj=1Toia(j)=b(j-1)+b(j)Printa(j);NextjForj=1Toib(j)=a(j)NextjPrintNextiEndSub3.是生成一个如下图7-12所示的矩阵,并按矩阵元素的排列次序将矩阵输出。11121314151112131415201918171621222324253029282726 解:OptionBase1PrivateSubCommand1_Click()Dima(4,5)AsInteger,iAsInteger,jAsInteger,kAsInteger,sAsStringk=10Fori=1To4IfiMod2<>0ThenForj=1To5k=k+1a(i,j)=kNextjElseIfiMod2=0ThenForj=5To1Step-1k=k+1a(i,j)=kNextjEndIfNextiFori=1To4Forj=1To5Printa(i,j);NextjPrintNextiEndSub4.生成由10个元素组成的、末尾数字不为0的三位随机正整数数组及其对应元素的逆序数数组。 解:OptionExplicitOptionBase1PrivateSubCommand1_Click()Dima(10)AsInteger,b(10)AsIntegerDimiAsInteger,jAsInteger,kAsIntegerDoWhilei<10k=Int(Rnd*(999-100+1)+100)IfkMod10<>0Theni=i+1a(i)=kText1=Text1&Str(a(i))EndIfLoopFori=1To10b(i)=Mid(a(i),3,1)&Mid(a(i),2,1)&Mid(a(i),1,1)Text2=Text2&Str(b(i))NextiEndSubPrivateSubForm_Load()Text1="":Text2=""EndSub第8章1.设计程序,求两个自然数的最小公倍数。 解:参考实验教材实验8中相关实验PrivateFunctionLCM(ByValxAsInteger,ByValyAsInteger)DimiAsIntegerDoi=i+1LoopUntili*xMody=0LCM=i*xEndFunction2.设计程序实现二分插入排序算法。(二分插入排序是指,在已排序的数组元素中,使用二分法找到插入数的位置,插入该数) 解:参考实验教材实验12OptionExplicitOptionBase1PrivateSubCmdSort_Click()DimSort(10)AsIntegerDimtempAsIntegerDimiAsInteger,jAsIntegerRandomizeFori=1To10Sort(i)=Int(Rnd*(100-1))+1Text1=Text1&Str(Sort(i))NextiCallBinaryInsert_Sort(Sort)Fori=1To10Text2.Text=Text2.Text&Str(Sort(i))NextiEndSubPrivateSubBinaryInsert_Sort(a()AsInteger)DimiAsInteger,jAsInteger,tempAsIntegerDimLAsInteger,RAsInteger,MAsIntegerDimnAsIntegern=UBound(a)Fori=2Tontemp=a(i)L=1R=i-1M=(L+R)/2DoUntilL>=RIftemp>a(M)ThenL=M+1ElseIftemp<a(M)ThenR=M-1ElseExitDoEndIfM=(L+R)/2LoopIftemp>a(M)ThenM=M+1Forj=iToM+1Step-1a(j)=a(j-1)Nextja(M)=tempNextiEndSub3.有20个两位随机正整数围成一圈,找出每四个相邻数之和中的最大值,并指出是哪四个相邻的数。 解:参考实验教材实验19OptionExplicitOptionBase1PrivateSubCommand1_Click()Dima(20)AsInteger,iAsInteger,jAsIntegerDimsumAsInteger,maxAsInteger,maxiAsIntegerFori=1To20'生成20个两位随机整数组成的数组a(i)=Int(Rnd*90+10)Printa(i);IfiMod10=0ThenPrintNextiFori=1To20sum=0Forj=0To3If(i+j)>20Thensum=sum+a(i+j-20)Elsesum=sum+a(i+j)EndIfNextjIfmax<sumThenmax=summaxi=iEndIfNextiPrinta(maxi)&"+"&a(maxi+1)&"+"&a(maxi+2)&"+"&a(maxi+3)&"="&maxEndSub4.有15个人围成一圈,顺序排号(从1排到15)。从第一个人开始报数,凡报到3的人退出圈子,并根据退出圈子的顺序重新编号,输出新老编号。 解:OptionExplicitPrivateSubCommand1_Click()DimA(15)AsInteger,SAsStringDimiAsInteger,idxAsInteger,CountAsIntegerFori=1To15'初始设置所有人参与报数A(i)=1Nextiidx=0'记录报数人的编号Fori=1To15'15个人均退出,则结束游戏Count=0'记录报数累加值DoWhileCount<3idx=idx+1Ifidx>15Thenidx=1'首位相接Count=A(idx)+CountLoopA(idx)=0S=S&Str(idx)NextiFori=1To15Text1.Text=Text1.Text&Str(i)Text2.Text=SNextiEndSub5.利用级数法编程求arcsin函数值。 已知: 根据程序功能要求及求解公式设计的程序界面,如图。运行程序,要求用户通过InputBox函数输入自变量x及允许误差值。 解:OptionExplicitPrivateSubCmdcalc_Click()DimxAsSingle,nAsInteger,epsAsSingleDimsAsSingle,aAsSingle,tempAsStringtemp=InputBox("请输入一个绝对值小于等于1的数与允许误差:",_"求函数值","0.5,1e-5")temp=Trim(temp)n=InStr(temp,",")x=Left(temp,n-1):eps=Right(temp,Len(temp)-n)s=x:n=1Doa=afun(x,n)Ifa<=epsThenExitDos=s+an=n+1LoopLabel2.Caption="arcsin("&CStr(x)&")="Text1.Text=sEndSubPrivateFunctionafun(ByValxAsSingle,ByValnAsInteger)AsSingleDimiAsInteger,pAsSinglep=1Fori=1Tonp=p*(2*i-1)/(2*i)Nextiafun

温馨提示

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

评论

0/150

提交评论