VB编程题目及答案文档格式.docx
《VB编程题目及答案文档格式.docx》由会员分享,可在线阅读,更多相关《VB编程题目及答案文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
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("
x3=Val(InputBox("
max=X1
Ifmax<
=X2Then
max=X2
EndIf
=x3Then
max=x3
MsgBox("
3个数之中的最大数max="
&
max)
EndSub
PrivateSubCommand12_Click()
2.'
有一元二次方程:
a=Val(InputBox("
B=Val(InputBox("
c=Val(InputBox("
s=B^2-4*a*c
Ifa<
>
0Then
Ifs=0Then
两个相等实根"
ElseIfs>
两个不相等实根"
ElseIfs<
两个不相等虚根"
Else
无解"
PrivateSubCommand13_Click()
3.输入一个百分制的成绩,若大于等于60,则用消息框弹出,显示"
恭喜!
"
,若小于60,则弹出消息框,显示"
抱歉!
X=Val(InputBox("
IfX>
=60Then
PrivateSubCommand14_Click()
4.输入一年份,判断它是否为闰年,并显示有关信息。
yes=Val(InputBox("
year"
IfyesMod4=0AndyesMod100<
0OryesMod400=0Then
MsgBox(yes&
"
是闰年"
不是闰年"
PrivateSubCommand15_Click()
5.输入学生的百分制成绩,转换输出为五级制成绩,90~100分转换为优秀,80~89转换为良好,70~79转换为中等,60~69转换为及格,0~60转换为不及格。
score=Val(InputBox("
SelectCasescore
CaseIs>
=90
MsgBox("
优秀"
CaseIs>
=80
良好"
=70
中"
=60
及格"
CaseElse
不及格"
EndSelect
PrivateSubCommand16_Click()
6.随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。
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)
PrivateSubCommand1_Click()
7.输入两个整数,求它们的最大公约数
m=Val(InputBox("
inputm值"
n=Val(InputBox("
inputn值"
Ifn>
mThen
t=n
n=m
m=t
r=mModn
DoWhiler<
0
m=n
n=r
Loop
最大公约数="
n)
PrivateSubCommand2_Click()
8.编程求200--400范围内5的倍数或7的倍数之和。
Dimsum1%,sum2%
sum1=0:
sum2=0
Fori=200To400
IfiMod5=0Then
sum1=sum1+i
ElseIfiMod7=0Then
sum2=sun2+i
Debug.Printi,sum1,sum2
5的倍数之和sum="
sum1)
7的倍数之和sum="
sum2)
PrivateSubCommand3_Click()
9.计算100~300之间所有能被3和7整除的数之和
Dimsum%
sum=0
Fori=100To300
IfiMod3=0AndiMod7=0Then
sum=sum+i
sum="
sum)
PrivateSubCommand4_Click()
10.分别统计1-100中,满足3的倍数、7的倍数的数各有多少
m=0:
n=0
Fori=1To100
IfiMod3=0Then
n=n+1
m=m+1
3的倍数个数="
7的倍数个数="
m)
PrivateSubCommand5_Click()
11.某次歌曲大奖赛,有7个评委。
如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分
Dimsum%,max%,min%
sum=0:
max=0:
min=999
Fori=1To7
=XThen
max=X
Ifmin>
min=X
sum=sum+X
Avg=(sum-max-min)/5
最高分="
最低分="
min)
总和="
平均分="
Avg)
PrivateSubCommand10_Click()
12.输入一串字符,统计其中字母A(不区分大小写)出现的次数。
DimchAsString
ch="
ASDEAS"
n=0
Fori=1ToLen(ch)
st=Mid(ch,i,1)
IfUCase(st)="
A"
Then
字符串中出现A字符的系数"
PrivateSubCommand6_Click()
13.我国目前有13亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26亿。
X=13
DoWhileX<
=26
X=X*1.008
MsgBox(n)
PrivateSubCommand7_Click()
14.小猴有桃若干,第一天吃掉一半多一个;
X=1
Fori=6To1Step-1
X=(X+1)*2
MsgBox(X)
PrivateSubCommand8_Click()
15.求100以内的素数
flag=1
Forj=2Toi-1
IfiModj=0Then
flag=0
Nextj
Ifflag=1Then
MsgBox(i&
是素数"
PrivateSubCommand9_Click()
16.百元买百鸡问题。
ForX=0To33
Fory=0To50
z=100-X-y
If3*X+2*y+0.5*z=100Then
PrintX,y,z
Nexty
NextX
PrivateSubCommand20_Click()
17.编程求斐波那契数列前11项。
Dimf(11)AsInteger
f(0)=1
f
(1)=1
Fori=2To10
f(i)=f(i-1)+f(i-2)
Fori=0To10
Printf(i);
PrivateSubCommand21_Click()
18.将输入的字符串以反序显示。
输入"
ASDFGT"
,显示"
TGFDSA"
Dims(10)AsString
Fori=0To9
s(i)=InputBox("
Fori=9To0Step-1
Prints(i)
PrivateSubCommand22_Click()
19.随机产生10个[30,100]内的整数,求最大值及所对应的下标
Dima(10)AsInteger,max%
a(i)=Int(Rnd*71+30)
max=a(0)
maxi=0
Fori=1To9
Ifa(i)>
=maxThen
max=a(i)
maxi=i
max="
maxi="
maxi)
PrivateSubCommand23_Click()
20.随机产生10个[30,100]内的整数,求最大值、最小值和平均值。
Dima(10)AsInteger,max%,min%
min=a(0)
min=a(i)
sum=sum+a(i)
min="
avg="
sum/10)
PrivateSubCommand17_Click()
21.随机产生10个[30,100]内的整数,求最小值及所对应的下标。
Dima(10)AsInteger
Mini=0
Ifa(i)<
=minThen
Mini=i
mini="
Mini)
PrivateSubCommand18_Click()
22.随机生成一个整型的二维数组,范围在[10,20]之间,以下三角形式输出该数组。
Dima(10,10)AsInteger
Forj=0To9
a(i,j)=Int(Rnd*11+10)
Forj=0Toi
Printa(i,j),
Print
PrivateSubCommand19_Click()
23.随机产生10个1~100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。
a(i)=Int(Rnd*100+1)
Printa(i)
PrivateSubCommand24_Click()
24.利用随机函数生成一个4×
Dima(4,4)AsInteger
Dimsum%,i%,j%
Fori=0To3
Forj=0To3
a(i,j)=Int(Rnd*31+20)
sum=sum+a(i,j)
PrivateSubCommand25_Click()
25.已知有序数组a(),编程插入x(x的值为14)。
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)<
a(iMin)TheniMin=j
Nextj
t=a(i)'
i+1~n个元素中选出的最小元素与第i个元素交换
a(i)=a(iMin)
a(iMin)=t
Nexti
Fork=0Ton'
查找欲插入数x在数组中的位置
IfX<
a(k)ThenExitFor
Nextk
ReDimPreservea(n+1)'
数组增加一个元素
Fori=nTokStep-1'
数组元素后移一位,腾出位置
a(i+1)=a(i)
a(k)=X
Fori=0Ton+1
Printa(i);
Next
PrivateSubCommand26_Click()
26.编写一函数,计算Double类型一维数组所有元素的平均值。
Dima(),n%,s!
a=Array(1,4,7,9,12,23,56)
n=UBound(a)
s=sum1(a())
s)
s/n)
PrivateSubCommand27_Click()
27.用函数过程求表达式1+1/2+1/3+1/4+…+1/n的和.
n=InputBox("
INPUT"
s=sum2(n)
SUM2="
PrivateSubCommand28_Click()
28.编一子过程ProcMin,求一维数组a中的最小值,子过程的形参自己确定
Dima(),n%,min%
a=Array(1,4,7,9,12,-23,56)
Callprocmin(a(),min)
PrivateSubCommand29_Click()
29.编一个函数,求一维数组a中的最大值,函数的形参自己确定。
s=max(a())
PrivateSubCommand30_Click()
30.编写一个过程计算并输出区间[100,1000]内所有素数的和(要求判断素数使用过程(函数或子过程)来实现。
Dimi%,sum!
f%
Fori=100To1000
Callprocs(i,f)
Iff=1Then