30道编程题答案.docx
- 文档编号:10326060
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:19
- 大小:18.61KB
30道编程题答案.docx
《30道编程题答案.docx》由会员分享,可在线阅读,更多相关《30道编程题答案.docx(19页珍藏版)》请在冰豆网上搜索。
30道编程题答案
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
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
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
PrivateSubCommand17_Click()
'21.随机产生10个[30,100]内的整数,求最小值及所对应的下标。
Dima(10)AsInteger
Fori=0To9
a(i)=Int(Rnd*70+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
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
PrivateSubCommand18_Click()
'22.随机生成一个整型的二维数组,范围在[10,20]之间,以下三角形式输出该数组。
Dima(10,10)AsInteger
Fori=0To9
Forj=0To9
a(i,j)=Int(Rnd*20+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*101)
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
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
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*70+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*70+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
PrivateSubCommand24_Click()
'24.利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,输出该矩阵所有数据之和
Dima(4,4)AsInteger
Dimsum%,i%,j%
Fori=0To3
Forj=0To3
a(i,j)=Int(Rnd*30+20)
sum=sum+a(i,j)
Nextj
Nexti
Fori=0To3
Forj=0To3
Printa(i,j),
Nextj
Nexti
MsgBox("sum="&sum)
EndSub
PrivateSubCommand14_Click()
'4.输入一年份,判断它是否为闰年,并显示有关信息。
(判断闰年的条件是:
年份能被4整除但不能被100整除,或者能被400整除)
yes=Val(InputBox("year"))
IfyesMod4=0AndyesMod100<>0OryesMod400=0Then
MsgBox(yes&"是闰年")
Else
MsgBox(yes&"不是闰年")
EndIf
EndSub
PrivateSubCommand7_Click()
'14.小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少?
X=1
Fori=6To1Step-1
X=(X+1)*2
Nexti
MsgBox(X)
EndSub
PrivateSubCommand8_Click()
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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 30 编程 答案