• 296.50 KB
  • 2022-04-22 11:52:19 发布

《vb程序设计》期末复习题及答案.doc

  • 48页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'《vb程序设计》期末复习题及答案一、填空题1.创建一个VB应用程序三个主要的步骤是__________________、________________和_____________________。2.当程序运行时,要求窗体中的文本框呈现空白,则在设计时,应当在此文本框的__________窗口中,把此文本框的_____________属性设置成空白。3.Label和TextBox控件用来显示和输入文本,如果仅需要让应用程序在窗体中显示文本信息,可使用___________控件;若允许用户输入文本,则应使用_____________控件。4.窗体的常用方法有__________、___________、___________和___________。5.要想在代码中给名为txtshow的文本框赋予文本:GOODWORK,应当编写的语句是____________________________________。6.若命令按钮的名称为Cmdopen,程序要求单击该命令按钮时,打开一个窗口frm1,请对以下事件过程填空。PrivateSubCmdopen_________________________________EndSub7.VisualBasic6种类型的表达式是______________、______________、______________、________________、_________________、____________________。VisualBasic根据表达式的___________来确定表达式的类型。8.表达式937Mod2^2的值是___________。9.已知a=3,b=4,c=5,表达式a>bandNotc>aOrc>bAndcaAndNotb=1.7AndW<=62.5            B、T<=1.7OrW>=62.5C、T>1.7AndW<62.5              D、T>=1.7OrW<62.511.下列对象不能响应Click事件的是(   )   A、列表框      B、图片框          C、窗体         D、计时器12.在VisualBasic中,按文件的访问方式不同,可以将文件分为(    )A、顺序文件、随机文件和二进制文件        B、文本文件和数据文件C、数据文件和可执行文件                  D、ASCⅡ文件和二进制文件13.将通用对话框CommonDialog的类型设置成“颜色”对话框,可调用该对话框的(   )方法。A、ShowOpen     B、ShowSave       C、ShowColor        D、ShowFont三、指出下列句中的错误,修改或者说明原因。1.sum和int.sum都可以作为VB的变量名。2.变量名的长度最长可达1024个字符。3.下列程序运行结果:3,3OptionExplicitPrivateSubCommand1_Click()Dima,bAsIntegera=3.6b=3.6Text1.Text=aText2.Text=bEndSub4.程序可以改变定长字符串的内容和长度。5.Variant是一种特殊的数据类型,可以包含任何种类型的数据。6.下列程序运行结果为True   PrivateSubCommand1_Click()a=1b=2c=3Text1.Text=c>a+bOrb-1>c-1Andc+a>aXorb0ANDy<0C.a=bORx>yD.x+y>a+bANDNOT(yb>=cANDa=d的值为False。三、将下列数学表达式转换为VB表达式。(6分)1.a2+2ab+b2:a^2+2*a*b+b^22.8exln10:8*exp(x)*log(10)3.2sin(450)cos(450):2*sin(3.1416/4)*cos(3.1416/4)6.在VB中,用户定义常量使用Const语句,声明变量使用Dim语句。1.在VB6.0中,扩展名为.vbp的文件称为A。A)工程文件B)窗体文件C)类模块文件D)标准模块文件2.在VB6.0集成开发环境的设计模式下,用鼠标双击窗体上的某个对象后,打开的窗口是A。A)代码窗口B)窗体设计窗口C)属性窗口D)工程资源管理器窗口 3.设有变量定义语句Dima%,则变量a的数据类型是A。A)整型B)单精度类型C)双精度类型D)字符串类型4.下列表达式中,值为False的是D。A)"AB"<"abc"B)"ABC"=UCase("abc")C)"ABCD"<"abc"D)Mid("ABCD",3,1)=Left("ABCD",3)5.函数InStr("ABCDEF","CD")的值是B。A)2B)3C)TrueD)CDEF6.下列程序运行后,单击窗体,输出结果是C。PrivateSubForm_Click()DimaAsInteger,bAsIntegera=3b=5Printa+b;a&bEndSubA)88B)3535C)835D)3587.下列程序运行后,单击窗体,输出结果是B。PrivateSubForm_Click()a=3:b=7a=a+b:b=a–b:a=a-bPrinta;bEndSubA)43B)73C)37D)1078.下面程序段所表示的数学关系式是C。If(a3m=m+2Case1To4 m=m+3EndSelectNextkPrintmEndSub3. 在窗体上放置一个文本框,名称为Text1。下列程序运行后,单击窗体,Text1中显示的内容是【3】。答案:adePrivateSubForm_Click()Text1.Text=""s="aBd12Re"Fork=1ToLen(s)ch=Mid(s,k,1)Ifch>="a"Andch<="z"ThenText1.Text=Text1.Text+chEndIfNextkEndSub4. 下列程序运行后,单击窗体,输出结果是【4】。答案:1124OptionBase1PrivateSubForm_Click()x=Array(3,5,4,8,2,6,11,9,7,4)p=x(1):s=0Fork=2ToUBound(x)Ifx(k)>pThenp=x(k)s=s+pEndIfNextkPrintp;sEndSub5. 下列程序运行后,单击窗体,输出结果是【5】。答案:151PrivateSubForm_Click()Dima(1To3,1To3)Fori=1To3Fork=1To3Ifk=1Ori=kThena(i,k)=1Elsea(i,k)=i+kEndIfNextkNextiPrinta(1,1);a(2,3);a(3,3)EndSub6.在窗体上放置一个命令按钮,名称为Command2,并编写如下代码。PrivateSubCommand2_Click()DimmAsInteger,nAsInteger,gAsIntegerm=18:n=12:g=0Callsub1(m,n,g) Printm;n;gEndSubPublicSubsub1(ByValaAsInteger,ByValbAsInteger,cAsInteger)Ifa0r=aModba=bb=rLoopc=aEndSub程序运行后,单击命令按钮,则输出结果是【6】。答案:181267.在窗体上放置一个命令按钮,名称为Command3,并编写如下代码。PrivateSubCommand3_Click()DimkAsIntegerk=1Printfun1(k);Printfun1(k);Printfun1(k);EndSubFunctionfun1(aAsInteger)AsIntegerStaticcAsIntegerDimbAsIntegera=a+2:b=b+2:c=c+2fun1=a+b+cEndFunction程序运行后,单击命令按钮,则输出结果是【7】。答案:711158.在窗体上放置一个文本框,其名称为Text1,并编写如下代码。DimsAsStringPrivateSubText1_KeyPress(KeyAsciiAsInteger)s=s+Chr(KeyAscii)Prints;EndSub程序运行后,在文本框中输入abc,则窗体上输出的内容是【8】。答案:aababc1.在窗体上放置一个计时器和一个标签,计时器名称为Timer1,标签名称为Label1。下列程序的功能是:(1)在窗体加载事件中设置计时器每秒钟能够触发5次Timer事件;(2)每触发一次Timer事件能够将标签上的字号加大2,当字号超过当前窗体的宽度时,将字号恢复为8。程序中有一处错误,请更正。说明错误时可以使用每条语句前的编号。(1)PrivateSubForm_Load()(2)Timer1.Interval=5答案:200(3)Timer1.Enabled=True(4)EndSub(5)PrivateSubTimer1_Timer()(6)Label1.FontSize=Label1.FontSize+2(7)IfLabel1.FontSize>Me.WidthThen (8)Label1.FontSize=8(9)EndIf(10)EndSub2.下列程序的功能是计算1+3+5+…+99的和s。程序中有一处错误。请更正。说明错误时可以使用每条语句前的编号。(1)s=0(2)k=1(3)DoWhilek<=99(4)k=k+2答案:将(4)、(5)调换顺序(5)s=s+k(6)Loop(7)Prints1.在窗体上放置一个列表框,名称为List1;放置一个文本框,名称为Text1;放置一个命令按钮,名称为Command1,Caption属性值为“统计3的倍数”。如右图所示。下列程序的功能是:(1)在窗体的Load事件中,产生10个20~30(含20和30)之间的随机整数,并作为列表项逐个添加到列表框List1中。(2)单击命令按钮Command1时,能够统计列表框中是3的倍数的列表项的个数,并将统计结果显示在文本框Text1中。请填空完善程序。PrivateSubForm_Load()DimxAsIntegereRandomizeFork=1To10答案:Int(Rnd*11+20)或Rnd*10+20x=【1】"产生一个[20,30]之间的随机整数【2】"将x作为列表项添加到List1中Nextk答案:List1.AddItemx或List1.AddItemstr(x)EndSubPrivateSubCommand1_Click()DimnAsInteger"n:存放是3的倍数的列表项的个数Fork=【3】答案:0ToList1.ListCount–1或0To9IfVal(List1.List(k))【4】=0Then答案:Mod3n=n+1EndIfNextkText1.Text=nEndSub2.下列程序的功能是用近似公式求自然对数的底e的值,直到最后一项小于10-4时停止计算。请填空完善程序。PrivateSubForm_Click()DimeAsSingle,nAsInteger,pAsSingle"e:累加和p:参加求和的当前项 e=1:n=1:p=1DoWhile【5】答案:p>=1e-4e=e+pn=n+1p=【6】答案:p/nLoopPrint"e的近似值=";eEndSub3.在下图所示的窗体上放置的主要控件及其主要的属性设置如下:控件类型控件名称属性属性值标签Label1Caption示例文字命令按钮Command1Caption设置单选按钮Option1Caption宋体Option2Caption隶书下列程序的功能是单击命令按钮后,根据单选按钮的选中状态,将标签中的“示例文字”设置为相应的字体。请填空完善程序。PrivateSubCommand1_Click()DimfnAsString"fn:存放选中的字体If【7】Then答案:Option1.Value=Truefn="宋体"Elsefn="隶书"EndIf【8】=fn答案:Label1.FontNameEndSub4.下列程序中用户自定义函数ave的功能是求一维数组中所有元素的平均值,并返回。单击窗体时,能够输入数组a的10个元素,并调用函数ave,求数组a中所有元素的平均值,并显示输出。请填空完善程序。OptionBase1PrivateSubForm_Click()Dima(10)AsSingleFori=1To10a(i)=Val(InputBox("输入一个数值"))NextiPrint"平均值=";【9】"调用函数ave答案:ave(a)EndSubPublicFunctionave(b()AsSingle)AsSingleDimsAsSingleDimnAsIntegern=UBound(b)Fork=1Tons=s+b(k)Nextk【10】答案:ave=s/n EndFunction《VB期末范围题总汇》1.求随机10个整数的最大值、最小值、平均值以及和;Dima(1To10)PrivateSubCommand1_Click()RandomizePicture1.Print"产生的随机数为:"Fori=1To10a(i)=Int(Rnd*99+1)Picture1.Printa(i);NextiPicture1.PrintEndSubPrivateSubCommand2_Click()Dimmax,min,avemax=a(1)min=a(1)ave=0.1*a(1)Fori=2To10Ifa(i)>maxThenmax=a(i)Ifa(i)n1Then"为了求最小公倍数,增加m,n变量m=m1:n=n1Elsem=n1:n=m1EndIfDor=mModnIfr=0ThenExitDom=nn=rLoopPrintn1;",";m1;"的最大公约数为";nPrint"最小公倍数=",m1*n1/nEndSub7.求逆序数(感觉题目类型太多)8.级数有限项求和问题(题目类型太多)9.求质因子问题PrivateSubCommand1_Click()DimNAsInteger,IAsIntegerN=Val(InputBox("请输入2的整数:")) I=2DoIfNModI=0ThenPrintI;N=NIElseI=I1EndIfLoopWhileN1EndSub10.字符统计OptionBase1OptionExplicitPrivateSubCommand1_Click()Dimiasinteger,A(26)asinteger,nasintegerDimSasstring*1,StrlasstringStrl=Text1n=Len(Strl)Fori=1TonS=Mid(Strl,i,1)IfUCase(S)>=”A”AndUCase(S)<=”Z”ThenA(Asc(UCase(S))-64)+1EndIfNextiFori=1To26List1.AdditemChr(64+i)&“:”&A(i)NetxiEndSubPrivateSubCommand_Click()EndEndSub第二大题1.判定素数过程Functionisprime(NumAsLong)AsBooleanIfNum<2Thenisprime=False:ExitFunctionDimiAsLongFori=2ToSqr(Num)If(NumModi)=0Thenisprime=FalseExitFunctionEndIf Nextiisprime=TrueEndFunctionPrivateSubCommand1_Click()DimiAsLongFori=1To1000Ifisprime(i)ThenPrintiEndIfNextiEndSub2.求最大公约数过程;FunctionMax公约数(AAsLong,BAsLong)"求出两个数的最大公约数DimXAsLong,YAsLong,KAsLongX=IIf(A>=B,A,B)"x存入最大值Y=IIf(A<=B,A,B)"y存入最小值Do"辗转相除法K=XModY:IfK=0ThenExitDoX=Y:Y=KLoopMax公约数=YEndFunction3.冒泡排序过程PrivateSubCommand1_Click()Dima(9)AsIntegerDimiAsIntegerFori=0To9a(i)=InputBox("输入整数")NextSortaFori=0To9Printa(i)NextEndSubPrivateSubSort(ByRefa()AsInteger)DimiAsInteger DimjAsIntegerDimtAsIntegerFori=LBound(a)+1ToUBound(a)Forj=UBound(a)ToiStep-1Ifa(j-1)>a(j)Thent=a(j-1)a(j-1)=a(j)a(j)=tEndIfNextNextEndSub4顺序查找过程PrivateSubCommand1_Click()Dimi,j,t,a(1To10)RandomizePrint"原数组:"Fori=1To10a(i)=Int(Rnd*10)Print"a("&i&")="&a(i)&Space(2),IfiMod2=0ThenPrintEndIfNextiPrintFori=1To9Forj=i+1To10Ifa(j)maxThenmax=a(i)Ifa(i)n1Then"为了求最小公倍数,增加m,n变量m=m1:n=n1Elsem=n1:n=m1EndIfDor=mModnIfr=0ThenExitDom=nn=rLoopPrintn1;",";m1;"的最大公约数为";nPrint"最小公倍数=",m1*n1/nEndSub7.求逆序数(感觉题目类型太多)8.级数有限项求和问题(题目类型太多)9.求质因子问题PrivateSubCommand1_Click()DimNAsInteger,IAsIntegerN=Val(InputBox("请输入2的整数:"))I=2DoIfNModI=0ThenPrintI;N=NIElseI=I1EndIfLoopWhileN1EndSub10.字符统计 OptionBase1OptionExplicitPrivateSubCommand1_Click()Dimiasinteger,A(26)asinteger,nasintegerDimSasstring*1,StrlasstringStrl=Text1n=Len(Strl)Fori=1TonS=Mid(Strl,i,1)IfUCase(S)>=”A”AndUCase(S)<=”Z”ThenA(Asc(UCase(S))-64)+1EndIfNextiFori=1To26List1.AdditemChr(64+i)&“:”&A(i)NetxiEndSubPrivateSubCommand_Click()EndEndSub第二大题1.判定素数过程Functionisprime(NumAsLong)AsBooleanIfNum<2Thenisprime=False:ExitFunctionDimiAsLongFori=2ToSqr(Num)If(NumModi)=0Thenisprime=FalseExitFunctionEndIfNextiisprime=TrueEndFunctionPrivateSubCommand1_Click()DimiAsLongFori=1To1000Ifisprime(i)ThenPrintiEndIf NextiEndSub2.求最大公约数过程;FunctionMax公约数(AAsLong,BAsLong)"求出两个数的最大公约数DimXAsLong,YAsLong,KAsLongX=IIf(A>=B,A,B)"x存入最大值Y=IIf(A<=B,A,B)"y存入最小值Do"辗转相除法K=XModY:IfK=0ThenExitDoX=Y:Y=KLoopMax公约数=YEndFunction3.冒泡排序过程PrivateSubCommand1_Click()Dima(9)AsIntegerDimiAsIntegerFori=0To9a(i)=InputBox("输入整数")NextSortaFori=0To9Printa(i)NextEndSubPrivateSubSort(ByRefa()AsInteger)DimiAsIntegerDimjAsIntegerDimtAsIntegerFori=LBound(a)+1ToUBound(a)Forj=UBound(a)ToiStep-1Ifa(j-1)>a(j)Thent=a(j-1)a(j-1)=a(j)a(j)=tEndIfNextNext EndSub4顺序查找过程PrivateSubCommand1_Click()Dimi,j,t,a(1To10)RandomizePrint"原数组:"Fori=1To10a(i)=Rnd*10Print"a("&i&")="&a(i)&Space(2),IfiMod2=0ThenPrintNextiPrintFori=1To9Forj=i+1To10Ifa(j)maxThenmax=a(i)Ifa(i)n1Then"为了求最小公倍数,增加m,n变量m=m1:n=n1Elsem=n1:n=m1EndIfDor=mModnIfr=0ThenExitDo m=nn=rLoopPrintn1;",";m1;"的最大公约数为";nPrint"最小公倍数=",m1*n1/nEndSub7.求逆序数(感觉题目类型太多)8.级数有限项求和问题(题目类型太多)9.求质因子问题PrivateSubCommand1_Click()DimNAsInteger,IAsIntegerN=Val(InputBox("请输入2的整数:"))I=2DoIfNModI=0ThenPrintI;N=NIElseI=I1EndIfLoopWhileN1EndSub10.字符统计OptionBase1OptionExplicitPrivateSubCommand1_Click()Dimiasinteger,A(26)asinteger,nasintegerDimSasstring*1,StrlasstringStrl=Text1n=Len(Strl)Fori=1TonS=Mid(Strl,i,1)IfUCase(S)>=”A”AndUCase(S)<=”Z”ThenA(Asc(UCase(S))-64)+1EndIfNextiFori=1To26List1.AdditemChr(64+i)&“:”&A(i)NetxiEndSub PrivateSubCommand_Click()EndEndSub第二大题1.判定素数过程Functionisprime(NumAsLong)AsBooleanIfNum<2Thenisprime=False:ExitFunctionDimiAsLongFori=2ToSqr(Num)If(NumModi)=0Thenisprime=FalseExitFunctionEndIfNextiisprime=TrueEndFunctionPrivateSubCommand1_Click()DimiAsLongFori=1To1000Ifisprime(i)ThenPrintiEndIfNextiEndSub2.求最大公约数过程;FunctionMax公约数(AAsLong,BAsLong)"求出两个数的最大公约数DimXAsLong,YAsLong,KAsLongX=IIf(A>=B,A,B)"x存入最大值Y=IIf(A<=B,A,B)"y存入最小值Do"辗转相除法K=XModY:IfK=0ThenExitDoX=Y:Y=KLoopMax公约数=YEndFunction3.冒泡排序过程 PrivateSubCommand1_Click()Dima(9)AsIntegerDimiAsIntegerFori=0To9a(i)=InputBox("输入整数")NextSortaFori=0To9Printa(i)NextEndSubPrivateSubSort(ByRefa()AsInteger)DimiAsIntegerDimjAsIntegerDimtAsIntegerFori=LBound(a)+1ToUBound(a)Forj=UBound(a)ToiStep-1Ifa(j-1)>a(j)Thent=a(j-1)a(j-1)=a(j)a(j)=tEndIfNextNextEndSub4顺序查找过程PrivateSubCommand1_Click()Dimi,j,t,a(1To10)RandomizePrint"原数组:"Fori=1To10a(i)=Rnd*10Print"a("&i&")="&a(i)&Space(2),IfiMod2=0ThenPrintNextiPrintFori=1To9Forj=i+1To10Ifa(j)maxThenmax=a(i)Ifa(i)n1Then"为了求最小公倍数,增加m,n变量m=m1:n=n1Elsem=n1:n=m1EndIfDor=mModnIfr=0ThenExitDom=nn=rLoopPrintn1;",";m1;"的最大公约数为";nPrint"最小公倍数=",m1*n1/nEndSub7.求逆序数(感觉题目类型太多)8.级数有限项求和问题(题目类型太多)9.求质因子问题PrivateSubCommand1_Click()DimNAsInteger,IAsIntegerN=Val(InputBox("请输入2的整数:"))I=2Do IfNModI=0ThenPrintI;N=NIElseI=I1EndIfLoopWhileN1EndSub10.字符统计OptionBase1OptionExplicitPrivateSubCommand1_Click()Dimiasinteger,A(26)asinteger,nasintegerDimSasstring*1,StrlasstringStrl=Text1n=Len(Strl)Fori=1TonS=Mid(Strl,i,1)IfUCase(S)>=”A”AndUCase(S)<=”Z”ThenA(Asc(UCase(S))-64)+1EndIfNextiFori=1To26List1.AdditemChr(64+i)&“:”&A(i)NetxiEndSubPrivateSubCommand_Click()EndEndSub第二大题1.判定素数过程Functionisprime(NumAsLong)AsBooleanIfNum<2Thenisprime=False:ExitFunctionDimiAsLongFori=2ToSqr(Num)If(NumModi)=0Thenisprime=FalseExitFunctionEndIfNexti isprime=TrueEndFunctionPrivateSubCommand1_Click()DimiAsLongFori=1To1000Ifisprime(i)ThenPrintiEndIfNextiEndSub2.求最大公约数过程;FunctionMax公约数(AAsLong,BAsLong)"求出两个数的最大公约数DimXAsLong,YAsLong,KAsLongX=IIf(A>=B,A,B)"x存入最大值Y=IIf(A<=B,A,B)"y存入最小值Do"辗转相除法K=XModY:IfK=0ThenExitDoX=Y:Y=KLoopMax公约数=YEndFunction3.冒泡排序过程PrivateSubCommand1_Click()Dima(9)AsIntegerDimiAsIntegerFori=0To9a(i)=InputBox("输入整数")NextSortaFori=0To9Printa(i)NextEndSubPrivateSubSort(ByRefa()AsInteger)DimiAsIntegerDimjAsIntegerDimtAsInteger Fori=LBound(a)+1ToUBound(a)Forj=UBound(a)ToiStep-1Ifa(j-1)>a(j)Thent=a(j-1)a(j-1)=a(j)a(j)=tEndIfNextNextEndSub4顺序查找过程PrivateSubCommand1_Click()Dimi,j,t,a(1To10)RandomizePrint"原数组:"Fori=1To10a(i)=Rnd*10Print"a("&i&")="&a(i)&Space(2),IfiMod2=0ThenPrintNextiPrintFori=1To9Forj=i+1To10Ifa(j)