您好,欢迎访问三七文档
VB经典案例1输入3个数,输出最大的数X=val(text1)y=val(text2)z=val(text3)ifx=ythenifx=zthenprintxelseprintzendifelseify=zthenprintyendif2有一元二次方程:aX2+bX+c=0,依次输入a,b,c,判断此方程是否有实根a=val(text1)b=val(text2)c=val(text3)Ifb*b-4*a*c=0thenprint“有实根”elseprint“无实根”endif3输入一个成绩,若大于等于60,则用消息框显示“恭喜!成绩通过!”,若小于60,则弹出消息框显示“抱歉!成绩没有通过!”N=val(text1)ifn=60thenmsgbox”恭喜!成绩通过!”elsemsgbox“抱歉!成绩没有通过!”endif4输入一年份,判断它是否为闰年,并显示有关信息(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)y=val(text1)ifymod4=0andymod100=0thenprint“y是闰年”elseprinty“不是闰年’”endif5输入学生的百分制成绩,转换输出为五级制成绩,90~100分转换为优秀,80~89转换为良好,70~79转换为中等,60~69转换为及格,0~60转换为不及格。Ifmark=90thengrade=‘优’elseIfmark=80thengrade=‘良’elseIfmark=70thengrade=‘中’elseIfmark=60thengrade=‘及格’elsegrade=”不及格”6随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。n=int(rnd*900+100)dimx%,a%,b%,c%a=xmod10b=int((xmod100)/10)c=int(x/100)printx;a*100+b*10+c7输入两个整数,求它们的最大公约数。Functiongcd%(byvalm%,byvaln%)ifmnthent=m:m=n:n=tR=mmodndowhile(r0)m=n:n=r:r=modnloopgcd=nendfunction8编程求200--400范围内5的倍数或7的倍数之和。dims%,i%s=0Fori=200to400ifimod5=0orimod7=0thens=s+iendifnextiprints9计算100~300之间所有能被3和7整除的数之和dims%,i%s=0fori=100to300Ifimod3=0andimod7=0thens=s+iendifnextiprint“s=”&s10分别统计1-100中,满足3的倍数、7的倍数的数各有多少。Dimn1%,n2%,i%n1=0:n2=0Fori=1to100ifimod3=0thenn1=n1+1ifimod7=0thenn2=n2+1nextiprintn1,n211某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。Dima(6)asintegeri%,max%,min%,sum%a(0)=val(text1.text)省略a(6)=val(text7.text)sum=a(0)+a(1)+a(2)+a(3)+a(4)+a(5)+a(6)max=a(0)min=a(0)fori=1to6ifmina(i)thenmin=a(i)Ifmaxa(i)thenmax=a(i)sum=sum+a(i)nextiprint“平均分”;(sum-min-max)/512输入一串字符,统计其中字母A出现的次数。dims$,i%,n%s=text1n=0fori=1tolen(s)c=mid(s,i,1)Ifc=”A”ORc=”a”thenn=n+1nextiprintn13我国目前有13亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26亿。x=13n=0dowhilex26x=x*1.008n=n+1loopprint“年数为:”;n;”人数为:”;xm=log(2)/log(1.008)ifint(m)mthenm=int(m)+1printm14小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少Dimn%,i%x=1fori=6to1step-1x=2*(x+1)printxnexti15求100以内的素数Dimm%,i%,tagasbooleanform=3to100step2tag=truefori=2tom-1ifmmodi=0Thentag=falsenextiIftag=truethenprintm&”是素数”elseprintm&”不是素数”Endifnextm16百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡案。Dimx%,y%,z%,n%n=0print“母鸡”,”公鸡”,”小鸡’forx=0to33fory=0to50Z=100-x-yn=n+1if3*x+2*y+0.5*z=100thenprintx,y,znextynextx17编程求斐波那契数列前11项。(斐波那契数列:F(0)=f(1)=1,F(n)=F(n-1)+F(n-2)n=2)Dimx()asintegerdimi%n=16redimx(n-1)x(0)=1x(1)=1fori=2ton-1X(i)=x(i-1)+x(i-2)nextifori=0ton-1printx(i),if(i+1)mod5=0thenprintnext18将输入的字符串以反序显示。例如:输入“ASDFGT”,显示“TGFDSA”Dimi,a,b,nasstringn=inputbox(“输入字符”)i=len(n)fora=1toi/2b=mid(n,a,1)Mid(n,a,1)=mid(n,i+1-a,1)mid(n,i+1-a,1)=bnextaprintn19随机产生10个[30,100]内的整数,求最大值及所对应的下标Dima(0to9)asintegeri%,max%,imax%fori=0to9a(i)=int(rnd*71+30)printa(i);nextimax=a(0)imax=0fori=1to9Ifa(i)maxthenmax=a(i):imax=inextiprint“max=”;max,”imax=”;imax20随机产生10个[30,100]内的整数,求最大值、最小值和平均值。Dima(0to9)asintegeri%,max%,min%,aver!fori=0to9a(i)=int(rnd*71+30)Nextimin=a(0)max=a(0)aver=a(0)fori=1to9ifa(i)maxthenmax=a(i)Ifa(i)minthenmain=a(i)aver=aver+a(i)nextifori=0to9printa(i);nextiprintPrint“max=”;max,”min=”;min,“aver=”;aver/1021随机产生10个[30,100]内的整数,求最小值及所对应的下标。Dima(0to9)asintegeri%,min%,imin%fori=0to9a(i)=int(rnd*71+30)printa(i);nextimin=a(0)imin=0fori=1to9Ifa(i)minthenmin=a(i):imin=inextiprint“min=”;min,”imin=”;imin22随机生成一个整型的二维数组,范围在[10,20]之间,以下三角形式输出该数组。Dima(4,4)asintegerfori=0to4forj=0to4a(i,j)=int(rnd*11+10)nextjnextiFori=0to4fori=0to4printa(i,j);nextjprintnexti23随机产生10个1~100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。Dima(1to10)asinteger,i%,max%,min%,aver%fori=1to10a(i)=int(rnd*100+1)nextiMin=a(1)max=a(1)aver=a(1)fori=2to10ifa(i)maxthenmax=a(i)Ifa(i)minthenMin=a(i)aver=aver+a(i)nextiprintprint“max=”;max,”min=”;min,”aver=”;aver/1024利用随机函数生成一个4×4的矩阵的二维矩阵,范围是[20,50]内的整数,输出该矩阵所有数据之和Dima(2,3),sum%fori=0to3forj=0to3a(i,j)=int(rnd*31+20)nextinextjFori=0to3forj=0to3printa(i,j);nextjprintnextifori=0to3forj=0to3Sum=sum+a(i,j)nextjnextiprint”sum=”;sum25已知有序数组a(),编程插入x(x的值为14)。数组a中的元素分别为{12,6,4,89,75,63,100,20,31}。Dima(),i%,k%,x%,n%a=array(12,6,4,89,75,63,100,20,31)n=ubound(a)x=val(text1)fork=0tonifxa(k)thenexitfornextkredimpreservea(n+1)fori=ntokstep-1a(i+1)=a(i)nextia(k)=xfori=0ton+1printa(i);nexti26编写一函数,计算Double类型一维数组所有元素的平均值。Functionavg(a())asdoubledimi%,s#m%,n%s=0m=Lbound(a);n=ubound(a)fori=mtons=s+a(i)nextiAvg=s/(n-m+1)endfunction27用函数过程求表达式1+1/2+1/3+1/4+…+1/n的和。Functionsum(n%)assingledimi%s!S=0fori=1tonS=s+1/inextisum=sendfunction28编一子过程ProcMin,求一维数组a中的最小值,子过程的形参自己确定。Dima(1to10),amin,i%fori=1to10a(i)=-int(rnd*101+300)printa(i);nextiCalls(a(),amin)printprint”最小值”;aminendsubsubs(b(),min)dimi%min=b(1)Fori=2to9ifb(i)minthenmin=b(i)nexti29编一个函数,求一维数组a中的最大值,函数的形参自己确定。Functionamax(a()asinteger)dimi%,max%max=a(Lbound(a))fori=Lbound(a)+ubound(a)ifa(i)maxthenmax=a(i)nextiamax=maxendfunction30编写一个程序,计算并输出区间[100,1000]内所有素数的和。要求:判断素数使用过程(函数或子过程)来实现。然后调用该过程求范围内各素数的和。Functions%dimm%,tagasblooean,i%M=val(x)tag=tureFori=2ton-1ifnmodi=0thentag=falsenextiIftagthens=xendfunctionPrivatesub.command1_click()Dimi%,k%fori=101to1000Ifs(i)thenlist1.additemiNextiSum=0Fork=0tol
本文标题:VB编程题经典案例
链接地址:https://www.777doc.com/doc-6772250 .html