金陵科技学院VB期末考题目目2.docx

上传人:b****2 文档编号:16916182 上传时间:2023-04-24 格式:DOCX 页数:26 大小:154.65KB
下载 相关 举报
金陵科技学院VB期末考题目目2.docx_第1页
第1页 / 共26页
金陵科技学院VB期末考题目目2.docx_第2页
第2页 / 共26页
金陵科技学院VB期末考题目目2.docx_第3页
第3页 / 共26页
金陵科技学院VB期末考题目目2.docx_第4页
第4页 / 共26页
金陵科技学院VB期末考题目目2.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

金陵科技学院VB期末考题目目2.docx

《金陵科技学院VB期末考题目目2.docx》由会员分享,可在线阅读,更多相关《金陵科技学院VB期末考题目目2.docx(26页珍藏版)》请在冰豆网上搜索。

金陵科技学院VB期末考题目目2.docx

金陵科技学院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

DoWhilepa(p)

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1