《VB编程题(有答案).pdf》由会员分享,可在线阅读,更多相关《VB编程题(有答案).pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 输入 3 个数,输出最大的数X=val(text1)y=val(text2)z=val(text3)if x=y then if x=z then print x else print z end if else if y=z then print y end if 2 有一元二次方程:aX2+bX+c=0,依次输入a,b,c,判断此方程是否有实根a=val(text1)b=val(text2)c=val(text3)If b*b-4*a*c=0 then print“有实根”else print“无实根”end if 3 输入一个成绩,若大于等于60,则用消息框显示“恭喜!成绩通过!”,
2、若小于 60,则弹出消息框显示“抱歉!成绩没有通过!”N=val(text1)if n=60 then msgbox”恭喜!成绩通过!”else msgbox“抱歉!成绩没有通过!”end if 4 输入一年份,判断它是否为闰年,并显示有关信息(判断闰年的条件是:年份能被4 整除但不能被100 整除,或者能被400 整除)y=val(text 1)if y mod 4=0 and y mod 100=0 then print“y是闰年”else print y“不是闰年?”end if 5 输入学生的百分制成绩,转换输出为五级制成绩,90100 分转换为优秀,8089 转换为良好,7079转换
3、为中等,6069 转换为及格,060 转换为不及格。If mark=90 then grade=,优?else If mark=80 then grade=,良?else If mark=70 then grade=,中?else If mark=60 then grade=,及格?else grade=”不及格”6 随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是 642。n=int(r n d*900+100)dim x%,a%,b%,c%a=x mod 10 b=int(x mod 100)/10)c=int(x/100)print x;a*100
4、+b*10+c 7 输入两个整数,求它们的最大公约数。Function gcd%(by val m%,by val n%)if mn then t=m:m=n:n=t R=m mod n do while(r 0)m=n:n=r:r=mod n loop gcd=n end function 8 编程求 200-400 范围内 5 的倍数或 7 的倍数之和。dim s%,i%s=0 For i=200 to 400 if i mod 5=0 or i mod 7=0 then s=s+i end if next i print s 9 计算 100300 之间所有能被3 和 7 整除的数之和d
5、im s%,i%s=0 for i=100 to 300 If i mod 3=0 and i mod 7=0 then s=s+i end if next i print“s=”&s 10 分别统计 1-100 中,满足 3 的倍数、7 的倍数的数各有多少。Dim n1%,n2%,i%n1=0:n2=0 For i=1to 100 if i mod 3=0 then n1=n1+1 if i mod 7=0 then n2=n2+1 next i print n1,n2 11 某次歌曲大奖赛,有7 个评委。如果分别输入7 个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,
6、求出该参赛者的平均得分。Dim a(6)as integer i%,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)for i=1 to 6 if mina(i)then min=a(i)If maxa(i)then max=a(i)sum=sum+a(i)next i print“平均分”;(sum-min-max)/5 12 输入一串字符,统计其中字母A 出现的次数。dim s$,i%,n%s=text1 n=0 for
7、 i=1 to len(s)c=mid(s,i,1)If c=”A”OR c=”a”then n=n+1 next i print n 13 我国目前有13 亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26 亿。x=13 n=0 do while x26 x=x*1.008 n=n+1 loop print“年数为:”;n;”人数为:”;x m=log(2)/log(1.008)if int(m)m then m=int(m)+1 print m 14 小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7 天只剩一个,问小猴原
8、有桃多少Dim n%,i%x=1 for i=6 to 1 step-1 x=2*(x+1)print x next i 15 求 100 以内的素数Dim m%,i%,tag as boolean for m=3 to 100 step 2 tag=true for i=2 to m-1 if m mod i=0 Then tag=false next i If tag=true then print m&”是素数”else print m&”不是素数”End if next m 16 百元买百鸡问题。假定小鸡每只5 角,公鸡每只2 元,母鸡每只3 元,编程求解购鸡案。Dim x%,y%,z
9、%,n%n=0 print“母鸡”,”公鸡”,”小鸡?for x=0 to 33 for y=0 to 50 Z=100-x-y n=n+1 if 3*x+2*y+0.5*z=100 then print x,y,z next y next x 17 编程求斐波那契数列前11 项。(斐波那契数列:F(0)=f(1)=1,F(n)=F(n-1)+F(n-2)n=2)Dim x()as integer dim i%n=16 redim x(n-1)x(0)=1 x(1)=1 for i=2 to n-1 X(i)=x(i-1)+x(i-2)next i for i=0 to n-1 print x
10、(i),if(i+1)mod 5=0 then print next 18 将输入的字符串以反序显示。例如:输入“ASDFGT”,显示“TGFDSA”Dim i,a,b,n as string n=inputbox(“输入字符”)i=len(n)for a=1 to i/2 b=mid(n,a,1)Mid(n,a,1)=mid(n,i+1-a,1)mid(n,i+1-a,1)=b next a print n 19 随机产生 10 个30,100 内的整数,求最大值及所对应的下标Dim a(0 to 9)as integer i%,max%,imax%for i=0 to 9 a(i)=int
11、(r n d*71+30)print a(i);next i max=a(0)imax=0 for i=1 to 9 If a(i)max then max=a(i):imax=i next i print“max=”;max,”imax=”;imax 20 随机产生 10 个30,100 内的整数,求最大值、最小值和平均值。Dim a(0 to 9)as integer i%,max%,min%,aver!for i=0 to 9 a(i)=int(r n d*71+30)Next i min=a(0)max=a(0)aver=a(0)for i=1 to 9 if a(i)max then
12、 max=a(i)If a(i)min then main=a(i)aver=aver+a(i)next i for i=0 to 9 print a(i);next i print Print“max=”;max,”min=”;min,“aver=”;aver/10 21 随机产生 10 个30,100 内的整数,求最小值及所对应的下标。Dim a(0 to 9)as integer i%,min%,imin%for i=0 to 9 a(i)=int(r n d*71+30)print a(i);next i min=a(0)imin=0 for i=1 to 9 If a(i)max t
13、hen max=a(i)If a(i)minthen Min=a(i)aver=aver+a(i)next i print print“max=”;max,”min=”;min,”aver=”;aver/10 24 利用随机函数生成一个4 4 的矩阵的二维矩阵,范围是 20,50内的整数,输出该矩阵所有数据之和Dim a(2,3),sum%for i=0 to 3 for j=0 to 3 a(i,j)=int(r n d*31+20)next i next j For i=0 to 3 for j=0 to 3 print a(i,j);next j print next i for i=0
14、 to 3 for j=0 to 3 Sum=sum+a(i,j)next j next i print”sum=”;sum 25 已知有序数组a(),编程插入x(x 的值为 14)。数组 a 中的元素分别为 12,6,4,89,75,63,100,20,31。Dim a(),i%,k%,x%,n%a=array(12,6,4,89,75,63,100,20,31)n=ubound(a)x=val(text1)for k=0 to n if xa(k)then exit for next k redim preserve a(n+1)for i=n to k step-1 a(i+1)=a(i
15、)next i a(k)=x for i=0 to n+1 print a(i);next i 26 编写一函数,计算Double 类型一维数组所有元素的平均值。Function avg(a()as double dim i%,s#m%,n%s=0 m=Lbound(a);n=ubound(a)for i=m to n s=s+a(i)next i Avg=s/(n-m+1)end function 27 用函数过程求表达式1+1/2+1/3+1/4+1/n 的和。Function sum(n%)as single dim i%s!S=0 for i=1 to n S=s+1/i next i
16、 sum=s end function 28 编一子过程ProcMin,求一维数组 a 中的最小值,子过程的形参自己确定。Dim a(1 to 10),amin,i%for i=1 to 10 a(i)=-int(r n d*101+300)print a(i);next i Call s(a(),amin)print print”最小值”;amin end sub sub s(b(),min)dim i%min=b(1)For i=2 to 9 if b(i)max then max=a(i)next i amax=max end function 30 编写一个程序,计算并输出区间100,
17、1000内所有素数的和。要求:判断素数使用过程(函数或子过程)来实现。然后调用该过程求范围内各素数的和。Function s%dim m%,tag as blooean,i%M=val(x)tag=ture For i=2 to n-1 if n mod i=0 then tag=false next i If tag then s=x end function Private mand1_click()Dim i%,k%for i=101 to1000 If s(i)then list1.additem i Next i Sum=0 For k=0 to list.listcount-1 sum=sum+val(list1.list(k)next k Label1=”100,1000内所有素数和为:”&sum