金陵科技学院VB期末考题目目2.docx
- 文档编号:895019
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:26
- 大小:154.65KB
金陵科技学院VB期末考题目目2.docx
《金陵科技学院VB期末考题目目2.docx》由会员分享,可在线阅读,更多相关《金陵科技学院VB期末考题目目2.docx(26页珍藏版)》请在冰点文库上搜索。
金陵科技学院VB期末考题目目2
金陵科技学院2012-2013年第一学期VisualBasic期末考试范围(题目及答案)
M12机械设计制造及其自动化(专转本)—丁世斌
整理于2012/12/27
三.程序填空。
1.补充程序,实现闰年的判断。
闰年年份能被4整除且不能被100整除,或能被400整除。
PrivateSubCommand1_Click()
DimystrAsString,yAsInteger,y4AsInteger,y100AsInteger,y400AsInteger
ystr=InputBox("请输入年份","闰年判断")
y=Val(ystr)
y4=yMod4
y100=yMod100
y400=yMod400
If(y4=0andy100<>0)ory400=0Then
Printy;"是闰年"
Else
Printy;"不是闰年"
EndIf
EndSub
2.数列问题
下面程序的功能是求π的近似值,当第n项的绝对值小于10
时终止计算。
OptionExplicit
PrivateSubCommand1_Click()
DimnAsLong,sAsSingle,tAsSingle,piAsSingle
Consteps=0.00001
n=1
t=1
s=0
Do
s=s+t
n=n+1
t=(-)^(n+1)/(2*n-1)
LoopUntilAbs(t) pi=s*4 Label1.Caption="π的近似值为: " Text1=pi EndSub 3.进制转换的问题 本程序的功能是将某个10进制数转化为16进制,请完善本程序。 Privatesubcommand1_click() Dimnasinteger,pAsInteger,qAsString*1,stasString,dasinteger n=208 d=n Do P=dmod16 Ifp>9Then q=Chr(55+p) Else q=Cstr(p) EndIf St=q&st d=d\16 LoopUntild=0 Printn&“的16进制为: ”&st Endsub 4.数列问题 下面程序的功能是求序列: 1/2、2/3、3/5、5/8、8/13、……前若干项的和,项数由文本框输入。 试完善程序使其达到功能要求。 OptionExplicit PrivateSubcommand1_click() DimnAsInteger,a1AsInteger,a2AsInteger DimiAsInteger,tAsSingle,sAsSingle n=Val(Text1.Text) a1=1 a2=2 Fori=1Ton t=a1/a2 s=s+t a2=a1+a2 a1=a2-a1 Nexti Text2=s EndSub 5.进制转换问题 本程序的功能是将某个十进制数转换成一个8位的二进制数,请完善本程序,如110->01101110,1->00000001。 PrivateSubcommand1_click() DimnAsInteger,bAsInteger,iAsInteger,sAsString n=110 DoWhilen>0 b=nMod2 n=n\2 ___s=s&b_______________________ Loop Fori=1To8-Len(s) s=s&mid(s,i,1) Nexti Printn&″的二进制为″&s EndSub 6.本程序模拟裁判评分。 设有8名裁判,打分范围为7.0到10.0(小数点后取1位),去掉一个最高分和一个最低分后,所得总分的平均分就是选手最后得分(四舍五入,保留l位小数)。 图2-1模拟裁判评分 PrivateSubCommand1_Click() Dimscore(8)AsSingle,iAsInteger,maxvAsSingle DimminvAsSingle,avAsSingle,sumAsSinde Fori=1To8 score(i)=(Int(Rnd*31)+70)/1O Text1=Text1&Str(score(i))&”” sum=sum+score(i) Nexti maxv=score (1): minv=score (1) fori=1to8 Ifscore(i)>maxvThen maxv=score(i) Elseifscore(i) minv=score(i) EndIf Nexti av=(sum-maxv-minv)/6 Text2=str(format(av,”0.0”)) EndSub 7.下面程序为一查找程序,数组大小N由Inputbox输入,待查找的数X也是由Inputbox输入,若找到返回下标值,找不到返回0。 请完善下列程序。 PrivateSubCommand1_Click() DimnAsInteger,pAsInteger,a()AsInteger n=InputBox("请输入数组元素的个数N") redima(val(n)) Fori=1Ton a(i)=Int(Rnd*90+10) Printa(i); Nexti Print x=InputBox("请输入要找的数X") p=0 DoWhilep p=p+1 Loop Ifp=nandx<>a(n)Thenp=0 Printp EndSub 8.产生10个两位随机整数,用冒泡排序对10个数按升序排列。 OptionBase1 PrivateSubCommand1_Click() DimrndArray(10)AsInteger DimiAsInteger,jAsInteger,tempAsInteger Randomize Picture1.Print"排序前: " Fori=1To10 rndArray(i)=Int(90*Rnd+10) Picture1.PrintrndArray(i); Nexti Fori=1To9 Forj=1to10-i Ifa(j)>a(j+1)Then temp=a(j) a(j)=a(j+1)a(j+1)=temp EndIf Nextj Nexti Picture1.Print Picture1.Print"排序后: " Fori=1To10 Picture1.PrintrndArray(i); Nexti EndSub 9.下面程序的功能是: 已有一组汉字以16进制数形式表示的数据,从中找出每一个汉字代码(每个汉字表示为两个字节)。 试完善程序使其达到功能要求。 图2-5找汉字代码 OptionExplicit PrivateSubcommand1_click() Dimst()AsString,pAsString,kAsInteger DimnAsInteger,iAsInteger p=Trim(Text1) Do n=InStr(p,"")‘在变量p中查找第一个空格出现的位置 Iflen(p)>2Then k=k+1 ReDimPreservest(k) st(k)=Left(p,n-1) p=Right(p,Len(p)-n) Else ReDimPreservest(k+1) st(k+1)=p EndIf LoopUntiln=0 Fori=1ToUBound(st)–1 List1.AddItemst(i)&","&st(i+1) i=i+1 Nexti EndSub 10.本程序的功能是,利用下列公式求函数cos(x)的近似值,规定通项的绝对值<=10-6时结束计算。 请完善本程序。 通过公式可知: OptionExplicit PrivateSubCommand1_Click() DimSAsSingle,TAsSingle,KAsInteger,xAsSingle ConstepsAsSingle=0.000001 x=Val(Textl) k=1 S=1 T=1 Do T=t*(-1)*x^2/((2*k-1)*(2*k)) S=S+T K=K+1 LoopWhileAbs(t)>eps Text2=S EndSub 11.用以下公式求Sin(x)的值.当级数通项的绝对值小与eps=10^-7时停止计算,x的值由键盘输入。 n=0,1,2…. 请完善如下程序 OptionExplicit PrivateSubFormClick() DimxAsDouble,tAsDouble,nAsInteger,sumAsDouble Consteps=0.0000001 X=Val(InputBox(“请输入x: ”)) t=1 sum=x n=1 DoUntilt t=-t t=(t*x^2)/((2*n+1)*2*n) sum=sum+t n=n+1 Loop Print“Sin(“;x;”)=”;Format(sum,“0.000”) EndSub 12.下面程序的功能是求序列: 1/2、2/3、3/5、5/8、8/13、……前若干项的和,项数由文本框输入。 试完善程序使其达到功能要求。 OptionExplicit PrivateSubcommand1_click() DimnAsInteger,a1AsInteger,a2AsInteger DimiAsInteger,tAsSingle,sAsSingle n=Val(Text1.Text) a1=1 a2=2 Fori=1Ton t=a1/a2 s=s+t a2=a1+a2 a1=a2-a1 Nexti Text2=s EndSub 13.下面程序的功能是计算s=1- n≤9的值。 请完善如下程序: OptionExplicit PrivateSubCommand1_Click() DimnAsInteger,stAsString,iAsInteger DimkAsSingle,sAsSingle,jAsInteger n=Text1 s=1 Fori=2Ton __st=””______________ Forj=1Toi st=st&CStr(i) nextj k=____1/st__________ s=s+k Nexti Text2=s EndSub 14.本程序的功能是将某一位的16进制数转换为一个四位的2进制数,请完善本程序,如A->1010,3->0011。 Privatesubcommand1_click() DimsasString,stAsString,iAsInteger,pasString s=″A″ st=″0123456789ABCDEF″ Fori=1ToLen(st) If____mid(st,I,1)=s__________ThenExitFor Nexti i=i-1 Do p=__(Imod2)&p___________ i=i\2 LoopUntili<=0 Prints&″的二进制为″&P EndSub 15.本程序的功能是找出一组连续的整数,它们的和数等于给定的数。 通常给定一个数,可能会找出多组符合要求的连续整数。 查找的方法是穷举法。 请完善本程序。 程序界面见图。 图2-11求等于给定和数的连续整数序列 OptionExplicit PrivateSubCmdRun_Click() DimmAsInteger,sumAsInteger,stAsString DimiAsInteger,jAsInteger,kAsInteger m=Text1 Fori=1Tom-1 _____sum=0___________ Forj=iTom sum=____sum+j____________ Ifsum=mThen st=""'st赋以空值 Fork=iToj st=st&k&“+” Nextk List1.AddItemLeft(st,Len(st)-1) EndIf Nextj Nexti EndSub 16.下面是一个加密/解密程序。 加密的算法是: 将原文中每个字符的ASCII代码加上该字符在原文中的位置数(设字符在原文中是第n个字符,则其位置数是n被10除的余数,当余数为0时,其位置数为10。 例如,原文字符串为"meetmeatsunset",第一个字符"m",其位置数为1,而"s"为第12个字符,其位置数是被10除的余数2,其余依此类推)作为密文字符的代码,再将密码字符逆序排列(例如ABCD,逆序排列为DCBA)即为密文。 解密算法是加密算法的逆运算。 OptionExplicit OptionBase1 PrivateSubCommand1_Click()'加密 DimencAsString,decAsString,iAsInteger DimsAsString*1,nAsInteger dec=Text1 Fori=1ToLen(dec) s=Mid(dec,i,1) _n=Imod10_________________ Ifn=0Thenn=10 enc=Chr(Asc(s)+n)&enc Nexti Text2=enc EndSub PrivateSubCommand2_Click()'解密 DimencAsString,decAsString,iAsInteger DimnAsInteger,sAsString*1,pAsInteger enc=Text2 n=len(enc) Fori=1Ton s=Mid(enc,i,1) p=nMod10 Ifp=0Thenp=10 dec=chr(asc(s)-p)&dec n=n-1 Nexti Text1=dec EndSub 17.下面程序的功能是随机生成小于100的诸素数组成的数组。 程序界面参见下图。 图2-12生成素数数组 PrivateSubCommand1_Click() Dimp()AsInteger,iAsInteger,nAsInteger,stAsString,kAsInteger Randomize k=InputBox("元素个数: ",,20) ReDimp(k) Do n=Int(Rnd*90)+10 If____prime(n)______________Then i=i+1 p(i)=n EndIf LoopUntil_____i=k_____________ Fori=1ToUBound(p) st=st&Str(p(i)) IfiMod10=0Thenst=st&vbCrLf Nexti Text1=st EndSub PrivateFunctionprime(nAsInteger)AsBoolean DimiAsInteger: prime=True Fori=2ToSqr(n) IfnModi=0Then ______prime=False ExitFor EndIf Nexti EndFunction 18.在计算机中用一个字节(8位)来存储一个字符的ASCII码,其中低7位二进制数对应字符的编码,每个字节的最高位一般保持为"0",在数据传输时可用作奇偶校验位。 传输时ASCII代码转换成传输码的方法是,若7位ASCII码有偶数个1,则最高位为1。 有奇数个1,则最高位为0。 例如字母"A"的ASCII码十进制表示为65,二进制表示为01000001。 "A"的传输码则为"11000001"。 本程序的功能就是把ASCII代码转换成这种传输码。 程序界面见图。 图2-13 求数据传输码 OptionExplicit PrivateSubCommand1_Click() DimiAsInteger,sAsString DimstrAsString,chAsString str=Text1.Text Fori=1ToLen(str) _ch=Mid(str,i,1)_________________ Callconvert(ch,s) List1.AddItemch&"==>"&s Nexti EndSub PrivateSubconvert(chAsString,sAsString) DimmAsInteger,kAsInteger,nAsInteger,iAsInteger __s=""_________________________ n=Asc(ch) DoWhilen>0 __m=nMod2_________________________ s=m&s Ifm=1Then k=k+1 EndIf n=n\2 Loop Fori=1To7-Len(s)'将字符的二进制代码补足7位 s="0"&s Nexti IfkMod2=0Then ______s="1"&s Else s="0"&s EndIf EndSub 19.本程序的功能是求-128~+127之间整数n的8位2进制补码。 采用的算法是: 若n>=0,则直接将其转换为相应的7位2进制数,'前面的符号位设定为"0";若n<0,则将n+128转换为相应的7位2进制数,前面的符号位设定为"1"。 请完善本程序。 程序界面见图。 图2-14求整数补码 PrivateSubCommand1_Click() DimdecAsInteger: dec=Text1 If_____dec>127Ordec<-128_____________Then MsgBox"无效数据,请重输! ",,"求补码" Text1="" Text1.SetFocus Else Text2=bm(dec) EndIf EndSub PrivateFunctionbm(nAsInteger)AsString IfSgn(n)>=0Then bm="0"&d2b(n) Else n=n+128 bm=____"1"&d2b(n)______________ EndIf EndFunction PrivateFunctiond2b(nAsInteger)AsString DimpAsInteger Do p=nMod2 d2b=CStr(p)&d2b n=n\2 LoopUntil__n=0________________ d2b=Right("000000"&d2b,7) EndFunction 20.定义方阵的一种范数为该方阵各列元素的绝对值之和中的最大值。 以下程序的功能是求一个4×4方阵的范数。 该方阵的数据是随机生成的-20~20之间的整数。 程序界面参见下图。 图2-15 求范数 OptionExplicit OptionBase1 PrivateSubCommand1_Click() Dima(4,4)AsInteger DimiAsInteger,jAsInteger Fori=1T04 Forj=1To4 a(i,j)=___Int(Rnd*41)–20________________________ Picture1.PrintRight(""&Str(a(i,j)),4); Nextj Picture1.Print Nexti Text1.Text=____fan(a)_______________________ EndSub PrivateFunctionfan(a()AsInteger)AsInteger Dimb(4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 金陵 科技学院 VB 期末 题目