VB 常考编程题型.docx
- 文档编号:3565963
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:18
- 大小:64.89KB
VB 常考编程题型.docx
《VB 常考编程题型.docx》由会员分享,可在线阅读,更多相关《VB 常考编程题型.docx(18页珍藏版)》请在冰豆网上搜索。
VB常考编程题型
1.利用随机函数产生20个50到100之间的随机整数,显示它们的最大值、最小值和平均值
DimmaxAsInteger,minAsInteger,sumAsInteger
n=Int(Rnd*51)+50
max=n
min=n
sum=sum+n
Printn;
Fori=1To19
Randomize
n=Int(Rnd*50)+50
Ifn>maxThenmax=n
Ifn sum=sum+n Printn; Nexti Print Print"随机20个数的最大值和最小值,平均值分别是"&max&"和"&min&"与"&sum/20 2求两个数的最大公约数和最小公倍数 方法一: 辗转相除法 Dimm%,n%,r%,t5 m=InputBox("请输入第一个整数") n=InputBox("请输入第二个整数") Ifm m=n: n=t Do r=mModn m=n n=r LoopUntilr=0 Print"最大公约数是: ";m 方法二: DimnAsInteger,mAsInteger,rAsInteger,iAsInteger n=InputBox("请输入第一个数") m=InputBox("请输入第二个数") r=IIf(n Fori=rTo1Step-1 IfnModi=0AndmModi=0Then Printn&","&m&"这两个数的最大公约是"&i ExitFor EndIf Nexti Printn&","&m&"这两个数的最小公倍数是"&n*m/i EndSub 3判断一个数是否为素数,假定概数是n 方法一: 如果是不素数提前结束循环,是素数,退出循环是循环变量的值不满足终止 PrivateSubForm_Click() Dimn%,i% n=InputBox("请输入一个数") Fori=2Ton-1 IfnModi=0Then Printn&"不是素数" ExitFor EndIf Nexti Ifi=nThen Printn&"是素数" EndIf EndSub 方法二: 不管这个数是否为素数,假定它是素数,用一个变量(一般用flag)记住它是素数的状态(flag=1),否则反之flag=0 PrivateSubForm_Click() Dimn%,i%,flag% flag=1 n=InputBox("请输入一个数") Fori=2Ton-1 IfnModi=0Then flag=0 ExitFor EndIf Nexti Ifflag=1Then Printn&"是素数" Else Printn&"不是素数" EndIf EndSub 4找出100到300之间的所有素数,并且5个一行输出 PrivateSubForm_Click() Dimn%,i%,flag% n=0 Forj=100To300 flag=1 Fori=2Toj-1 IfjModi=0Then flag=0 ExitFor EndIf Nexti Ifflag=1Then Printj; n=n+1 IfnMod5=0ThenPrint EndIf Nextj EndSub 5求 DimiAsInteger,fzAsInteger,fmAsInteger DimsumAsSingle DimtAsSingle fz=1 t=1 i=1 sum=0 DoWhile1/t>=0.000001 sum=sum+fz/t i=i+1 t=t*(2*i)*(2*i+1) fz=-fz Loop Form1.Print"其和为",Format(sum,"0.0000000") 6求1+3+5+7+……+100的和 PrivateSubForm_Click() Dimi%,sum% sum=0 Fori=1To100Step2 sum=sum+i Nexti Print"1+3+....+100="&sum EndSub 7求1! +2! +3! +…..10! 之和 PrivateSubForm_Click() Dimi%,sum! f! ‘注意这里定义为单精度,否则产生错误 sum=0 f=1 Fori=1To10 f=f*i sum=sum+f Nexti Print"1! +2! +....+10! ="&sum EndSub 8打印九九乘法表 PrivateSubForm_Click() Dimi%,j% Fori=1To9 Forj=1To9 se=i&"×"&j&"="&i*j PrintTab((j-1)*9+1);se; Nextj Print'每输入完一行,打印换行,继续输出下一行 Nexti EndSub 打印下三角九九乘法表 PrivateSubForm_Click() Dimi%,j% Fori=1To9 Forj=1Toi se=i&"×"&j&"="&i*j PrintTab((j-1)*9+1);se; Nextj Print'每输入完一行,打印换行,继续输出下一行 Nexti EndSub 打印上三角九九乘法表 PrivateSubForm_Click() Dimi%,j% Fori=1To9 Forj=iTo9 se=i&"×"&j&"="&i*j PrintTab((j-1)*9+1);se; Nextj Print'每输入完一行,打印换行,继续输出下一行 Nexti EndSub 9猴子吃桃子。 小猴在某天摘桃若干个,当天吃掉一半,觉得还不过瘾,又多吃了一个;第二天吃了剩下的桃子的一半多一个;以后每天都这样吃下去,直到第7天要吃时只剩下一个,问小猴子第一天共摘下了多少个桃子? PrivateSubForm_Click() Dimn%,i% x=1'第7天的桃子 Print"第7天的桃子数为: 1只" Fori=6To1Step-1 x=(x+1)*2 Print"第";i;"天的桃子数为: ";x;"只" Nexti EndSub 10Fibonacci序列,序列为1,1,2,3,5,8……..输入该序列的前30项,并且五个一行输出 PrivateSubForm_Click() Dimi%,f1! f2! f3! f1=1'给第一项赋值 f2=1'给第二项赋值 Printf1;Space(3);f2; Fori=3To20Step1 f3=f1+f2 Printf3;Space(5); IfiMod5=0ThenPrint f1=f2 f2=f3 Nexti EndSub 1用户输入华氏温度F,将其转换为摄氏温度C。 转换公式: C=5÷9×(F-32) PrivateSubCommand1_Click() DimFAsLong,CAsLong F=InputBox("请输入华氏温度: ","例[4-6]华氏温度转换为摄氏温度") C=5/9*(F-32) Text1.Text=F Text2.Text=C EndSub PrivateSubCommand2_Click() End EndSub 2输入时间(小时,分和秒),然后使用输出消息框输出总计多少秒。 使用文本框输入数据,使用消息框输出计算结果, PrivateSubCommand1_Click() DimnAsSingle n=Text1.Text*3600+Text2.Text*60+Text3 i=MsgBox(Text1.Text&"小时"&Text2.Text&"分"&Text3.Text&"秒"&Chr(13)&"总计"&n&"秒",,"输出结果") EndSub 3用INPUTBOX函数从键盘输入三个数,输出其中的最大值。 DimaAsSingle,bAsSingle,cAsSingle,maxAsSingle a=Val(InputBox("请输入第一个数: ")) b=Val(InputBox("请输入第二个数: ")) c=Val(InputBox("请输入第三个数: ")) max=a Ifb>maxThenmax=b Ifc>maxThenmax=c Printa;"、";b;"、";c;"最大的数是: ";max 4用INPUTBOX函数从键盘输入一个学生的成绩,然后用MSGBOX输出该生的等级 方法一: DimgradeAsSingle grade=InputBox("请输入成绩") Ifgrade>=90Then MsgBox("优秀") ElseIfgrade>=80Then MsgBox("良好") ElseIfgrade>=70Then MsgBox("中等") ElseIfgrade>=60Then MsgBox("及格") Else MsgBox("不及格") 方法二: DimgradeAsInteger grade=InputBox("请输入学生成绩") SelectCasegrade Case90To100 MsgBox("优秀") Case80To90 MsgBox("良好") Case70To80 MsgBox("中等") Case60To70 MsgBox("及格") Case0To59 MsgBox("不及格") EndSelect 5编写账号和密码输入的检验程序,对输入的账号和密码规定如下: 1)账号不能超过6位数字,以tab键表示输入结束,当输入不正确时,如账号非非数字字符串,显示“账号必须为数字” 2)密码是4位数字,并且以*显示,初始密码假定为“1234” IfText2<>1234Then y=MsgBox("密码错误",5+64,"警告") Ify=4Then Text2="" Text2.SetFocus Else End EndIf Else MsgBox"成功登陆",0+32,"提醒" EndIf EndSub PrivateSubText1_LostFocus() IfNotIsNumeric(Text1)Then X=MsgBox("账号必须为数字",0,"警告") IfX=4Then Text1="" Text1.SetFocus Else End EndIf EndIf EndSub 6编程实现简易模拟计算机,简易计算器界面如下: PrivateSubCommand1_Click() Text3.Text=Val(Text1.Text)+Val(Text2.Text) Label1.Caption=Command1.Caption EndSub PrivateSubCommand2_Click() Text3.Text=Val(Text1.Text)-Val(Text2.Text) Label1.Caption=Command2.Caption EndSub PrivateSubCommand3_Click() Text3.Text=Val(Text1.Text)*Val(Text2.Text) Label1.Caption=Command3.Caption EndSub PrivateSubCommand4_Click() Text3.Text=Val(Text1.Text)/Val(Text2.Text) Label1.Caption=Command4.Caption EndSub PrivateSubCommand5_Click() Text1.Text="" Text2.Text="" Text3.Text="" EndSub 7运行界面如图,单击command1产生一个随即的三位数(利用随即函数RND),在文本框1中显示这个三位数,单击command2逆序显示该三位数,单击command3退出应用程序。 PrivateSubCommand1_Click() Text1.Text=Int(Rnd*900+100) EndSub PrivateSubCommand2_Click() Text2.Text=Text1Mod10&(Text1Mod100)\10&Text1\100 EndSub PrivateSubCommand3_Click() End EndSub 8字符串替换,程序运行效果如图,模仿WORD字处理软件中的“替换”功能,用两种方法实现。 DimstAsString DimnAsInteger PrivateSubCommand1_Click() st=Text1 n=InStr(st,Text2) Text4=Left(st,n-1)&Text3&Right(st,Len(st)-n) EndSub PrivateSubCommand2_Click() st=Text1 Text4=Replace(st,Text2,Text3) EndSub 9编写程序,当单击窗体时,在窗体上的随机位置,随机输出一个大写字母。 提示: 窗体的随机位置通过设置当前坐标Currentx,Currenty属性来确定 PrivateSubForm_click() CurrentX=Rnd*Form1.Width CurrentY=Rnd*Form1.Height Form1.ForeColor=QBColor(Rnd*15) PrintChr(Int(Rnd*26+65)) EndSub 数组常见法 1.算求10个数中的最大值及其下标 首先定义包含10个元素的一维数组,然后赋初值(两种方法,一是通过随机函数,二是用inputbox函数) PrivateSubForm_Click() Dima(1To10)AsInteger,maxAsInteger,i%,p%'max存放10个数中的最大值,p存放当前最大值的下标 Print"这10个数分别是" Print Fori=1To10 a(i)=Int(Rnd*91)+10'给一维数组赋初值,为10到100之间的随机值 'a(i)=InputBox("请输入10个数") Printa(i); Nexti max=a (1) p=1 Fori=2To10 Ifa(i)>maxThen max=a(i) p=i EndIf Nexti Print Print"这10个数中最大值和下标为: " Printmax,p EndSub 2.将包含10个元素的数组倒置(逆序),说明,即第一元素和最后一个元素交换,第二个元素和倒数第二个元素交换,一致类推,可以推导出两个要交换的数的下标之和为11(如果是n个数下标之和为n+1),如对10个数逆序输出交换的次数为5次,如果是n个数交换的次数为n/2次 PrivateSubForm_Click() Dima(1To10)AsInteger,i%,t% Print"交换前这10个数分别是" Print Fori=1To10 Randomize a(i)=Int(Rnd*91)+10'给一维数组赋初值,为10到100之间的随机值 Printa(i); Nexti Fori=1To5 t=a(i) a(i)=a(11-i) a(11-i)=t Nexti Print Print"交换后这10个数分别是" Print Fori=1To10 Printa(i); Nexti EndSub 3.从键盘输入10个数,然后求其偶数之和与奇数之和 PrivateSubForm_Click() Dima(1To10)AsInteger,i%,sum1%,sum% sum1=0'存放偶数之和 sum2=0'存放奇数之和 Print"交换前这10个数分别是" Print Fori=1To10 Randomize a(i)=Int(Rnd*91)+10'给一维数组赋初值,为10到100之间的随机值 Printa(i); Nexti Fori=1To10 Ifa(i)Mod2=0Then sum1=sum1+a(i) Else sum2=sum2+a(i) EndIf Nexti Print Print"这10个数中偶数之和为: "&sum1 Print"这10个数中奇数之和为: "&sum2 EndSub 4排序问题 一是冒泡法: PrivateSubForm_Click() Dima(1To10)AsInteger DimiAsInteger DimkAsInteger DimtAsInteger DimjAsInteger Print"这10个数为: " Fori=1To10Step1 Randomize a(i)=Int(Rnd*91)+10 Nexti Fori=1To10Step1 Printa(i);Space(5); Nexti Print Fori=1To9 Forj=i+1To9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 常考编程题型 编程 题型