VB程序设计 习题及答案第5章 循环结构程序设计.docx
- 文档编号:5063569
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:21
- 大小:462.07KB
VB程序设计 习题及答案第5章 循环结构程序设计.docx
《VB程序设计 习题及答案第5章 循环结构程序设计.docx》由会员分享,可在线阅读,更多相关《VB程序设计 习题及答案第5章 循环结构程序设计.docx(21页珍藏版)》请在冰豆网上搜索。
VB程序设计习题及答案第5章循环结构程序设计
第5章循环结构程序设计
5.1试编程序,打印出自然数1到20的立方数。
【参考答案】
程序代码设计
PrivateSubForm_Click()
Form1.Print"x","x^2"
Forx=1To20
Form1.Printx,x^2
Nextx
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print"打印自然数1到20的立方数"
Form1.Print"单击窗体开始"
EndSub
程序运行结果如图5-1所示:
5.2试编程序,打印出1到500之间所有偶数的和。
【参考答案】
程序代码设计
PrivateSubCommand1_Click()
Sum=0
Fork=1To500
IfkMod2=0ThenSum=Sum+k
Nextk
Form1.Print"1到500的偶数和为:
";Sum
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print
Form1.Print"打印1到500之间所有偶数的和"
Form1.Print
EndSub
程序运行结果如图5-2所示:
5.3试编写打印下面图案的源程序。
*****
****
***
**
*
【参考答案】
程序代码设计
PrivateSubCommand1_Click()
Fori=1To5
Form1.PrintTab(5+i);
Forj=iTo5
Form1.Print"*";
Nextj
Form1.Print
Nexti
EndSub
程序运行结果如图5-3所示:
5.4试编写打印下面图案的源程序。
*
***
*****
*******
*****
***
*
【参考答案】
程序代码设计
PrivateSubCommand1_Click()
Fori=1To4
Form1.PrintTab(10-i);
Forj=1To2*i-1
Form1.Print"*";
Nextj
Form1.Print
Nexti
Fork=3To1Step-1
Form1.PrintTab(10-k);
Forj=1To2*k-1
Form1.Print"*";
Nextj
Form1.Print
Nextk
EndSub
程序运行结果如图5-4所示:
5.5编写程序,计算下面表达式的值
(1)1!
+3!
+5!
+……+(2N+1)!
【参考答案】
程序代码设计
PrivateSubCommand1_Click()
n=Val(InputBox("请输入N值"))
Sum=1
term=1
Fork=3To2*n+1Step2
term=term*(k-1)*k
Sum=Sum+term
Nextk
Form1.Print"1!
+3!
+5!
+……+(2N+1)!
=";Sum
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print"计算1!
+3!
+5!
+……+(2N+1)!
"
EndSub
运行结果:
若n输入的值为5,则程序运行结果如图5-5
(1)所示。
(2)1+X/2!
+X2/4!
+X3/6!
+……+XN/(2N)!
【参考答案】
程序代码设计
PrivateSubCommand1_Click()
x=Val(InputBox("请输入x值"))
n=Val(InputBox("请输入N值"))
Sum=1
t1=1
t2=1
Fork=2To2*nStep2
t1=t1*x
t2=t2*(k-1)*k
Sum=Sum+t1/t2
Nextk
Form1.Print"1+X/2!
+X^2/4!
+……+X^N/(2N)!
=";Sum
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print"计算1+X/2!
+X^2/4!
+……+X^N/(2N)!
"
EndSub
运行结果:
若x输入值为:
1.5,n输入值为:
5,则程序运行结果如图5-5
(2)所示。
(3)1+1×3+1×3×5+……+1×3×……(2N+1)
【参考答案】
程序代码设计
PrivateSubCommand1_Click()
n=Val(InputBox("请输入N值"))
Sum=1
term=1
Fork=3To2*n+1Step2
term=term*k
Sum=Sum+term
Nextk
Form1.Print"1+1×3+1×3×5+……+1×3×……(2N+1)=";Sum
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print"计算1+1×3+1×3×5+……+1×3×……(2N+1)"
EndSub
运行结果:
若n输入值为5,则程序运行结果如图5-5(3)所示:
(4)x-x3/3!
+x5/5!
-x7/7!
+……
【参考答案】
程序代码设计
PrivateSubCommand1_Click()
x=Val(InputBox("请输入x值"))
Sum=x
t1=x
t2=1
f=1
k=1
While(t1/t2>0.0001)
k=k+2
t1=t1*x*x
t2=t2*(k-1)*k
f=f*(-1)
Sum=Sum+f*t1/t2
Wend
Form1.Print"x-x^3/3!
+x^5/5!
-x^7/7!
+……=";Sum
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print"计算x-x^3/3!
+x^5/5!
-x^7/7!
+……"
EndSub
运行结果:
若x输入值为:
1.5,则程序运行结果如图5-5(4)所示:
(5)1+1/2+1/3+……+1/N(1/N<10-4)
【参考答案】
程序代码设计
PrivateSubForm_Click()
Sum=0
k=1
While(1/k>0.0001)
Sum=Sum+1/k
k=k+1
Wend
Form1.Print"1+1/2+1/3+……+1/N=";Sum
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print"计算1+1/2+1/3+……+1/N"
Form1.Print"单击窗体开始"
EndSub
程序运行结果如图5-5(5)所示:
5.6由随机函数产生10道一位整数与两位整数相加的加法题,产生的加法题依次显示在屏幕上,每产生一道题后,由用户输入答案,如果答案正确,记10分;如果答案错误,允许第二次输入答案,第二次输入答案正确,记5分,错误记0分。
最后给出总得分。
【参考答案】
程序代码设计
PrivateSubForm_Click()
s=0
Fori=1To10
a=Int(10*Rnd)
b=Int(10+90*Rnd)
str1$="第"&i&"题"&a&"+"&b
c=Val(InputBox(str1$&"第一次回答"))
Ifa+b=cThen
s=s+10
str2$=str1$&"10分"
Else
c=Val(InputBox(str1$&"第二次回答"))
Ifa+b=cThen
s=s+5
str2$=str1$&"5分"
Else
str2$=str1$&"0分"
EndIf
EndIf
Form1.Printstr2$
Nexti
Form1.Print"总分";s
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print"加法题,第一次回答正确10分,"
Form1.Print"第二次回答正确5分"
Form1.Print"单击窗体开始"
EndSub
程序运行结果如图5-6所示:
5.7编写计算还贷款年限的程序,从贷款的第三年开始还贷,贷款年利按复利计算。
贷款额10万元,年利率7%,每年还款数3万元,要求输出经过多少年才能还清贷款,以及最后一年的还款数。
【参考答案】
程序代码设计
PrivateSubForm_Click()
DimpAsSingle
p=10
r=0.07
n=0
While(p>0)
p=p*(1+r)
n=n+1
Ifn>=3Thenp=p-3
Wend
Form1.Print"还清贷款时间"&n;"年"
Form1.Print"最后一年的还款数"&(3+p)&"万"
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print"贷款额10万元,年利率7%"
Form1.Print"计算还贷数据"
Form1.Print"单击窗体开始"
EndSub
程序运行结果如图5-7所示:
5.8输入三角形的三条边A、B、C,根据A、B、C的数值判断三角形的性质,并给出如下信息:
(1)等边三角形;
(2)等腰三角形;(3)任意三角形;(4)不能构成三角形。
【参考答案】
(1)用户界面设计
(2)控件属性设置(略)
(3)程序代码设计
PrivateSubCommand1_Click()
a=Val(Text1.Text)
b=Val(Text2.Text)
c=Val(Text3.Text)
If(a=bAndb=c)Then
str1="等边三角形"
ElseIf(a=bOrb=cOrc=a)Then
str1="等腰三角形"
ElseIf(a+b<=cOrb+c<=aOrc+a<=b)Then
str1="不能构成三角形"
Else
str1="任意三角形"
EndIf
Label2.Caption=str1
EndSub
程序运行结果如图5-8所示。
5.9一个球从10米的高处落下,它每次反弹的高度为前一次下落高度的2/3,编写程序计算球第10次落地时运动的总路程。
【参考答案】
程序代码设计
PrivateSubForm_Click()
h=10
s=h
Fori=1To9
h=h*2/3
s=s+2*h
Nexti
s=CInt(100*s)/100
Form1.Print"球第10次落地时的总路程为";s;"米"
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print"计算球第10次落地时的总路程"
Form1.Print"单击窗体开始"
EndSub
程序运行结果如图5-9所示。
5.10编写程序把一个分数化为最简分数。
对一个分数化简,实际是要寻找分子N与分母M的最大公因子。
【参考答案】
程序代码设计
PrivateSubCommand1_Click()
DimmAsInteger,nAsInteger,uAsInteger,vAsInteger
m=Val(Text1.Text)
n=Val(Text2.Text)
Ifm>nThen
u=m:
v=n
Else
v=m:
u=n
EndIf
Do
r=uModv
u=v:
v=r
LoopUntilr=0
m=m/u:
n=n/u
Label2.Caption="化简后分子"&m&",分母"&n
EndSub
程序运行结果如图5-10所示:
5.11幼儿园的小朋友分吃一堆糖果。
第一天吃了一半,又吃了一颗;第二天,同样吃了剩下的一半,又多吃了一颗。
到第十天一看,只剩一颗糖果。
问原来共有多少颗糖果。
【参考答案】
程序代码设计
PrivateSubForm_Click()
num=1
Fork=9To1Step-1
num=(num+1)*2
Nextk
Form1.Print"糖果数为";num
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print"计算糖果数"
Form1.Print"单击窗体开始"
EndSub
程序运行结果如图5-11所示:
5.12求解方程X3+Y3-Z3=3,其中X、Y、Z均为正整数,且X、Y、Z均≥1,同时X、Y、Z均≤6。
【参考答案】
程序代码设计
PrivateSubForm_Click()
Forx=1To6
Fory=1To6
Forz=1To6
Ifx^3+y^3-z^3=3Then
Form1.Printx;y;z
EndIf
Nextz
Nexty
Nextx
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print"解方程X^3+Y^3-Z^3=3"
Form1.Print"单击窗体开始"
EndSub
程序运行结果如图5-12所示:
5.1336块砖,36人搬,男搬4、女搬3、两个小儿抬一砖,要求一次全搬完,问男、女、小儿需若干?
方程:
x+y+z=36
4*x+3+y+z/2=36
【参考答案】
程序代码设计
PrivateSubForm_Click()
Forx=1To36
Fory=1To36
Forz=1To36
Ifx+y+z=36And4*x+3*y+z/2=36Then
Form1.Printx;y;z
EndIf
Nextz
Nexty
Nextx
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print"男、女、小儿需若干"
Form1.Print"单击窗体开始"
EndSub
程序运行结果如图5-13所示:
5.14打印出3~100之间的所有素数(质数)。
【参考答案】
程序代码设计
PrivateSubForm_Click()
k=0
Forn=3To100
Fori=2Ton-1
IfnModi=0ThenExitFor
Nexti
Ifi>n-1Thenk=k+1:
PrintFormat(n,"@@@@@@");
Ifk=5Thenk=0:
Nextn
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print"打印出3-100之间的所有素数"
Form1.Print"单击窗体开始"
EndSub
程序运行结果如图5-14所示:
5.15验证哥德巴赫猜想:
“任何一个大于6的偶数,均可以表示为两个素数之和”,从键盘输入一个大于6的偶数后,打印出所有的分解结果。
【参考答案】
程序代码设计
PrivateSubForm_Click()
n=Val(InputBox("输入一个大于6的偶数"))
Ifn<=6OrnMod2<>0Then
Form1.Print"数据错误"
Else
Form1=2Ton/2
m2=n-m1
f=0
Fori=2Tom1-1
Ifm1Modi=0Thenf=1:
ExitFor
Nexti
Fori=2Tom2-1
Ifm2Modi=0Orf=1Thenf=1:
ExitFor
Nexti
Iff=0ThenPrintm1;m2
Nextm1
EndIf
EndSub
PrivateSubForm_Load()
Form1.AutoRedraw=True
Form1.Print"打印两个素数之和"
Form1.Print"单击窗体开始"
EndSub
运行结果:
若输入值为:
100,则程序运行结果如图5-15所示:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB程序设计 习题及答案第5章 循环结构程序设计 VB 程序设计 习题 答案 循环 结构
![提示](https://static.bdocx.com/images/bang_tan.gif)