VB编程题目及问题详解.docx
- 文档编号:5403888
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:17
- 大小:19.92KB
VB编程题目及问题详解.docx
《VB编程题目及问题详解.docx》由会员分享,可在线阅读,更多相关《VB编程题目及问题详解.docx(17页珍藏版)》请在冰豆网上搜索。
VB编程题目及问题详解
1.输入3个数,输出最大的数
2.有一元二次方程:
aX2+bX+c=0,依次输入a,b,c,判断此方程是否有实根
3.输入一个百分制的成绩,若大于等于60,则用消息框弹出,显示“恭喜!
成绩通过!
”,若小于60,则弹出消息框,显示“抱歉!
成绩没有通过!
”
4.输入一年份,判断它是否为闰年,并显示有关信息。
(判断闰年的条件是:
年份能被4整除但不能被100整除,或者能被400整除)
5.输入学生的百分制成绩,转换输出为五级制成绩,90~100分转换为优秀,80~89转换为良好,70~79转换为中等,60~69转换为及格,0~60转换为不及格。
6.随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。
例如,产生246,输出是642。
7.输入两个整数,求它们的最大公约数。
8.编程求200--400范围内5的倍数或7的倍数之和。
(一个数如果同时是7和5的倍数,则只能加一次。
。
9.计算100~300之间所有能被3和7整除的数之和
10.分别统计1-100中,满足3的倍数、7的倍数的数各有多少。
11.某次歌曲大奖赛,有7个评委。
如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。
12.输入一串字符,统计其中字母A(不区分大小写)出现的次数。
13.我国目前有13亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26亿。
14.小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少?
15.求100以内的素数
16.百元买百鸡问题。
假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡方案。
17.编程求斐波那契数列前11项。
(斐波那契数列:
F(0)=f
(1)=1,F(n)=F(n-1)+F(n-2)n>=2)
18.将输入的字符串以反序显示。
例如:
输入“ASDFGT”,显示“TGFDSA”
19.随机产生10个[30,100]内的整数,求最大值及所对应的下标
20.随机产生10个[30,100]内的整数,求最大值、最小值和平均值。
21.随机产生10个[30,100]内的整数,求最小值及所对应的下标。
22.随机生成一个整型的二维数组,范围在[10,20]之间,以下三角形式输出该数组。
23.随机产生10个1~100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。
24.利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,输出该矩阵所有数据之和
25.已知有序数组a(),编程插入x(x的值为14)。
数组a中的元素分别为{12,6,4,89,75,63,100,20,31}。
26.编写一函数,计算Double类型一维数组所有元素的平均值。
27.用函数过程求表达式1+1/2+1/3+1/4+…+1/n的和.
28.编一子过程ProcMin,求一维数组a中的最小值,子过程的形参自己确定。
29.编一个函数,求一维数组a中的最大值,函数的形参自己确定。
30.编写一个过程计算并输出区间[100,1000]内所有素数的和(要求判断素数使用过程(函数或子过程)来实现。
调用该过程。
(提示:
只能被1和自身整除的自然数称为素数。
)
(注:
本答案第一行代码应在题目之后,自行调整)
PrivateSubCommand11_Click()
'1.输入3个数,输出最大的数
Dimmax%
X1=Val(InputBox("input"))
X2=Val(InputBox("input"))
x3=Val(InputBox("input"))
max=X1
Ifmax<=X2Then
max=X2
EndIf
Ifmax<=x3Then
max=x3
EndIf
MsgBox("3个数之中的最大数max="&max)
EndSub
PrivateSubCommand12_Click()
'2.'有一元二次方程:
aX2+bX+c=0,依次输入a,b,c,判断此方程是否有实根
a=Val(InputBox("input"))
B=Val(InputBox("input"))
c=Val(InputBox("input"))
s=B^2-4*a*c
Ifa<>0Then
Ifs=0Then
MsgBox("两个相等实根")
ElseIfs>0Then
MsgBox("两个不相等实根")
ElseIfs<0Then
MsgBox("两个不相等虚根")
EndIf
Else
MsgBox("无解")
EndIf
EndSub
PrivateSubCommand13_Click()
'3.输入一个百分制的成绩,若大于等于60,则用消息框弹出,显示"恭喜!
成绩通过!
",若小于60,则弹出消息框,显示"抱歉!
成绩没有通过!
"
X=Val(InputBox("input"))
IfX>=60Then
MsgBox("恭喜!
成绩通过!
")
Else
MsgBox("抱歉!
成绩没有通过!
")
EndIf
EndSub
PrivateSubCommand14_Click()
'4.输入一年份,判断它是否为闰年,并显示有关信息。
(判断闰年的条件是:
年份能被4整除但不能被100整除,或者能被400整除)
yes=Val(InputBox("year"))
IfyesMod4=0AndyesMod100<>0OryesMod400=0Then
MsgBox(yes&"是闰年")
Else
MsgBox(yes&"不是闰年")
EndIf
EndSub
PrivateSubCommand15_Click()
'5.输入学生的百分制成绩,转换输出为五级制成绩,90~100分转换为优秀,80~89转换为良好,70~79转换为中等,60~69转换为及格,0~60转换为不及格。
score=Val(InputBox("input"))
SelectCasescore
CaseIs>=90
MsgBox("优秀")
CaseIs>=80
MsgBox("良好")
CaseIs>=70
MsgBox("中")
CaseIs>=60
MsgBox("及格")
CaseElse
MsgBox("不及格")
EndSelect
EndSub
PrivateSubCommand16_Click()
'6.随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。
例如,产生246,输出是642。
a="645"
n=Len(a)
Fori=1ToInt(n/2)
c=Mid(a,i,1)
Mid(a,i,1)=Mid(a,n-i+1,1)
Mid(a,n-i+1,1)=c
Nexti
MsgBox(a)
EndSub
PrivateSubCommand1_Click()
'7.输入两个整数,求它们的最大公约数
m=Val(InputBox("inputm值"))
n=Val(InputBox("inputn值"))
Ifn>mThen
t=n
n=m
m=t
EndIf
r=mModn
DoWhiler<>0
m=n
n=r
r=mModn
Loop
MsgBox("最大公约数="&n)
EndSub
PrivateSubCommand2_Click()
'8.编程求200--400范围内5的倍数或7的倍数之和。
(一个数如果同时是7和5的倍数,则只能加一次。
Dimsum1%,sum2%
sum1=0:
sum2=0
Fori=200To400
IfiMod5=0Then
sum1=sum1+i
ElseIfiMod7=0Then
sum2=sun2+i
EndIf
Debug.Printi,sum1,sum2
Nexti
MsgBox("5的倍数之和sum="&sum1)
MsgBox("7的倍数之和sum="&sum2)
EndSub
PrivateSubCommand3_Click()
'9.计算100~300之间所有能被3和7整除的数之和
Dimsum%
sum=0
Fori=100To300
IfiMod3=0AndiMod7=0Then
sum=sum+i
EndIf
Nexti
MsgBox("sum="&sum)
EndSub
PrivateSubCommand4_Click()
'10.分别统计1-100中,满足3的倍数、7的倍数的数各有多少
m=0:
n=0
Fori=1To100
IfiMod3=0Then
n=n+1
ElseIfiMod7=0Then
m=m+1
EndIf
Nexti
MsgBox("3的倍数个数="&n)
MsgBox("7的倍数个数="&m)
EndSub
PrivateSubCommand5_Click()
'11.某次歌曲大奖赛,有7个评委。
如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分
Dimsum%,max%,min%
sum=0:
max=0:
min=999
Fori=1To7
X=Val(InputBox("input"))
Ifmax<=XThen
max=X
EndIf
Ifmin>=XThen
min=X
EndIf
sum=sum+X
Nexti
Avg=(sum-max-min)/5
MsgBox("最高分="&max)
MsgBox("最低分="&min)
MsgBox("总和="&sum)
MsgBox("平均分="&Avg)
EndSub
PrivateSubCommand10_Click()
'12.输入一串字符,统计其中字母A(不区分大小写)出现的次数。
DimchAsString
ch="ASDEAS"
n=0
Fori=1ToLen(ch)
st=Mid(ch,i,1)
IfUCase(st)="A"Then
n=n+1
EndIf
Nexti
MsgBox("字符串中出现A字符的系数"&n)
EndSub
PrivateSubCommand6_Click()
'13.我国目前有13亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26亿。
n=0
X=13
DoWhileX<=26
X=X*1.008
n=n+1
Loop
MsgBox(n)
EndSub
PrivateSubCommand7_Click()
'14.小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少?
X=1
Fori=6To1Step-1
X=(X+1)*2
Nexti
MsgBox(X)
EndSub
PrivateSubCommand8_Click()
'15.求100以内的素数
Fori=1To100
flag=1
Forj=2Toi-1
IfiModj=0Then
flag=0
EndIf
Nextj
Ifflag=1Then
MsgBox(i&"是素数")
EndIf
Nexti
EndSub
PrivateSubCommand9_Click()
'16.百元买百鸡问题。
假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡方案。
n=0
ForX=0To33
Fory=0To50
z=100-X-y
If3*X+2*y+0.5*z=100Then
PrintX,y,z
EndIf
Nexty
NextX
EndSub
PrivateSubCommand20_Click()
'17.编程求斐波那契数列前11项。
(斐波那契数列:
F(0)=f
(1)=1,F(n)=F(n-1)+F(n-2)n>=2)
Dimf(11)AsInteger
f(0)=1
f
(1)=1
Fori=2To10
f(i)=f(i-1)+f(i-2)
Nexti
Fori=0To10
Printf(i);
Nexti
EndSub
PrivateSubCommand21_Click()
'18.将输入的字符串以反序显示。
例如:
输入"ASDFGT",显示"TGFDSA"
Dims(10)AsString
Fori=0To9
s(i)=InputBox("input")
Nexti
Fori=9To0Step-1
Prints(i)
Nexti
EndSub
PrivateSubCommand22_Click()
'19.随机产生10个[30,100]内的整数,求最大值及所对应的下标
Dima(10)AsInteger,max%
Fori=0To9
a(i)=Int(Rnd*71+30)
Nexti
max=a(0)
maxi=0
Fori=1To9
Ifa(i)>=maxThen
max=a(i)
maxi=i
EndIf
Nexti
MsgBox("max="&max)
MsgBox("maxi="&maxi)
EndSub
PrivateSubCommand23_Click()
'20.随机产生10个[30,100]内的整数,求最大值、最小值和平均值。
Dima(10)AsInteger,max%,min%
Fori=0To9
a(i)=Int(Rnd*71+30)
Nexti
max=a(0)
min=a(0)
Fori=1To9
Ifa(i)>=maxThen
max=a(i)
Else
min=a(i)
EndIf
sum=sum+a(i)
Nexti
MsgBox("max="&max)
MsgBox("min="&min)
MsgBox("avg="&sum/10)
EndSub
PrivateSubCommand17_Click()
'21.随机产生10个[30,100]内的整数,求最小值及所对应的下标。
Dima(10)AsInteger
Fori=0To9
a(i)=Int(Rnd*71+30)
Nexti
min=a(0)
Mini=0
Fori=1To9
Ifa(i)<=minThen
min=a(i)
Mini=i
EndIf
Nexti
MsgBox("min="&min)
MsgBox("mini="&Mini)
EndSub
PrivateSubCommand18_Click()
'22.随机生成一个整型的二维数组,范围在[10,20]之间,以下三角形式输出该数组。
Dima(10,10)AsInteger
Fori=0To9
Forj=0To9
a(i,j)=Int(Rnd*11+10)
Nextj
Nexti
Fori=0To9
Forj=0Toi
Printa(i,j),
Nextj
Nexti
EndSub
PrivateSubCommand19_Click()
'23.随机产生10个1~100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。
Dima(10)AsInteger,max%,min%
Fori=0To9
a(i)=Int(Rnd*100+1)
Printa(i)
Nexti
max=a(0)
min=a(0)
Fori=1To9
Ifa(i)>=maxThen
max=a(i)
Else
min=a(i)
EndIf
sum=sum+a(i)
Nexti
MsgBox("max="&max)
MsgBox("min="&min)
MsgBox("avg="&sum/10)
EndSub
PrivateSubCommand24_Click()
'24.利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,输出该矩阵所有数据之和
Dima(4,4)AsInteger
Dimsum%,i%,j%
Fori=0To3
Forj=0To3
a(i,j)=Int(Rnd*31+20)
sum=sum+a(i,j)
Nextj
Nexti
Fori=0To3
Forj=0To3
Printa(i,j),
Nextj
Nexti
MsgBox("sum="&sum)
EndSub
PrivateSubCommand25_Click()
'25.已知有序数组a(),编程插入x(x的值为14)。
数组a中的元素分别为{12,6,4,89,75,63,100,20,31}。
Dima(),iMin%,n%,i%,j%,t%
a=Array(2,6,4,89,75,63,100,20,31)
X=14
n=UBound(a)'获得数组的下标上界
Fori=0Ton-1'进行n-1轮比较
iMin=i'对第i轮比较时,初始假定第i个元素最小
Forj=i+1Ton'在数组i+1~n个元素中选最小元素的下标
Ifa(j) Nextj t=a(i)'i+1~n个元素中选出的最小元素与第i个元素交换 a(i)=a(iMin) a(iMin)=t Nexti Fork=0Ton'查找欲插入数x在数组中的位置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 编程 题目 问题 详解