VB编程题目及答案.docx

上传人:b****8 文档编号:9485012 上传时间:2023-02-04 格式:DOCX 页数:20 大小:19.92KB
下载 相关 举报
VB编程题目及答案.docx_第1页
第1页 / 共20页
VB编程题目及答案.docx_第2页
第2页 / 共20页
VB编程题目及答案.docx_第3页
第3页 / 共20页
VB编程题目及答案.docx_第4页
第4页 / 共20页
VB编程题目及答案.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

VB编程题目及答案.docx

《VB编程题目及答案.docx》由会员分享,可在线阅读,更多相关《VB编程题目及答案.docx(20页珍藏版)》请在冰豆网上搜索。

VB编程题目及答案.docx

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

Print

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

Print

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在数组中的位置

IfX

Nextk

ReDimPreservea(n+1)'数组增加一个元素

Fori=nTokStep-1'数组元素后移一位,腾出位置

a(i+1)=a(i)

Nexti

a(k)=X

Fori=0Ton+1

Printa(i);

Next

EndSub

PrivateSubCommand26_Click()

'26.编写一函数,计算Double类型一维数组所有元素的平均值。

Dima(),n%,s!

a=Array(1,4,7,9,12,23,56)

n=UBound(a)

s=sum1(a())

MsgBox("sum="&s)

MsgBox("avg="&s/n)

EndSub

PrivateSubCommand27_Click()

'27.用函数过程求表达式1+1/2+1/3+1/4+…+1/n的和.

n=InputBox("INPUT")

s=sum2(n)

MsgBox("SUM2="&s)

EndSub

PrivateSubCommand28_Click()

'28.编一子过程ProcMin,求一维数组a中的最小值,子过程的形参自己确定

Dima(),n%,min%

a=Array(1,4,7,9,12,-23,56)

n=UBound(a)

Callprocmin(a(),min)

MsgBox("min="&min)

EndSub

'28.编一子过程ProcMin,求一维数组a中的最小值,子过程的形参自己确定

PrivateSubCommand1_Click()

Dima(),n%,min%

a=Array(1,4,7,9,12,-23,56)

n=UBound(a)

Callprocmin(a(),min)

MsgBox("min="&min)

EndSub

PrivateSubCommand29_Click()

'29.编一个函数,求一维数组a中的最大值,函数的形参自己确定。

Dima(),n%,s!

a=Array(1,4,7,9,12,23,56)

n=UBound(a)

s=max(a())

MsgBox("max="&s)

EndSub

 

PrivateSubCommand30_Click()

'30.编写一个过程计算并输出区间[100,1000]内所有素数的和(要求判断素数使用过程(函数或子过程)来实现。

调用该过程。

(提示:

只能被1和自身整除的自然数称为素数。

Dimi%,sum!

f%

sum=0

Fori=100To1000

Callprocs(i,f)

Iff=1Then

sum=sum+i

EndIf

Nexti

MsgBox("sum="&sum)

EndSub

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1