VB例程序复习试题.docx

上传人:b****6 文档编号:5988688 上传时间:2023-01-02 格式:DOCX 页数:31 大小:32.13KB
下载 相关 举报
VB例程序复习试题.docx_第1页
第1页 / 共31页
VB例程序复习试题.docx_第2页
第2页 / 共31页
VB例程序复习试题.docx_第3页
第3页 / 共31页
VB例程序复习试题.docx_第4页
第4页 / 共31页
VB例程序复习试题.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

VB例程序复习试题.docx

《VB例程序复习试题.docx》由会员分享,可在线阅读,更多相关《VB例程序复习试题.docx(31页珍藏版)》请在冰豆网上搜索。

VB例程序复习试题.docx

VB例程序复习试题

参考程序:

1.编写程序,求下面级数前n项的和S,以此作为数π*π/12的近似值,要求末项的绝对值小于0.00001,计算并输出和数S。

(其中^表示幂运算)0.82247

π*π/12=1-1/(2*2)+1/(3*3)-1/(4*4)+……+(-1)^(n-1)/(n*n)+……

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click

DimnAsInteger,q,sAsDouble

n=1

q=1

s=1

DoWhileq>=0.00001

n=n+1

q=1/(n*n)

s=s+(-1)^(n-1)*q

Loop

MsgBox(s)

EndSub

3.有一个数列,其前三项分别为1,2,3,从第四项开始,每项均为其相邻的前三项之和的1/2,问:

该数列从第几项开始,其数值超过1000。

32

PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click

Dima1,a2,a3,a4AsDouble,nAsInteger

a1=1

a2=2

a3=3

n=3

Do

a4=(a1+a2+a3)/2

n=n+1

a1=a2

a2=a3

a3=a4

LoopUntila4>1000

MsgBox(n)

EndSub

1.编写程序,计算并输出所有6位正整数中同时能被13和20整除的数的个数n及它们的 立方根的和。

3462275112.3125

PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click

Dimi,nAsInteger,sAsDouble

n=0

s=0

Fori=100000To999999

IfiMod13=0AndiMod20=0Then

n=n+1

s=s+i^(1/3)

EndIf

Next

