vb第四章选择结构和循环结构编程题.docx
《vb第四章选择结构和循环结构编程题.docx》由会员分享,可在线阅读,更多相关《vb第四章选择结构和循环结构编程题.docx(15页珍藏版)》请在冰豆网上搜索。
vb第四章选择结构和循环结构编程题
第四章编程题
1.查询分数题
PrivateSubForm_Load()
x=Val(InputBox("请输入分数","输入",0))
SelectCasex
CaseIs<0
Label1.Caption="输入有误"
CaseIs>100
Label1.Caption="输入有误"
CaseIs>=90
Label1.Caption="优秀"
CaseIs>=80
Label1.Caption="良好"
CaseIs>=70
Label1.Caption="一般"
CaseIs>=60
Label1.Caption="及格"
CaseIs<60
Label1.Caption="不及格"
EndSelect
EndSub
2.求最大公约数题
PrivateSubCommand1_Click()
DimmAsInteger,nAsInteger,pAsInteger
m=Val(Text1.Text)
n=Val(Text2.Text)
Ifm<0Orn<0Then
MsgBox"数据错误!
"
End
EndIf
p=mModn
DoWhilep<>o
m=n
n=p
p=mModn
Loop
Text3.Text=n
EndSub
2.1最小公倍数
PrivateSubCommand1_Click()
DimmAsInteger,nAsInteger,pAsInteger,tAsInteger
m=Val(Text1.Text)
n=Val(Text2.Text)
t=m*n
Ifm<0Orn<0Then
MsgBox"数据错误!
"
End
EndIf
Ifm=0Orn=0Then
Text3.Text=0
Else
Do
p=mModn
Ifp=0Then
ExitDo
EndIf
m=n
n=p
LoopUntilFalse
Text3.Text=t/n
EndIf
EndSub
3.九九乘法表
PrivateSubCommand1_Click()
DimIAsInteger,JAsInteger,MAsInteger,sAsString
ForI=1To9
s=""
ForJ=1ToI
M=I*J
s=s&J&"*"&I&"="&M&""
NextJ
List1.AddItems
NextI
EndSub
4.求ABCD—CDC=ABC题
PrivateSubCommand1_Click()
Fora=1To9:
Forb=0To9
Forc=1To9:
Ford=0To9
x=a*1000+b*100+10*c+d
y=c*100+d*10+c
z=a*100+b*10+c
Ifx-y=zThen
Printx;y;z
EndIf
Next
Next
Next
Next
EndSub
5.求前100项和,平均数题
PrivateSubForm_click()
n=1:
s=0
DoWhilen<=100
s=s+n
n=n+1
Loop
Prints,n-1,s/(n-1),s*(n-1)
EndSub
6.输入10个数找出正数,负数,零的个数
PrivateSubCommand1_Click()
Dimi,t,x1,x2,x3AsInteger
Fori=1To10
t=Val(InputBox("请输入第"&i&"个数:
","显示",0))
Ift>0Then
x1=x1+1
ElseIft<0Then
x2=x2+1
Else
x3=x3+1
EndIf
Next
Print"正数的个数:
"&x1
Print"负数的个数:
"&x2
Print"零的个数:
"&x3
EndSub
7.Fibonacci数列(用数组做)
PrivateSubForm_Load()
Fori=1To30
List1.AddItemFib(i)
Next
EndSub
PrivateFunctionFib(n)
Ifn<3Then
Fib=1
Else
Fib=Fib(n-1)+Fib(n-2)
EndIf
EndFunction
PrivateSubList1_Click()
List1.AddItem=Fib
EndSub
8.输入十个数打印并找出最大数,最小数
PrivateSubCommand1_Click()
Dima(9),i,max,minAsInteger
Fori=0To9
a(i)=Val(InputBox("请输入第"&i+1&"个数:
"))
Printa(i);
Next
max=a(0)
Fori=0To9
Ifa(i)>maxThenmax=a(i)
Ifa(i)Next
Print
Print
Print
Print"最大数为:
"&max;"最小数为:
"&min
EndSub
9.100元换成40张等值的10,5,2,1的钱的题
PrivateSubCommand1_Click()
Forx=1To10
Fory=1To20
Forz=1To50
w=40-x-y-z
If10*x+5*y+2*z+w=100Andx*y*z*w>0Then
h=Format(x,"@@@@")&Format(y,"@@@@@")_
&Format(z,"@@@@@")&Format(w,"@@@@@")
List1.AddItemh
EndIf
Nextz
Nexty
Nextx
EndSub
10.找出三位数的回文数并打印,并求其个数
PrivateSubCommand1_Click()
DimnAsInteger
Forn=101To999
a=Int(n/100)
b=Int((n-a*100)/10)
c=n-a*100-b*10
Ifa=cThenList1.AddItemn
Next
PrintList1.ListCount
EndSub
10-2回文字判断
1)按定义判断
先求出字符串的反序字符串,然后和原字符串比较,如果相等则是回文,否则不是回文。
DimstrAsString,iAsInteger
'以下求Text1中文本的反序串str
Fori=1ToLen(Text1)
str=Mid(Text1,i,1)&str
Nexti
Ifstr=Text1ThenMsgBox"是回文"ElseMsgBox"不是回文"
(2)首尾字符的成对比较
将字符串折半比较,若每对字符都相等则是回文,否则只要有一对字符不等就不是回文。
DimiAsInteger
Fori=1ToLen(Text1)\2
IfMid(Text1,i,1)<>Mid(Text1,Len(Text1)-i+1,1)ThenExitFor
Nexti
Ifi>Len(Text1)\2ThenMsgBox"是回文"ElseMsgBox"不是回文"
11.求1-10之间阶乘题
PrivateSubCommand1_Click()
DimiAsInteger,sAsDouble
i=1
DoWhilei<=10
s=1
Forj=1Toi
s=s*j
Nextj
Printi;"!
=";s
i=i+1
Loop
EndSub
12.水仙花题
PrivateSubCommand1_Click()
DimiAsInteger,mAsInteger
Fori=100To999
m=(iMod10)^3+_
(i\10Mod10)^3+(i\100)^3
Ifm=iThenPrinti
Nexti
EndSub
PrivateSubCommand2_Click()
Fora=1To9:
Forb=0To9:
Forc=0To9
x=a*100+b*10+c
Ifx=a^3+b^3+c^3Then
Printx
EndIf
Next
Next
Next
EndSub
13.打印菱形
PrivateSubCommand1_Click()
Fori=1To5
PrintSpc(6-i);
Forj=1Toi
PrintSpc
(1);"*";
Nextj
Print
Nexti
Fori=5To1Step-1
PrintSpc(6-i);
Forj=1Toi
PrintSpc
(1);"*";
Nextj
Print
Nexti
EndSub
14.用Do循环设计例4.11中的s=1×2×3×…×n的值,其中n由输入对话框获得。
PrivateSubCommand1_Click()
n=InputBox("请输入n的值:
","输入")
s=1
i=1
Do
Ifi>Val(n)ThenExitDo
s=s*i
i=i+1
Loop
MsgBox"s="+Str(s),0,"计算结果"
EndSub
15.求由数字0、1、2、3、4组成的所有无重复数字的3位正整数。
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger,cAsInteger,nAsInteger
Fora=1To4
Forb=0To4
Forc=0To4
Ifa<>bAndb<>cAnda<>cThen
Printa*100+b*10+c;或为List1.AddItema*100+b*10+c
n=n+1
IfnMod5=0ThenPrint
EndIf
Nextc
Nextb
Nexta
EndSub
课后题
1.
PrivateSubCommand1_Click()
x=Val(InputBox("请输入一个数","显示",0))
Ifx>0Thenx=MsgBox("是正数",48,显示)
Ifx=0Thenx=MsgBox("是零",48,显示)
Ifx<0Thenx=MsgBox("是负数",64,显示)
EndSub
2.
PrivateSubCommand1_Click()
DimaAsSingle
DimbAsSingle
DimcAsSingle
DimtAsSingle
a=Val(InputBox("请输入第一个数","从大到小排序",0))
b=Val(InputBox("请输入第二个数","从大到小排序",0))
c=Val(InputBox("请输入第三个数","从大到小排序",0))
Ifaa=b:
b=t
Ifaa=c:
c=t
Ifbb=c:
c=t
Print"从大到小的顺序为:
";a;b;c
EndSub
3.
PrivateSubCommand1_Click()
StaticnAsInteger
x=Text1.Text
Ifx="123"Then
Label1.Caption="欢迎进入本系统"
Else
Label1.Caption="输入错误"
n=n+1
Ifn=3ThenEnd
EndIf
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
EndSub
4.
PrivateSubCommand1_Click()
IfLeft(Text1.Text,2)=1Then
Text2.Text="一年级"
Else
IfLeft(Text1.Text,2)=2Then
Text2.Text="二年级"
Else
IfLeft(Text1.Text,2)=3Then
Text2.Text="三年级"
Else
IfLeft(Text1.Text,2)=4Then
Text2.Text="四年级"
Else
Text2.Text="输入错误"
EndIf
EndIf
EndIf
EndIf
IfMid(Text1.Text,5,1)=2Then
Text3.Text="博士生"
Else
IfMid(Text1.Text,5,1)=3Then
Text3.Text="硕士生"
Else
IfMid(Text1.Text,5,1)=4Then
Text3.Text="本科生"
Else
IfMid(Text1.Text,5,1)=5Then
Text3.Text="专科生"
Else
Text3.Text="输入错误"
EndIf
EndIf
EndIf
EndIf
EndSub
5.
PrivateSubCommand1_Click()
DimxAsInteger
Forx=100To200
IfxMod3=0OrxMod5=0Then
List1.AddItemx
EndIf
Next
PrintList1.ListCount
EndSub
6.
PrivateSubCommand1_Click()
a=1:
b=1
List1.AddItema
List1.AddItemb
Forn=1To28
c=a+b
a=b
b=c
List1.AddItemc
Next
EndSub
7.完备数
PrivateSubCommand1_Click()
Dimm,i,j,s
j="结果:
"
Form=2To1000
s=0
Fori=1Tom-1
IfmModi=0Thens=s+i
Next
Ifs=mThenj=j&m&","
Next
Printj
EndSub
PrivateSubCommand2_Click()
DimmAsInteger,sAsInteger
Form=2To1000
s=0
Fori=1Tom-1
IfmModi=0Thens=s+i
Next
Ifs=mThenPrintm
Next
EndSub
8.
PrivateSubCommand1_Click()
Timer1.Enabled=True
Timer1.Interval=1000
EndSub
PrivateSubTimer1_Timer()
Text1.Text=Val(Text1.Text)-1
IfText1.Text=0Then
y=MsgBox("预定时间到了",64,"倒计时")
End
EndIf
EndSub
9.
PrivateSubOption1_Click()
r=Val(Text1.Text)
s=3.*r^2
Print"圆的面积为:
"&s
EndSub
PrivateSubOption2_Click()
r=Val(Text1.Text)
c=2*3.*r
Print"圆的周长为:
"&c
EndSub
10.
PrivateSubCombo1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
Fork=0ToCombo1.ListCount-1
IfCombo1.Text=Combo1.List(k)Then
Label1.Caption="输入项已存在组合框中"
ExitSub
EndIf
Nextk
Combo1.AddItemCombo1.Text
Label1.Caption="已添加输入项"
EndIf
EndSub