VB期末复习资料.docx
- 文档编号:5350890
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:37
- 大小:28.40KB
VB期末复习资料.docx
《VB期末复习资料.docx》由会员分享,可在线阅读,更多相关《VB期末复习资料.docx(37页珍藏版)》请在冰豆网上搜索。
VB期末复习资料
题号:
530'【程序填空】
功能:
有数列1/5+1/9+1/13+1/(1+k*4)(k<=100)求前100项之和
PrivateSubCommand1_Click()
DimsAsDouble
DimkAsInteger
'**********SPACE**********
s=0
'**********SPACE**********
Fork=1To100
'**********SPACE**********
s=s+1/(1+k*4)
Nextk
Prints
EndSub
题号:
480【程序改错】
题目:
下面函数的功能是:
求变量s(s=a+aa+aaa+aaaa+……)的值。
其中,a是一个0-9的数字,总共累加a项。
例如,当a=3时,s=3+33+333(共累加3项)。
OptionExplicit
PublicSubCalc(aAsInteger)
DimsAsLong
DimtAsLong
DimiAsInteger
s=a
'**********FOUND**********
t=a
Fori=2Toa
'**********FOUND**********
t=t*10+a
s=s+t
Nexti
Calc=s
Prints
EndFunction
PrivateSubCommand1_Click()
DimiAsInteger
i=InputBox("请输入数字(0-9):
")
'**********FOUND**********
CallCalc(i)
EndSub
题号:
344【程序设计】
题目:
有一根长度为200米的钢材,要将它截取为两种规格的短料,规格的长度分别为a米、b米。
每种至少两段。
编写函数fun,'求出分割成两种规格后剩余残料r最少的值,并显示。
如:
'a为31、b为41时,则显示"15"
要求使用For语句来实现。
'注意:
请在指定的事件内编写代码
代码只能写在两行标识之间
不得修改已有代码
保存时不得修改窗体和工程文件的名称及路径,否则后果自负。
PrivateFunctionfun(aAsInteger,bAsInteger)AsString
'**********Program**********
Dimr!
t!
a0%,b0%
r=200
Forb0=2To(200-a)\b
Fora0=2To(200-b*b0)\a
t=200-b0*b-a0*a
Ift>=0Andt r=t EndIf Nexta0 Nextb0 fun=r '**********End********** EndFunction PrivateSubForm_Load() Show Printfun(51,61) NJIT_VB EndSub 题号: 511'【程序填空】 '功能: 程序输出结果为: n=3x=42y=9 PrivateSubCommand1_Click() Dimn,x,yAsInteger '**********SPACE********** n=0: x=1: y=0 DoWhilex<20 '**********SPACE********** n=n+1 y=x+y x=x*(x+1) '**********SPACE********** loop Form1.Print"n="&Str(n) Form1.Print"x="&Str(x) Form1.Print"y="&Str(y) EndSub 题号: 476'【程序改错】 '题目: 由输入对话框输入n(设n为大于零且小于30的自然数), 计算如图1所示的表达式,并在标签框Label1上显示。 OptionExplicit PrivateSubForm_Click() DimnAsInteger,sumAsDouble,kAsInteger n=Val(InputBox("n=","请输入自然数n(n>0且n<30)")) '**********FOUND********** DoWhilen<=0Orn>=30 n=Val(InputBox("n=","请重输入")) Loop sum=0 k=0 Do '**********FOUND********** k=1+k sum=sum+1/(k*(k+1)) '**********FOUND********** LoopUntilk>=n Label1.Caption="Sum="+Str(sum) EndSub 题号: 135'【程序设计】 '题目: (事件)双击窗体。 (响应)求s=1+1×2+1×2×3+…+1×2×3×…×10,并将结果存到变量S中 Dimi,jAsInteger DimkAsLong k=1 s=0 Fori=1To10 Forj=1Toi k=k*j Next s=s+k k=1 Next Print(CStr(s)) 题号: 603'【程序填空】 '功能: 本程序段将一个十进制整数m转换成r(2-16)进制字符串 '方法: 将m不断除r取余数,直到商为零,以反序得到结果。 FunctionTranDec$(ByValm%,ByValr%) DimStrDtoR$ DimiB%,mr% StrDtoR="" DoWhilem<>0 '**********SPACE********** mr=mmodr m=m\r Ifmr>=10Then '**********SPACE********** StrDtoR=Chr(mr-10+65)&StrDtoR Else StrDtoR=mr&StrDtoR EndIf Loop TranDec=StrDtoR EndFunction PrivateSubCommand1_click() Dimm0%,r0%,i% m0=Val(Text1.Text) r0=Val(Text2.Text) Ifr0<2Orr0>16Then i=MsgBox("输入的R进制数超出范围",vbRetryCancel) Ifi=vbRetryThen Text2.Text="" Text2.SetFocus Else End EndIf EndIf Label3.Caption="转换成"&r0&"进制数" '**********SPACE********** Text3.Text=TranDec(m0,r0) EndSub 题号: 477'【程序改错】 '题目: 用输入对话框输入x,根据公式(图1)计算对应的y, 并在窗体上输出y的值。 OptionExplicit PrivateSubCommand1_Click() DimxAsSingle,yAsSingle x=Val(InputBox("Pleaseinputx: ","输入X的值")) Ifx=10Then y=0 '**********FOUND********** Elseifx>10Then '**********FOUND********** y=Sqr(x)+Sin(x) Else '**********FOUND********** y=2*x^3+6 EndIf Printy EndSub 题号: 481'【程序设计】 '题目: 编写函数fun其功能是: 根据整型形参m, '计算如下公式的值: y=1+1/3+1/5+1/7+...+1/(2m+1) 例如: 若m=9,则应输出: 2.133255 DimyAsDouble DimiAsInteger y=1 Fori=1Tom y=y+1/(2*i+1) Next fun=y 题号: 498'【程序填空】 '功能: 本程序执行功能为,命令按钮单击一次后,窗体上输出结果为: '36 '25 '16 '9 PrivateSubCommand1_Click() Dimxx(6)AsInteger Dimk% OpenApp.Path&"\al.dat"ForOutputAs#1 ForI=1To6 '**********SPACE********** j=I*I Print#1,j NextI Close#1 OpenApp.Path&"\al.dat"ForInputAs#2 k=0 DoWhileNotEOF (2) '**********SPACE********** k=k+1 Input#2,xx(k) Loop Close#2 '**********SPACE********** ForI=kTok/2Step-1 Form1.Printxx(I) NextI EndSub 题号: 141'【程序改错】 题目: 输出40以内能够被3整除的数,要求输出结果为5个数一行。 OptionExplicit PrivateSubForm_Click() Cls DimxAsInteger DimiAsInteger '**********FOUND********** i=0 Forx=1To40 If(x/3)=(x\3)Then '**********FOUND********** Printx; i=i+1 EndIf '**********FOUND********** IfiMod5=0Then Print EndIf Nextx EndSub 题号: 152'【程序设计】 '题目: (事件)双击窗体。 (响应)求1+2+3+5+8+13+……前20项的和,并将结果在窗体上输出。 将结果存入变量SUM中。 DimiAsInteger Dimj(1To20)AsInteger Fori=1To20 Ifi<3Then j(i)=i Else j(i)=j(i-1)+j(i-2) EndIf sum=sum+j(i) Next Printsum 题号: 43'【程序填空】 '功能: 下面的程序段用于实现以下功能: 利用冒泡法将一组整数 从小到大排序。 PrivateSubForm_Click() Constn=15 Dima(1Ton)AsInteger,workAsBoolean DimiAsInteger,jAsInteger,xAsInteger Randomize Fori=1Ton a(i)=Int(90*Rnd)+10 Nexti Fori=1Ton Printa(i); Nexti Print '**********SPACE********** Fori=nTo2Step-1 work=True Forj=1Toi-1 Ifa(j)>a(j+1)Then x=a(j): a(j)=a(j+1): a(j+1)=x '**********SPACE********** Work=False EndIf Nextj '**********SPACE********** IfworkThenExitFor Nexti Fori=1Ton Printa(i); Nexti EndSub 题号: 494【程序改错】 '题目: 有5个人坐在一起,问第5个人多少岁? 他说比第4个人大2岁。 问第4个人岁数,他说比第3个人大2岁。 问第3个人,又说比第2个人大2岁。 问第2个人,说比第1个人大2岁。 最后问第1个人,他说是10岁。 请问第5个人有多大岁数。 OptionExplicit FunctionAge(ByValNAsInteger) '**********FOUND********** IfN=1Then Age=10 Else '**********FOUND********** Age=Age(N-1)+2 EndIf EndFunction PrivateSubForm_Click() '**********FOUND********** PrintAge(5) EndSub 题号: 135'【程序设计】 '题目: (事件)双击窗体。 s=1+1×2+1×2×3+…+1×2×3×…×10,并将结果存到变量S中 Dimi,jAsInteger DimkAsLong k=1 s=0 Fori=1To10 Forj=1Toi k=k*j Next s=s+k k=1 Next Print(CStr(s)) 题号: 615'【程序填空】 '如图所示: 有10辆车,键盘上输入车型、车的颜色、车号,把车号尾数为5的车挑选出来。 当车型输入为-1时,停止输入? 请完善程序? PrivateSubCommand1_Click() Print"车牌号最末位为5的车是: " Print"车型","颜色","车号" Do a=InputBox("请输入车型") '**********SPACE********** IfVal(a)=-1ThenExitdo b=InputBox("请输入车的颜色") c=InputBox("请输入车号") '**********SPACE********** IfRight(c,1)=5Then Printa,b,c EndIf Loop EndSub 题号: 490'【程序改错】 '题目: 输入一个字符串,将所有的小写字母都转换为大写字母。 OptionExplicit PrivateSubForm_Click() Dims1AsString,s2AsString,iAsInteger,tAsString s1=InputBox("输入字符串,#号结束") i=1 '**********FOUND********** t=Mid(s1,i,1) Whilet<>"#" '**********FOUND********** Ift>="a"Andt<="z"Thent=Chr(Asc(t)-32) s2=s2+t i=i+1 t=Mid(s1,i,1) Wend '**********FOUND********** Print"新字符串为: ";s1 EndSub 题号: 147'【程序设计】 '题目: (事件)双击窗体。 (响应)求出50以内所有奇数的和。 将结果存入变量SUM中。 DimiAsInteger Fori=1To50 IfiMod2=1Then sum=sum+i EndIf Next Printsum 题号: 501'【程序填空】 '功能: 本程序执行后,最终在窗体上打印数字7。 PrivateSubCommand1_Click() DimaAsString '**********SPACE********** OpenApp.Path&"\abc.bat"ForOutputAs#1 n=8 ForI=1Ton Print#1,I+1 NextI Close#1 '**********SPACE********** OpenApp.Path&"\abc.bat"ForInputAs#1 ForI=1Ton Input#1,a IfIMod5=0Then '**********SPACE********** PrintCInt(a)+1 EndIf NextI Close#1 EndSub 题号: 128'【程序改错】 '题目: 下面的程序段用于删除数组中指定位置的数字,如果位置错误给出提示,否则分别显示删除前后的数组元素 OptionExplicit PrivateSubForm_Click() Dima(10)AsInteger,xAsInteger DimiAsInteger,kAsInteger Fori=1To10 a(i)=Int(Rnd*90)+10 Printa(i); Nexti Print x=InputBox("请输入要删除第几位数字") '**********FOUND********** Ifx>0Then '**********FOUND********** Fork=xTo9 '**********FOUND********** a(k)=a(k+1) Nextk Print"删除后的数组: " Fori=1To9 Printa(i); Nexti Else Print"删除位置错误" EndIf EndSub 题号: 492'【程序设计】 题目: (事件)单击窗体。 (响应)已知sum=-1! +1/2! -1/3! ...+1/10! 请将sum结果值输出到窗体上。 使用dowhile...loop语句完成程序 DimiAsInteger i=1: p=1 DoWhilei<=10 p=p*i sum=sum+1/p*(-1)^i i=i+1 Loop Printsum 题号: 599'【程序填空】 '功能: 以下程序段实现的功能是: 查找一数列中是否存在某数字x, '若数列中存在该数字,则输出其出现的次数,否则输出不存在信息。 PrivateFunctionSearch(a()AsInteger,ByValkey,n%)AsBoolean Dimi% Search=False '**********SPACE********** Fori=LBound(a)ToUBound(a) Ifkey=a(i)Then Search=True '**********SPACE********** n=n+1 EndIf Nexti EndFunction PrivateSubForm_Click() DimxAsInteger,kAsInteger,numAsInteger Dimb()AsInteger num=Int(Rnd*10)+1 ReDimb(num) Fori=0Tonum b(i)=Int(Rnd*70)+20 Printb(i); Nexti Print x=Val(InputBox("输入待查找数据")) '**********SPACE********** IfSearch(b(),x,k)Then '**********SPACE********** Printx;"在数列中出现";k;"次" Else Printx;"未在数列中出现" EndIf EndSub 题号: 457'【程序改错】 '题目: 单击"开始"命令按钮,秒表开始计时,单击"结束"命令按钮,秒表结束计时,并在标签框显示运行时间,如"运行了0小时2分10秒"。 OptionExplicit DimxAsLong DimhAsInteger,mAsInteger,sAsInteger PrivateSubForm_Load() Form1.Caption="动态秒表(小时: 分: 秒)" Command1.Caption="开始[&S]" Command2.Caption="结束[&E]" Label1.Alignment=2 Label1.Caption="0: 0: 0" Timer1.Interval=1000 Timer1.Enabled=False x=0 EndSub PrivateSubCommand1_Click() '**********FOUND********** Timer1.Enabled=True EndSub PrivateSubCommand2_Click() '**********FOUND********** Timer1.Enabled=False x=0 Label1.Caption="运行了"+Str(h)+"小时"+Str(m)+"分"+Str(s)+"秒" EndSub PrivateSubTimer1_Timer() x=x+1 h=x\3600 m=(xMod3600)\60 '**********FOUND********** s=(xMod3600)Mod60 Label1.Caption=Str(h)+": "+Str(m)+": "+Str(s) End
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 期末 复习资料