MsgBox("个数为:

"+Str(n)+vbCrLf+"立方根之和为:

"+Str(s))

EndSub

一、编写程序,求级数(1!

2!

3!

4!

.5!

......)中偶数项的部分和为ES,在求和时,以第一个大于9999偶数项为末项,计算并输出部分和ES与求和所用到的偶数项的总项数。

ES=2!

+4!

+6!

+……

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click

DimnAsInteger,q,sAsDouble

n=2

q=2

s=q

DoWhileq<9999

n=n+2

q=q*(n-1)*n

s=s+q

Console.WriteLine(Str(n)+""+Str(q))

Loop

MsgBox(Str(n)+vbCrLf+Str(q)+vbCrLf+Str(s))

EndSub

二、编写程序,计算并输出下面级数当n等于某整数值时的部分和的值D(设n=20,x=1.0)。

(其中^表示幂运算)

e^(-x)=1-x/1!

+x^2/2!

-x^3/3!

+x^4/4!

-…+(-1)^n*x^n/n!

+……

'e^(-x)=1-x/1!

+x^2/2!

-x^3/3!

+x^4/4!

-…+(-1)^n*x^n/n!

+……(设n=20,x=1.0)

PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click

Dimi,nAsInteger,x,q,sAsDouble

n=20

x=1.0

q=1

s=1

Fori=1Ton

q=q*x/i

s=s+(-1)^i*q

Next

MsgBox(s)

EndSub

三、编写程序,计算500以内有多少对孪生素数。

素数是指除了1和该数本身,不能被任何整数整除的数。

(孪生素数是指两个素数的差值为2,例如:

3和5,5和7,11和13就是3对孪生素数。

'计算500以内有多少对孪生素数

PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click

Dimi,j,k,nAsInteger,flag1,flag2AsBoolean,str1AsString

str1=""

n=0

Fori=3To500Step2

flag1=True

Forj=2Toi-1

IfiModj=0Then

flag1=False

ExitFor

EndIf

Next

flag2=True

k=i+2

Forj=2Tok-1

IfkModj=0Then

flag2=False

ExitFor

EndIf

Next

Ifflag1Andflag2Then

n=n+1

str1=str1+Str(i)+""+Str(k)+vbCrLf

EndIf

Next

MsgBox(Str(n)+"对"+vbCrLf+str1)

EndSub

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click

'编写程序,实现一维数组A(m)元素值的循环左移n位。

'例:

A=(12345)左移3位后,A=(45123)

Dima(9),b(9)AsInteger

Dimi,nAsInteger,sAsString

TextBox1.Text=""

TextBox2.Text=""

s=""

Fori=0To9

a(i)=Int(Rnd()*100)

s=s+Str(a(i))+""

Next

TextBox1.Text=s

s=""

n=InputBox("请输入要左移的位数:

")

Fori=0To9

b(i)=a((i+n)Mod10)

s=s+Str(b(i))+""

Next

TextBox2.Text=s

EndSub

PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click

'向一个数组A(m)中的任意第i个元素处插入一个数据x

Dima(10),i,j,xAsInteger

DimsAsString

TextBox1.Text=""

TextBox2.Text=""

s=""

Fori=0To9

a(i)=Int(Rnd()*100)

s=s+Str(a(i))+""

Next

TextBox1.Text=s

s=""

j=InputBox("请输入要插入的位置:

")

x=InputBox("请输入要插入的数据:

")

Fori=9TojStep-1

a(i+1)=a(i)

Next

a(j)=x

Fori=0To10

s=s+Str(a(i))+""

Next

TextBox2.Text=s

EndSub

PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click

'查找一个数x是否存在于数组中,若存在,则显示它的位置。

Dima(9),i,j,xAsInteger

DimsAsString

TextBox1.Text=""

TextBox2.Text=""

s=""

Fori=0To9

a(i)=Int(Rnd()*100)

s=s+Str(a(i))+""

Next

TextBox1.Text=s

s=""

x=InputBox("请输入要查找的数据:

")

Fori=0To9

Ifx=a(i)Then

s=s+Str(i)+""

EndIf

Next

TextBox2.Text=s

EndSub

PrivateSubButton4_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton4.Click

Dima()AsInteger={2,8,7,6,4,28,70,25}

Dimb()AsInteger={79,27,32,41,57,66,78,80}

Dimc(7)AsInteger

DimiAsInteger

Dimstr1,str2,str3AsString

str1="A数组为:

"

str2="B数组为:

"

str3="C数组为:

"

Fori=0To7

c(i)=a(i)+b(i)

str1=str1+Str(a(i))

str2=str2+Str(b(i))

str3=str3+Str(c(i))

Next

3.把50-85这36个自然数按行赋给二维数组A(5,5),计算输出主对角线以上(含主对角线)各元素值的立方根之积。

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click

'把50-85这36个自然数按行赋给二维数组A(5,5),

'计算输出主对角线以上(含主对角线)各元素值的立方根之积。

Dima(5,5),i,j,nAsInteger

DimbAsDouble

DimsAsString

s=""

b=1

n=50

Fori=0To5

Forj=0To5

a(i,j)=n

n=n+1

s=s+Str(a(i,j))+""

Ifj>=iThenb=b*a(i,j)^(1/3)

Next

s=s+vbCrLf

Next

s=s+"主对角线以上各元素值的立方根之积为:

"+Format(b,"0,000.00")

MsgBox(s)

EndSub

4.编写程序,建立一个4×6的二维数组(数据自定或由程序随机产生),求各行最大元素之和。

PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click

'编写程序,建立一个4×6的二维数组(数据自定或由程序随机产生),求各行最大元素之和。

Dima(3,5)AsInteger

Dimi,j,ms,mAsInteger

DimsAsString

s="源数组为:

"+vbCrLf

Fori=0To3

Forj=0To5

a(i,j)=Int(Rnd()*100)

s=s+Str(a(i,j))+Space(6-Len(Str(a(i,j))))

Next

s=s+vbCrLf

Next

ms=0

Fori=0To3

m=-1

Forj=0To5

Ifa(i,j)>mThenm=a(i,j)

Next

ms=ms+m

Next

s=s+"各行最大元素之和为:

"+Str(ms)

MsgBox(s)

EndSub

1.编写程序,自己产生一个二维数组A(5,5),计算数组中每一行数据的平均值,对该数组增加1列,将求出的行平均值存于该行最后1列。

PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click

'编写程序,自己产生一个二维数组A(5,5),计算数组中每一行数据的平均值,对该数组增加1列,将求出的行平均值存于该行最后1列。

Dima(5,5)AsInteger

Dimi,j,kAsInteger

DimsAsString

s="源数组为:

"+vbCrLf

Fori=0To5

Forj=0To5

a(i,j)=Int(Rnd()*100)

s=s+Str(a(i,j))+Space(6-Len(Str(a(i,j))))

Next

s=s+vbCrLf

Next

ReDimPreservea(5,6)

Fori=0To5

a(i,6)=0

Forj=0To5

a(i,6)=a(i,6)+a(i,j)

Next

a(i,6)=a(i,6)/6

Next

s=s+"计算后数组:

"+vbCrLf

Fori=0To5

Forj=0To6

s=s+Str(a(i,j))+Space(6-Len(Str(a(i,j))))

Next

s=s+vbCrLf

Next

MsgBox(s)

EndSub

2.编写程序,建立一个6×6的二维数组(数据自定或由程序随机产生),输出数组中的最大元素,并统计最大元素所在行的所有元素之乘积。

PrivateSubButton4_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton4.Click

'编写程序,建立一个6×6的二维数组(数据自定或由程序随机产生),

'输出数组中的最大元素,并统计最大元素所在行的所有元素之乘积。

Dima(5,5)AsInteger

Dimi,j,m,miAsInteger

DimmmAsDouble

DimsAsString

s="源数组为:

"+vbCrLf

Fori=0To5

Forj=0To5

a(i,j)=Int(Rnd()*100)

s=s+Str(a(i,j))+Space(6-Len(Str(a(i,j))))

Next

s=s+vbCrLf

Next

m=-1

Fori=0To5

Forj=0To5

Ifa(i,j)>mThen

m=a(i,j)

mi=i

EndIf

Next

Next

s=s+"最大元素为:

"+Str(m)+vbCrLf

mm=1

Forj=0To5

mm=mm*a(mi,j)

Next

s=s+"所在行的所有元素之乘积为:

"+Format(mm,"0.00")

MsgBox(s)

EndSub

3.为9×9的二维数组a(9,9)部分元素进行赋值,所在位置的值为所在行号与列号的乘积,生成九九乘法表。

Dimi,jAsInteger

Dimstr1AsString=""

Dima(9,9)AsInteger

Fori=1To9

Forj=1To9

a(i,j)=i*j

str1=str1+Str(a(i,j))+Space(5-Len(Str(a(i,j))))

Next

str1=str1+vbCrLf

Next

TextBox1.Text=str1

Fori=1To9

Forj=1Toi

a(i,j)=i*j

str1=str1+Str(i)+"*"+Str(j)+"="+Str(a(i,j))+Space(5-Len(Str(a(i,j))))

Next

str1=str1+vbCrLf

Next

4.为二维数组a(6,6)元素进行赋值,生成“杨辉三角形”图形。

Dimi,jAsInteger

Dimstr1AsString=""

Dima(6,6)AsInteger

Fori=0To6

Forj=0Toi

Ifj=0Ori=jThen

a(i,j)=1

Else

a(i,j)=a(i-1,j)+a(i-1,j-1)

EndIf

str1=str1+Str(a(i,j))+Space(5-Len(Str(a(i,j))))

Next

str1=str1+vbCrLf

Next

TextBox1.Text=str1

1编写求

的函数和通用过程,分别调用求以下表达式的值。

y=

Functionadd2(ByValnAsInteger)AsInteger

Dimi,sAsInteger

s=0

Fori=1Ton

s=s+i

Next

Returns

EndFunction

PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click

DimyAsDouble

y=(add2(3)+add2(4)+add2(5))/(add2(6)+add2(7))

MsgBox(y)

EndSub

Subadd1(ByValnAsInteger,ByRefsAsInteger)

DimiAsInteger

s=0

Fori=1Ton

s=s+i

Next

EndSub

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click

Dimi,a(7)AsInteger,yAsDouble

Fori=3To7

add1(i,a(i))

Next

y=(a(3)+a(4)+a(5))/(a(6)+a(7))

MsgBox(y)

EndSub

'2编写求y=2*x*x-x的函数过程,调用该函数,计算

'当x=0.0,0.1,0.2,0.3,…,0.9,1.0时的相应y值,

'只要求输出这11个y值的最大值与最小值。

Functiony2(ByValxAsDouble)AsDouble

y2=2*x*x-x

EndFunction

PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click

DimiAsInteger,y(10),mx,mnAsDouble

Fori=0To10

y(i)=y2(i*0.1)

Next

mx=y(0)

mn=y(0)

Fori=1To10

Ify(i)>mxThenmx=y(i)

Ify(i)

Next

MsgBox("最大值是:

"+CStr(mx)+vbCrLf+"最小值是:

"+CStr(mn))

EndSub

'3编写函数过程,求任意正整数各位数字之和。

Functionshuzi(ByValnAsInteger)AsInteger

Dimm,s,iAsInteger

m=Len(Str(n))

s=0

Fori=1Tom

s=s+Val(Mid(Str(n),i,1))

Next

Ret

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

当前位置:首页 > 自然科学

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

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