VB 操作题题库 重要.docx
《VB 操作题题库 重要.docx》由会员分享,可在线阅读,更多相关《VB 操作题题库 重要.docx(21页珍藏版)》请在冰豆网上搜索。
VB操作题题库重要
1.'这是打印乘法九九表的程序,请完善程序。
PrivateSubForm_click()
DimiAsInteger
DimjAsInteger
①9
②i
③i*j
Fori=1To①
Forj=1To②
PrintTab((j-1)*12);
Printj;"*";i;"=";③;
Nextj
Print
Nexti
EndSub
2.
(1)'运行程序能够显示数字金字塔,请完善程序。
PrivateSubForm_Click()
DimiAsInteger,jAsInteger
Fori=1To①
PrintTab(10-i);
Forj=1To②
PrintStr(③);
Next④
Print
①4
②i
③i
④j
Nexti
EndSub
2.
(2)'运行程序能够显示数字金字塔,请完善程序。
PrivateSubForm_Click()
DimiAsInteger
DimjAsInteger
Fori=1To5
PrintTab(10-i);
Forj=1Toi
PrintStr(i);
Nextj
Print
Nexti
EndSub
3.输出平行四边形
PrivateSubCommand1_Click()
Dimi,jAsInteger
Fori=1To4
PrintTab(6-i);
Forj=1To4
Print"*";
Nextj
Print
Nexti
EndSub
4'本题是在text1中输入一位十六进制数码(若是字母要大写),
'运行程序后能译出它表示的十进制数的程序。
'请不要更改源程序的结构,删除原题里的①、②、③。
填写正确的代码,使程序完善
PrivateSubCommand1_Click()
DimmAsString
m=①
SelectCasem
Case"A"
m="10"
Case"B"
m="11"
①Text1.Text
②EndSelect
③m
Case"C"
m="12"
Case"D"
m="13"
Case"E"
m="14"
Case"F"
m="15"
②
Text2.Text=③
EndSub
5.文本框中输入一个三位正整数,求各位数字之和。
如输入835,计算8+3+5,在标签上输出结果16.
PrivateSubCommand1_Click()
DimaAsInteger
DimsAsInteger
①val
②3
③amod10
④a\10
a=①(Text1.Text)
Fori=1To②
s=s+③
a=④
Next
Label1.Caption=Str(s)
EndSub
6''回文字符串是指一个字符串从左往右读与从右往左读是一样的,'如"ABCBA","123321"等等。
编写程序,输入一个字符串,若是回文字符串,则输出"YES",否则输出"NO"。
'以下程序使用文本框Text1输入字符串,使用文本框Text2输出结果,
'请在程序的两个空格处填上相应的字句,使之完成相应的功能。
PrivateSubCommand1_Click()
①Len(s)
②Mid(s,Len(s)+1-i,1)
③Text2.Text=ok
DimsAsString
DimokAsString
DimiAsInteger
s=Text1.Text
ok="Yes"
Fori=1To①
IfMid(s,i,1)<>②Thenok="No"
Nexti
③
EndSub
7'输入一个数,判断该数是否为完数。
所谓完数即该数等于其因子之和。
'例如:
6=1+2+3;28=1+2+4+7+14。
若是完数则输出。
PrivateSubcmdPerfect_Click()
DimmAsInteger
DimsumAsInteger
DimsAsString
DimiAsInteger
s="1"
sum=1
①=Val(InputBox("输入一个正整数:
"))
①m
②sum+i
③s
Fori=2Tom-1
IfmModi=0Then
sum=②
s=s&"+"&Str(i)
EndIf
Nexti
Ifsum=mThen
Printm;"是完数"
Printm;"=";③'输出因子之和
Else
Printm;"不是完数"
EndIf
EndSub
8完善程序,使之能够随机产生10个100以内的整数,并找其中的最大数、最小数。
PrivateSubCommand1_Click()
Dima(10)AsInteger
DimmaxAsInteger
DimminAsInteger
Randomize
Print"产生10个随机整数:
";
Fori=1To10
a(i)=Int(Rnd*100)
Printa(i);
Nexti
Print
min=a
(1)
max=a
(1)
Fori=2To10
Ifa(i)Ifa(i)>maxThenmax=a(i)
Nexti
Print"最大数:
";max,"最小数:
";min
EndSub
9'下面是有趣的倒话游戏程序,请完善程序,使之能完成样张功能。
PrivateSubCommand1_Click()
DimxAsString
DimyAsString
x=Text1.Text
y=""
Fori=Len(x)To1Step-1
y=y+Mid(x,i,1)
Nexti
Text2.Text=y
EndSub
10.在文本框中分别输入数字后,单击交换按钮,实现两个值交换。
PrivateSubCommand1_Click()
DimaAsInteger
DimbAsInteger
①b
②t
③a
④b
DimtAsInteger
a=Val(Text1.Text)
b=Val(Text2.Text)
t=a
a=①
b=②
Text1.Text=③
Text2.Text=④
EndSub
11'中国邮政的EMS国际快递业务:
中国寄往澳大利亚的快递收费标准是:
'首个0.5公斤收费210元,其余的重量按55元/每千克计算,(总重不足
'0.5千克按210元收费)下面是自动计算寄费的程序,请你完善程序。
PrivateSubCommand1_Click()
DimxAsSingle,yAsSingle
①x
②EndIf
③Text2.Text
y=0
①=Val(Text1.Text)
Ifx>0.5Then
y=210+(x-0.5)*55
Else
y=210
②
③=Str(y)
EndSub
12'本题是青蛙跃井问题:
井底蛙欲沿湿滑井壁上跃至地面,若井深h尺,蛙上跃3尺下滑1尺,
'请给出井深h值,计算蛙上跃次数n。
PrivateSubCommand1_Click()
DimhAsSingle,nAsInteger
h=Val(①)
①Text1.Text
②1
③n
Ifh>3Then
IfhMod2=0Then
n=h/2
Else
n=(h-1)/2
EndIf
Else
n=②
EndIf
Text2.Text=③
EndSub
13'本题是从一串只含有字母或数字的字符串中找出所有大写字母,
'并把找出的大写字母显示在text2中。
'请不要更改源程序的结构,删除原题里的①、②、③。
填写正确的代码,使程序完善
PrivateSubCommand1_Click()
DimxAsString,yAsString
DimiAsInteger,nAsInteger
x=①
n=Len(x)
Fori=1To②
IfAsc(Mid(x,i,1))<91AndAsc(Mid(x,i,1))>64Then
y=y+Mid(x,i,1)
EndIf
Nexti
Text2.Text=③
EndSub
答案:
1)text1.text
2)n
3)y
14'完善程序,使之在运行程序后,能在窗体上显示样张所显示的图形。
'请不要更改源程序的结构,删除原题里的①、②、③。
填写正确的代码,使程序完善
PrivateSubForm_Click()
Line(600,200)-(1500,①),RGB(255,0,0)
Line(1500,200)-(1500,1000),RGB(0,0,255)
Line(1500,1000)-(600,1000),RGB(②)
Line(③,1000)-(600,200),RGB(0,0,255)
EndSub
答案:
1)200
2)255,0,0
3)600
15'该题是求丢番图年龄问题:
丢番图生命的1/6是童年,又过了1/12长胡子,再过了的1/7结婚,婚后5年生儿子,儿子活了父亲年龄的一半死亡,之后丢番图又过了4年死亡。
求丢番图年龄。
'请不要更改源程序的结构,删除原题里的①、②、③。
填写正确的代码,使程序完善
PrivateSubCommand1_Click()
DimnAsInteger
①n
②while
③Text1.Text
n=0
Do
①=n+1
Loop②n③=Str(n)
EndSub
16计算圆的面积
①Dim
②text1.text
③s
PrivateSubCommand1_Click()
Constpi=3.14
①r,sasSingle
r=Val(②)
s=pi*r*r
T2.Text=③
EndSub
17.格里高利公式
π/4=1-1/3+1/5-1/7+……,直到最后一项的值小于0.0001为止,输出π的值
'请不要更改源程序的结构,删除原题里的①、②、③、④。
填写正确的代码,使程序完善
PrivateSubCommand1_Click()
DimPiAsSingle,tAsSingle
DimnAsInteger,sAsSingle
Pi=0
t=1:
n=1:
s=1
DoWhileAbs(t)>=0.0001
Pi=Pi+t
n=n+2
s=-s
t=s/n
Loop
Pi=Pi*4
Print"Pi="&CStr(Pi)
EndSub
注意:
题目中出现的cstr和str函数是一个意思。
T12从文本框输入一个秒数ss,转换成小时、分钟、秒。
Label1显示“小时”、label2显示“分钟”、label3显示“秒”。
PrivateSubCommand1_Click()
Dimh,m,s,ssAsInteger
ss=Val(Text1.Text)
h=ss\3600
m=(ss-h*3600)\60
s=(ss-h*3600)Mod60
Label1.Caption=CStr(h)
Label2.Caption=CStr(m)
Label3.Caption=CStr(s)
EndSub
T181输入10个学生的成绩,输出最大值和最小值。
PrivateSubCommand1_Click()
Dimcj(10)AsSingle
DimiAsInteger
DimmaxAsSingle
DimminAsSingle
Fori=1To10
cj(i)=Val(InputBox("请输入10个学生的成绩","成绩输入"))
Nexti
max=cj
(1)
min=cj
(1)
Fori=2To10
Ifcj(i)>maxThen
max=cj(i)
EndIf
Ifcj(i)min=cj(i)
EndIf
Nexti
PrintCStr(max),CStr(min)
EndSub
T24小明出题(大概)
以上是题目大概界面
意思是:
第一、.点击出题按钮时,label1
和label2产生0-9两个随机数a和b。
尔后做题者把两数之和输入在文本框中。
第二、点击评判按钮,如果做题人输入结果正确,那么label3显示“正确”,否则label3显示“错误”。
第四、label6显示第几次出题。
Dima,b,c,x,nAsInteger
PrivateSubCommand1_Click()
Randomize
Label6.Caption="第"&n&"道题"
a=Int(Rnd*10)
b=Int(Rnd*10)
Label1.Caption=a
Label2.Caption=b
n=n+1
EndSub
PrivateSubCommand2_Click()
c=a+b
x=Val(Text1.Text)
Ifc=xThen
Label3.Caption="正确"
Else
Label3.Caption="错误"
EndIf
EndSub
PrivateSubForm_Load()
n=1
EndSub
T175用递归函数求1+2+……+100的和
PublicFunctionS(nAsInteger)AsInteger
Ifn=1Then
S=1
Else
S=n+S(n-1)
EndIf
EndFunction
PrivateSubCommand1_Click()
DimSumAsInteger
Sum=S(100)
Print"Sum="&CStr(Sum)
EndSub
T32向文本框1中输入一个三位数后,在文本框2中输出倒过来的三位数。
(比如输入123,输出321)
'请不要更改源程序的结构,删除原题里的①、②、③。
填写正确的代码,使程序完善
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger
DimbaiAsInteger,shiAsInteger
DimgAsInteger
a=Val(Text1.Text)
bai=a\100
shi=(a-bai*100)\10
g=aMod10
b=g*100+shi*10+bai
Text2.Text=CStr(b)
EndSub
T4从100-999中输出水仙花数。
(水仙花数满足各位立方和等于该数)案例1
'请不要更改源程序的结构,删除原题里的①、②、③。
填写正确的代码,使程序完善
PrivateSubCommand1_Click()
DimiAsInteger,aAsInteger,bAsInteger,cAsInteger
Fori=100To999
a=i\100
b=(i-a*100)\10
c=iMod10
Ifa^3+b^3+c^3=iThenPrinti
Nexti
EndSub
16,水仙花数(msgbox输出三位数,满足各位立方和等于该数)案例2
Dima,b,casinteger'a:
个位,b:
十位,c:
百位
Fora=0to9
Forb=0to9
Forc=1to9
Ifa^3+b^3+c^3=a+10*b+100*cthen
Msgbox100*c+10*b+a
Endif
Nextc
Nextb
Nexta
T43用递归法求菲薄那列数列。
'请不要更改源程序的结构,删除原题里的①、②、③。
填写正确的代码,使程序完善
PublicFunctionFib(nAsInteger)AsInteger
If(n=1)Or(n=2)Then
Fib=1
Else
Fib=Fib(n-1)+Fib(n-2)
EndIf
EndFunction
PrivateSubCommand1_Click()
DimSAsInteger
S=Fib(n)
Print"S="&CStr(S)
EndSub
T91随机产生100个随机整数,求偶数的个数
'请不要更改源程序的结构,删除原题里的①、②、③。
填写正确的代码,使程序完善
Dima(100)AsInteger
PrivateSubCommand1_Click()
DimtotalAsInteger
total=0
Fori=1To100
Ifa(i)Mod2=0Then
total=total+1
EndIf
Nexti
PrintCStr(total)
EndSub
PrivateSubForm_Load()
Randomize
Fori=1To100
a(i)=Int(Rnd*1000)
Nexti
EndSub
T94将数组a中的10个数按升序排列(冒泡排序)
'请不要更改源程序的结构,删除原题里的①、②、③、④。
填写正确的代码,使程序完善
PrivateSubCommand1_Click()
Dima(10)AsInteger
Fori=1To10
a(i)=Int(Rnd*1000)
Nexti
Fori=1To9
Forj=i+1to10
Ifa(i)>a(j)Then
a(0)=a(i)
a(i)=a(j)
a(j)=a(0)
EndIf
Nextj
Nexti
Fori=1To10
PrintCStr(a(i))
Nexti
EndSub
T60向文本框中输入半径r,在文本框2中显示面积(注意文本框1的名称为T1,文本框2的名称为T2)
'请不要更改源程序的结构,删除原题里的①、②、③。
填写正确的代码,使程序完善
PrivateSubCommand1_Click()
Constpi=3.14
Dimr,sasSingle
r=Val(T1.text)
s=pi*r*r
T2.Text=Str(s)
EndSub
T60'有一个qq密码忘记了,只记得密码是5位'且知道67**8,同时该密码能被67和78整除,求密码。
PrivateSubCommand1_Click()
DimxAsLong
Forx=67008To67998Step10
If(xMod67=0)Or(xMod78=0)Then
Printx
EndIf
Nextx
EndSub
18,选择题
x=text1.text
p=0
forI=1tolen(x)
ifmid(x,i,1)=”a”thenp=p+1
nextI
printp
执行上述代码,如果文本框中输入的是“Areyouhappy”,最后窗体上输出的是:
(A)
A1B11C6D5
注:
本题用于求解字符串中小写字母a的个数
T178用递归函数求3!
+5!
+7!
PublicFunctionFac(aAsInteger)AsInteger
Ifa=1Then
Fac=1
Else
Fac=a*fac(a-1)
EndIf
EndFunction
PrivateSubCommand1_Click()
DimSAsInteger
S=Fac(3)+Fac(5)+Fac(7)
Print"S="&CStr(S)
EndSub