江苏师范大学VB程序设计习题集大题答案.docx
《江苏师范大学VB程序设计习题集大题答案.docx》由会员分享,可在线阅读,更多相关《江苏师范大学VB程序设计习题集大题答案.docx(13页珍藏版)》请在冰豆网上搜索。
![江苏师范大学VB程序设计习题集大题答案.docx](https://file1.bdocx.com/fileroot1/2023-1/2/b4ab0dba-78d9-4906-88bb-2cde7dfc79de/b4ab0dba-78d9-4906-88bb-2cde7dfc79de1.gif)
江苏师范大学VB程序设计习题集大题答案
1、编写程序,求圆柱体的底面积、侧面积和体积。
运行界面如图所示。
PrivateSubCommand1_Click()
Dimh,rAsInteger
h=Text1
r=Text2
Text3=3.14*r^2
Text4=2*3.14*r*h
Text5=Val(Text3)*h
EndSub
2、用条件语句实现:
从文本框(Text1)输入一个数,单击“判断”按钮(Command1)判断它能否同时被3、5、7整除,若能整除,则用消息框(Msgbox函数)显示“能同时被3、5、7整除”,否则显示“不能整除”。
PrivateSubCommand1_Click()
DimmAsInteger
m=Text1
IfmMod3=0AndmMod5=0AndmMod7=0Then
MsgBox"能同时被3、5、7整除"
Else
MsgBox"不能整除"
EndIf
EndSub
3、使用循环控制结构在窗体上打印出下三角形式的九九乘法表。
(界面如图所示)
PrivateSubCommand1_Click()
Fori=1To9
Forj=1Toi
PrintStr(i)&""&"x"&Str(j)&"="&Str(i*j)&Space
(2);
Nextj
Print
Nexti
EndSub
4、编写程序,对输入的学生成绩给出五级评分。
要求:
学生成绩由文本框(Text1)输入,结果显示在标签(Label1)中。
评分标准如下:
优90≤成绩≤100
良80≤成绩<90
中70≤成绩<80
及格60≤成绩<70
不及格0≤成绩<60
PrivateSubCommand1_Click()
DimmAsInteger
m=Text1
If90<=mAndm<=100Then
Label1.Caption="优"
ElseIf80<=mAndm<90Then
Label1.Caption="良"
ElseIf70<=mAndm<80Then
Label1.Caption="中"
ElseIf60<=mAndm<70Then
Label1.Caption="及格"
ElseIf0<=mAndm<60Then
Label1.Caption="不及格"
EndIf
EndSub
5、编写程序求
的值,要求结果显示在窗体上。
PrivateSubCommand1_Click()
Fori=1To100
s=s+i
Nexti
Forj=1To50
m=m+j^2
Nextj
Sum=s+m
PrintSum
EndSub
6、随机生成15个100以内的正整数并显示在一个文本框(Text1)中,再将所有对称位置的两个数据对调后显示在另一个文本框(Text2)中(第1个数与第15个数对调,第2个数与第14个数对调,……,第7个数与第9个数对调)。
Optionbase1
PrivateSubCommand1_Click()
Text1=""
Text2=""
Dima(15)AsInteger
Fori=1To15
a(i)=Int(101*Rnd)
Text1=Text1&Str(a(i))
Nexti
Forj=1To15
Ifj<8Then
t=a(j)
a(j)=a(16-j)
a(16-j)=t
EndIf
Text2=Text2&Str(a(j))
Nextj
EndSub
7、随机生成20个两位正整数显示在一个文本框(Text1)中,并求出它们的平均值显示在另一个文本框(Text2)中。
OptionBase1
PrivateSubCommand1_Click()
Dima(20)AsInteger
Text1=""
Text2=""
Fori=1To20
a(i)=Int(90*Rnd+10)
s=s+a(i)
Text1=Text1&Str(a(i))
Nexti
Text2=s/20
EndSub
8、随机生成50个三位正整数显示在一个文本框中(Text1)中,并将它们逆序显示在另一个文本框(Text2)中。
OptionBase1
PrivateSubCommand1_Click()
Dima(50)AsInteger
Text1=""
Text2=""
Fori=1To50
a(i)=Int(900*Rnd+100)
Text1=Text1&Str(a(i))
Nexti
Forj=1To50
Ifj<26Then
t=a(j)
a(j)=a(51-j)
a(51-j)=t
EndIf
Text2=Text2&Str(a(j))
Nextj
EndSub
9、用InputBox函数输入10个数到数组A中,输入后将这10个数显示在一个文本框(Text1)中,并计算其中所有正数的和,将结果显示在另一个文本框(Text2)中。
OptionBase1
PrivateSubCommand1_Click()
Dima(10),sAsInteger
Text1=""
Text2=""
Fori=1To10
a(i)=Val(InputBox(""))
Text1=Text1&Str(a(i))
Ifa(i)>0Then
s=s+a(i)
EndIf
Next
Text2=s
EndSub
10、生成100个[0,100]之间的随机整数存于数组A中,并将它们显示在一个文本框(Text1)中,在数组A中查找指定的元素Number。
要求:
Number用InputBox函数输入,查找结果显示在窗体上。
OptionBase1
Dima(100),sAsInteger
PrivateSubCommand1_Click()
DimnumberAsInteger
number=InputBox("")
Printa(number)
EndSub
PrivateSubForm_Load()
Text1=""
Fori=1To100
a(i)=Int(101*Rnd)
Text1=Text1&Str(a(i))
Nexti
EndSub
11、编程求由一位随机整数构成的4×5二维数组A的每一列元素的和。
运行界面如图所示。
OptionBase1
PrivateSubCommand1_Click()
Dima(4,5),s1,s2,s3,s4,s5AsInteger
Fori=1To4
Forj=1To5
a(i,j)=Int(9*Rnd+1)
Ifj=1Then
s1=s1+a(i,1)
EndIf
Ifj=2Then
s2=s2+a(i,2)
EndIf
Ifj=3Then
s3=s3+a(i,3)
EndIf
Ifj=4Then
s4=s4+a(i,4)
EndIf
Ifj=5Then
s5=s5+a(i,5)
EndIf
Picture1.Printa(i,j);
Nextj
Picture1.Print
Nexti
Text1=Str(s1)&Str(s2)&Str(s3)&Str(s4)&Str(s5)
EndSub
12、单击命令按钮command1时,生成包含[1,9]之间随机整数的两个5*5矩阵,分别显示在图片框Picture1和Picture2中,并求两个矩阵之和显示在图片框Picture3中。
OptionBase1
PrivateSubCommand1_Click()
Dima(5,5),b(5,5),c(5,5)AsInteger
Fori=1To5
Forj=1To5
a(i,j)=Int(9*Rnd+1)
b(i,j)=Int(9*Rnd+1)
c(i,j)=a(i,j)+b(i,j)
Picture1.Printa(i,j);
Picture2.Printb(i,j);
Picture3.Printc(i,j);
Nextj
Picture1.Print
Picture2.Print
Picture3.Print
Nexti
EndSub
13、编写程序,在窗体上打印出如图所示的杨辉三角形。
要求:
行数由用户指定。
OptionBase1
PrivateSubCommand1_Click()
Dima(),nAsInteger
n=InputBox("")
ReDima(n,n)
Fori=1Ton
Forj=1Toi
Ifi=jOrj=1Then
a(i,j)=1
Else
a(i,j)=a(i-1,j-1)+a(i-1,j)
EndIf
PrintFormat(a(i,j),"@@@@@!
");
Nextj
Print
Nexti
EndSub
14、随机生成一个由两位正整数构成的5行5列矩阵显示在窗体上,并求出该矩阵中两条对角线元素之和。
OptionBase1
PrivateSubCommand1_Click()
Dima(5,5),s1,s2AsInteger
Fori=1To5
Forj=1To5
a(i,j)=Int(90*Rnd+10)
Printa(i,j);
Ifi=jThen
s1=s1+a(i,j)
EndIf
Ifi+j=6Then
s2=s2+a(i,j)
EndIf
Nextj
Print
Nexti
Prints1,s2
EndSub
15、随机生成一个由两位正整数构成的6行6列矩阵显示在窗体上,并求出该矩阵中所有元素之和。
OptionBase1
PrivateSubCommand1_Click()
Dima(6,6),s1AsInteger
Fori=1To6
Forj=1To6
a(i,j)=Int(90*Rnd+10)
Printa(i,j);
s1=s1+a(i,j)
Nextj
Print
Nexti
Prints1
EndSub
16、编写一个求1+2+3+…+n的函数,单击命令按钮(Command1)时调用该函数求1+2+3+4+5的值,结果显示在一个文本框(Text1)中。
PrivateSubCommand1_Click()
Text1=s(5)
EndSub
Functions(nAsInteger)AsInteger
Fori=1Ton
s=s+i
Nexti
EndFunction
17、编写程序,判断一个数N是否是奇数。
要求使用通用过程。
PrivateSubCommand1_Click()
DimmAsInteger
m=InputBox("")
s(m)
EndSub
Functions(nAsInteger)AsString
IfnMod2=1Then
MsgBox"是奇数"
Else
MsgBox"不是奇数"
EndIf
EndFunction
18、编写求表达式
的值的Function过程。
Functionss(x,y,zAsInteger)AsSingle
ss=Sqr(Abs(x^3+y^3+z^3))
EndFunction
19、编写一个摄氏温度与华氏温度转换的通用过程。
在一个文本框(Text1)中输入摄氏温度,单击命令按钮command1时调用该通用过程在另一个文本框(Text2)中显示对应的华氏温度。
摄氏温度(C)与华氏温度(F)转换的公式是:
。
PrivateSubCommand1_Click()
DimnAsInteger
n=Val(Text1)
Text2=Format(s(n),"00.0")
EndSub
Functions(mAsInteger)AsSingle
s=m*9/5+32
EndFunction
20、编写一个判断某正整数N是否是完数的通用过程。
完数:
一个数恰好等于它的因子之和(除自身),如:
6=1+2+3,因此6是完数。
Functionf(nAsInteger)AsString
Fori=1Ton/2
IfnModi=0Then
s=s+i
EndIf
Nexti
Ifs=nThen
MsgBox"是完数"
Else
MsgBox"不是完数"
EndIf
EndFunction
21、编写一个求正整数m和正整数n的最大公约数的函数。
Functionff(m,nAsInteger)AsInteger
DimrAsInteger
r=mModn
DoWhiler<>0
m=n
n=r
r=mModn
Loop
ff=n
EndFunction
22、编写一个对数组元素进行排序的通用过程
Functionff(b()AsInteger)AsInteger
Fori=1To9
Forj=i+1To10
Ifb(i)>b(j)Then
t=b(i)
b(i)=b(j)
b(j)=t
EndIf
Nextj
Nexti
Fori=1To10
Text2=Text2&Str(b(i))
Nexti
EndFunction