VB程序设计课后习题答案科学出版社.docx
《VB程序设计课后习题答案科学出版社.docx》由会员分享,可在线阅读,更多相关《VB程序设计课后习题答案科学出版社.docx(16页珍藏版)》请在冰豆网上搜索。
![VB程序设计课后习题答案科学出版社.docx](https://file1.bdocx.com/fileroot1/2022-10/17/9d4d8833-280f-4cb2-90d9-8190158a3d24/9d4d8833-280f-4cb2-90d9-8190158a3d241.gif)
VB程序设计课后习题答案科学出版社
VB程序设计课后习题答案(科学出版社)
D
s=s+i
Nexti
Print"1+2+3+…+100=";s
EndSub
4.百元买百鸡。
假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡方案。
(采用穷举法)
假设母鸡、公鸡、小鸡各为x、y、z,列出方程为:
x+y+z=100
3x+2y+0.5z=100
PrivateSubForm_Click()
Dimx%,y%,z%
Print"母鸡","公鸡","小鸡"
Forx=0To33
Fory=0To50
z=100-x-y
If3*x+2*y+0.5*z=100Then
Printx,y,z
EndIf
Nexty
Nextx
EndSub
5.给定三角形的3条边的边长,计算三角形的面积。
编写程序,首选判断的3条边能否构成三角形,如可以构成,则计算并输出该三角形的面积,否则要求重新输入。
当输入-1时结束程序。
PrivateSubForm_Click()
Dima%,b%,c%,s!
p!
DoUntila=-1Orb=-1Orc=-1
a=Val(InputBox("a="))
b=Val(InputBox("b="))
c=Val(InputBox("c="))
Ifa+b>cAnda+c>bAndb+c>aThen
p=(a+b+c)/2
s=Sqr(p*(p-a)*(p-b)*(p-c))
Print"s=";s
EndIf
Loop
EndSub
6.编程打印如下图所示的数字金字塔。
PrivateSubForm_Click()
Dimi%,j%
Fori=1To8
PrintTab(9-i);
Forj=1To2*i-1
PrintTrim(Str(i));
Nextj
Print
Nexti
EndSub
7.勾股定理中3个数的关系是:
a*a+b*b=c*c。
编写程序,输出30以内满足上述关系的整数组合,例如3、4、5就是一个整数组合。
PrivateSubForm_Click()
Dimi%,j%,k%
Fori=1To30
Forj=1To30
Fork=1To30
Ifi^2+j^2=k^2Then
Printi,j,k
EndIf
Nextk
Nextj
Nexti
EndSub
8.如果一个三位数3个数字的立方和等于该数本身,称为水仙花数。
例如153就是一个水仙花数:
13+53+33=153。
编写程序,显示所有三位的水仙花数。
PrivateSubForm_Click()
Dimx%,a%,b%,c%
Forx=100To999
a=x\100
b=(xMod100)\10
c=xMod10
Ifa^3+b^3+c^3=xThen
Printx
EndIf
Nextx
EndSub
9.税务部门征收所得税,规定如下:
(1)收入200元以内,免征;
(2)收入在200~400元内,超过200元的部分纳税3%;
(3)收入超过400元的部分,纳税4%;
(4)当收入达5000元或超过时,将4%改为5%。
编程实现上述操作。
PrivateSubForm_Click()
Dimx%,y!
x=Val(InputBox("请输入收入额:
"))
SelectCasex
CaseIs<200
y=0
Case200To400
y=(x-200)*0.03
Case400To4999
y=(x-400)*0.04
CaseIs>=5000
y=(x-400)*0.05
EndSelect
Print"y=";y
EndSub
10.编写一程序根据上网时间计算上网费用,计算方法如下:
50元(<10小时)
网费=每小时6元(10~60小时)
每小时4元(>=60小时)
同时为了鼓励多上网,每月收费最多不超过200元。
PrivateSubForm_Click()
Dimt!
s!
t=Val(InputBox("请输入上网小时数"))
SelectCaset
CaseIs<10
s=50
Case10To59
s=6*t
Ifs>200Thens=200
CaseIs>=60
s=4*t
Ifs>200Thens=200
EndSelect
Print"上网费用为";s;"元。
"
EndSub
11.编写一个程序,当输入月份时,输出季节的名称。
例如,当输入月份为12、1和2时,输出“冬季”;当输入月份为3、4、5时,输出“春季”;当输入月份为6、7、8时,输出“夏季”;当输入月份为9、10、11时,输出“秋季”;当输入其他数字时,输出“输入错误,请重新输入!
”。
PrivateSubForm_Click()
Dimm%
m=Val(InputBox("请输入月份:
"))
SelectCasem
Case12,1,2
Print"冬季"
Case3,4,5
Print"春季"
Case6,7,8
Print"夏季"
Case9,10,11
Print"秋季"
CaseElse
Print"输入错误,请重新输入!
"
EndSelect
EndSub
12.分别利用If语句、SelectCase语句,设计计算下列分段函数的程序。
2x-1(x<0)
f(x)=4x(x=0)
7x-5(x>0)
PrivateSubForm_Click()
Dimx!
f!
x=Val(InputBox("请输入x的值:
"))
SelectCasex
CaseIs<0
f=2*x-1
Case0
f=4*x
CaseIs>0
f=7*x-5
EndSelect
Printf
EndSub
同步练习5
一、选择题
01——05DCACD
06——10DBCDC
11——15BADAD
二、填空题
1.NAME、INDEX
2.PRESERVE
3.VARIANT
4.N
(2)=2
N(3)=3
5.123141
6.123246
7.MAX、MAX=ARR1(I)
三、编程题
1.从键盘上输入10整数,并放入一个一维数组中,然后将其前5个元素与后5个元素对换,即第1个元素与第10个元素互换,第2个元素与第9个元素互换,……,第5个元素与第6个元素互换。
输出数组为原来各元素的值和对换后各元素的值。
PrivateSubForm_Click()
Dima(1To10)
Fori=1To10
a(i)=Val(InputBox("请输入第"&i&"个数"))
Nexti
Print"原来各元素的值:
"
Fori=1To10
Printa(i);
IfiMod5=0ThenPrint
Nexti
Fori=1To5
temp=a(i)
a(i)=a(10-i+1)
a(10-i+1)=temp
Nexti
Print"对换后各元素的值"
Fori=1To10
Printa(i);
IfiMod5=0ThenPrint
Nexti
EndSub
2.设有如下两组数据。
编写一个程序,把两组数据分别读入两个数组中,然后把两个数组中对应下标的元素相加,即2+79,8+27,…,25+80,并把相应的结果放入第三个数组中,最后输出第三个数组的值。
A28764287025
B7927324157667880
PrivateSubForm_Click()
Dima,b,c(7)
a=Array(2,8,7,6,4,28,70,25)
b=Array(79,27,32,41,57,66,78,80)
Fori=0To7
c(i)=a(i)+b(i)
Nexti
Fori=0To7
Printc(i);
Nexti
EndSub
3.有一个n×m的矩阵,其各元素的值由随机函数生成(范围为50~150)。
编写程序,找出其中最大的元素所在的行和列,并输出其值及行号和列号。
OptionBase1
PrivateSubForm_Click()
Dimmax%,row%,col%
Dima()AsInteger
n=Val(InputBox("请输入矩阵的行:
"))
m=Val(InputBox("请输入矩阵的列:
"))
ReDima(n,m)
Fori=1Ton
Forj=1Tom
a(i,j)=Int(101*Rnd)+50
Printa(i,j),
Ifj=mThenPrint
Nextj
Nexti
max=a(1,1):
row=1:
col=1
Fori=1Ton
Forj=1Tom
Ifa(i,j)>maxThen
max=a(i,j)
row=i
col=j
EndIf
Nextj
Nexti
Print"最大元素是:
";max
Print"在第"&row&"行,"&"第"&col&"列"
EndSub
4.编写程序,产生50个互不相同的10~99的随机整数,统计各数值段(10~19,20~29,….80~89,90~99)有多少个数并输出。
PrivateSubForm_Click()
Dima(1To50)AsInteger,iAsInteger
Dimb(1To9)AsInteger,kAsInteger
Fori=1To50
a(i)=Int(Rnd*90+10)
Printa(i);
IfiMod10=0ThenPrint
k=Int(a(i)/10)
b(k)=b(k)+1
Nexti
Print
Fori=1To9
Print(i*10)&"~"&(i*10+9)&"的学生人数:
"&b(i)
Nexti
EndSub
5.采用控件数组编写一个简单的计算