上海海事大学VB题库-程序设计_第1页
上海海事大学VB题库-程序设计_第2页
上海海事大学VB题库-程序设计_第3页
上海海事大学VB题库-程序设计_第4页
上海海事大学VB题库-程序设计_第5页
已阅读5页,还剩151页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计

r

'题目:(事件)双击窗体。

,(响应)编写代码功能如(图l)o将结果存入变量S中

答案:---------------

DimiAsInteger

s=1

Fori=1To10

s=$*i*i

Next

Print(CStRs))

题目:(事件)单击窗体。

,(响应)输出一个如图所示的由数字组成的倒三角形请将结果存入变量S中(要求利用

msgbox函数显示结果,使用for...next语句完成程序)

答案:---------------

DimtmpAsString

DimiAsInteger,jAsInteger

tmp=,H,

Fori=10To1Step-1

Forj=0Toi-1

tmp=tmp&CStr(j)

Next

tmp=tmp&vbCrLf

Next

MsgBoxtmp

s=tmp

'题目:用迭代法求某个数的平方根。已知求平方根的迭代公式如图:

算法思想:对于一个问题的求解x,可由给定的一个初值xO,根据某一迭代公式得到一个新

的值xl,这个新值xl比初值x0更接近要求的值x;再以新值作为初值,即:xl-xO,重新

按原来的方法求xl,重复这一过和直到|xl-x0|<e(某一给定的精度)。此时可将xl作为问题的

解。

答案:---------------

Dimx0AsSingle,xlAsSingle

x0=a/2迭代初值

xl=0.5*(xO+a/xO)

Do

x0=x「为下一次迭代作准备

xl=0.5*(xO+a/xO)

LoopWhileAbs(x1-xO)>0.00001

Fsqrt=xl

'题目:统计字符串中的单词个数。

'算法思路:

(1)从文本(字符串)的左边开始,取出一个字符;设逻辑量WT表示所取字符是否是单

词内的字符,初值设为False

(2)若所取字符不是“空格“,“逗号“,”分号"或“感叹号”等单词的分隔符,再判断WT是否

为True,若WT不为True则表是新单词的开始,让单词数Nw=Nw+l,让WT=True;

(3)若所取字符是“空格“,"逗号","分号"或”感叹号”等单词的分隔符,则表示字符不是单

词内字符,让WT=False;

(4)再依次取下一个字符,重得(2)(3)直到文本结束。

答案:---------------

DimnwAsInteger,nLAsInteger

DimiAsInteger

DimstrTAsString

DimWtAsBoolean

nw=0:Wt=False

nL=Len(RTrim(strI))

Fori=1TonL

strT=Mid$(strl,i,1)取第i个字符

SelectCasestrT

Case

Wt=False

CaseElse

IfNotWtThen

nw=nw+1

Wt=True

EndIf

EndSelect

Nexti

CountWord=nw

题目:编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=l+1/3+1/5+1/7

+...+l/(2m+l)例如:若m=9,则应输出:2.133255

答案:---------------

DimyAsDouble

DimiAsInteger

y=i

Fori=ITom

y=y+1/(2*i+1)

Next

fun=y

题目:编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=l/2+l/4+l/6+...

+l/2m例如:若m=9,则应输出:1.41448412698413

答案:---------------

DimyAsDouble

DimiAsInteger

Fori=1Tom

y=y+1/(2*i)

Next

fun=y

题目:将一个十进制整数m转换成一r(2—16)进制字符串。

方法:将m不断除r取余数,直到商为零,以反序得到结果。下面写出一转换函数,参数

idee为十进制数,ibase为要转换成数的基(如二进制的基是2,八进制的基是8等),函数

输出结果是字符串?

答案:---------------

DimstrDecR$,iDecR%

strDecR="”

DoWhileidee<>0

iDecR=ideeModibase

IfiDecR>=10Then

strDecR=Chr$(65+iDecR-10)&strDecR

Else

strDecR=iDecR&strDecR

EndIf

idee=idee\ibase

Loop

TrDec=strDecR

题目:对字符串进行加密处理。

1加密过程:将每个字母C加一序数K=5,即c=chr(Asc(c)-5),这时”z“一“u”,

”丫。T…当加序数后的字母小于”A“或”a”则c=Chr(Asc(c)-k+26)

答案:---------------

DimiAsInteger

DimstrpAsString,strTAsString,iAAsString

DimnlAsString

i=l:strp=',n

nl=Len(RTrim(strI))

DoWhile(i<=nl)

strT=Mid$(strl,i,1)取第i个字符

If(strT>=AndstrT<=nZn)Then

iA=Asc(strT)+5

IfiA>Asc(uZn)TheniA=iA-26

strp=strp+Chr$(iA)

ElseIf(strT>=naMAndstrT<=Mzn)Then

iA=Asc(strT)+5

IfiA>Asc("z”)TheniA=iA-26

strp=strp+Chr$(iA)

Else

strp=strp+strT

EndIf

i=i+1

Loop

EnyStr=strp

题目:-

题目:

I

题目:

I

'题目:应用冒泡法对数组A按升序排列

基本思想:(将相邻两个数比较,小的调到前头)

1)有n个数(存放在数组a(n)中),第一趟将每相邻两个数比较,小的调到前头,

经n-1次两两相邻比较后,最大的数已“沉底”,放在最后一个位置,小数上升”浮起”;

2)第二趟对余下的n-1个数(最大的数已"沉底")按上法比较,经n-2次两两相

邻比较后得次大的数;

3)依次类推,n个数共进行n-1趟比较,在第j趟中要进行n-j次两两比较。

答案:---------------

Dimi,j,tempAsInteger

Fori=1Ton-1

Forj=1Ton-i

Ifa(j)>a(j+l)Then

temp=a(j):a(j)=a(j+1):a(j+I)=temp

EndIf

Nextj

Nexti

题目::

题目:应用选择法对数组A按升序排列基本思想:

11)对有n个数的序列(存放在数组a(n)中),从中选出最小的数,与第1个数交换位

置;

'2)除第1个数外,其余n-1个数中选最小的数,与第2个数交换位置;

13)依次类推,选择了n-1次后,这个数列已按升序排列。

答案:---------------

Dimi,j,imin,tempAsInteger

Fori=1Ton-1

imin=i

Forj=i+1Ton

Ifa(imin)>a(j)Thenimin=j

Nextj

temp=a(i)

a(i)=a(imin)

a(imin)=temp

Nexti

题目:

题目:

题目::

'题目:将一个十进制整数m转换成一r(2—16)进制字符串。方法:将m不断除r取余数,

直到商为零,以反序得到结果。下面写出一转换函数,参数idee为十进制数,ibase为要转

换成数的基(如二进制的基是2,八进制的基是8等),函数输出结果是字符串?

答案:---------------

DimstrDecRS,iDecR%

strDecR=

DoWhileidee<>0

iDecR=ideeModibase

IfiDecR>=10Then

strDecR=Chr$(65+iDecR-10)&strDecR

Else

strDecR=iDecR&strDecR

EndIf

idee=idee\ibase

Loop

TrDec=strDecR

'题目:应用冒泡法对数组A按升序排列

,基本思想:(将相邻两个数比较,小的调到前头)

'1)有n个数(存放在数组a(n)中),第一趟将每相邻两个数比较,小的调到前头,

经n-1次两两相邻比较后,最大的数已"沉底”,放在最后一个位置,小数上升"浮起”;

,2)第二趟对余下的n-1个数(最大的数已"沉底")按上法比较,经n-2次两两相

邻比较后得次大的数;

,3)依次类推,n个数共进行n-1趟比较,在第j趟中要进行n-j次两两比较。

答案:---------------

Dimi,j,tempAsInteger

Fori=1Ton-1

Forj=1Ton-i

Ifa(j)>a(j+I)Then

temp=a(j):a(j)=a(j+1):a(j+1)=temp

EndIf

Nextj

Nexti

题目:对字符串进行加密处理。

加密过程:将每个字母C加一序数K=5,即c=chr(Asc(c)-5),这时“Z」"U”,

“Y"一T…当加序数后的字母小于“A“或匕”则c=Chr(Asc(c)-k+26)

答案:---------------

DimiAsInteger

DimstrpAsString,strTAsString,iAAsString

DimnlAsString

i=1:strp”

nl=Len(RTrim(strI))

DoWhile(i<=nl)

strT=Mid$(strl,i,1)'取第i个字符

If(strT>="A”AndstrT<="Z")Then

iA=Asc(strT)+5

IfiA>Asc("ZH)TheniA=iA-26

strp=strp+Chr$(iA)

ElseIf(strT>="aMAndstrT<="z'')Then

iA=Asc(strT)+5

IfiA>Asc("z”)TheniA=iA-26

strp=strp+Chr$(iA)

Else

strp=strp+strT

EndIf

i=i+1

Loop

EnyStr=strp

题目:

题目:将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种

零钞不少于1张,问有哪几种组合?将组合数存入变量OUT中。

答案:---------------

DimnAsInteger

Dimi%,j%,k%

PrintM5?l?0.5?H

Fori=1To20

Forj=1To100-i

k=100-i-j

If5#*i+I#*j+0.5*k=100Then

Printi,j,k

n=n+1

EndIf

Nextj

Nexti

out=n

'题目:应用选择法对数组A按升序排列

,基本思想:

,1)对有n个数的序列(存放在数组a(n)中),从中选出最小的数,与第1个数交换位

置;

'2)除第1个数外,其余n-1个数中选最小的数,与第2个数交换位置;

13)依次类推,选择了n-1次后,这个数列已按升序排列。

答案:---------------

Dimi,j,imin,tempAsInteger

Fori=1Ton-1

imin=i

Forj=i+1Ton

Ifa(imin)>a(j)Thenimin=j

Nextj

temp=a(i)

a(i)=a(imin)

a(imin)=temp

Nexti

题目:

'题目:用迭代法求某个数的平方根。已知求平方根的迭代公式如图:算法思想:对于一

个问题的求解X,可由给定的一个初值xO,根据某一迭代公式得到一个新的值xl,这个新

值xl比初值xO更接近要求的值x;再以新值作为初值,即:xl~xO,重新按原来的方法求

xl,重复这一过和直到|xl-xO|<e(某一给定的精度)。此时可将xl作为问题的解。

答案:---------------

DimxOAsSingle,xlAsSingle

x0=a/2迭代初值

xl=0.5*(xO+a/xO)

Do

x0=x「为下一次迭代作准备

xl=0.5*(xO+a/xO)

LoopWhileAbs(xl-xO)>0.00001

Fsqrt=xl

'题目:统计字符串中的单词个数。算法思路:

(I)从文本(字符串)的左边开始,取出一个字符;设逻辑量WT表示所取字符是否是

单词内的字符,初值设为False

(2)若所取字符不是"空格",“逗号”,“分号"或“感叹号”等单词的分隔符,再判断WT是否

为True,若WT不为True则表是新单词的开始,让单词数Nw=Nw+l,让WT=True;

(3)若所取字符是"空格","逗号","分号"或"感叹号”等单词的分隔符,则表示字符不是

单词内字符,让WT=False;

(4)再依次取下一个字符,重得(2)(3)直到文本结束。

答案:---------------

DimnwAsInteger,nLAsInteger

DimiAsInteger

DimstrTAsString

DimWtAsBoolean

nw=0:Wt=False

nL=Len(RTrim(strI))

Fori=1TonL

strT=Mid$(strl,i,1)取第i个字符

SelectCasestrT

Case

Wt=False

CaseElse

IfNotWtThen

nw=nw+1

Wt=True

EndIf

EndSelect

Nexti

CountWord=nw

题目:求两个数m,n的最大公约数p和最小公倍数q

答案:---------------

nm=n*m

Ifm<nThent=m:m=n:n=t

r=mModn

DoWhile(r<>0)

m=n

r=mModn

Loop

p=n

q=nm/n

,题目:求二维数组中最大元素及其所在的行和列并将最大值存入变量Max中,将最大值的

行位置存入row中,列位置存入变量column中.

答案:---------------

DimiAsInteger,jAsInteger

max=a(l,1):row=1:column=1

Fori=1To2

Forj=1To3

Ifa(i,j)>a(row,column)Then

max=a(i,j)

row=i

column=j

EndIf

Nextj

Nexti

Print”最大元素是";max

Print”在第"&row&”行六"第“&column&”列“

题目:判断一个数是否是素数。

答案:---------------

DimiAsInteger

Prime二True

Fori=2ToInt(Sqr(m))

IfmModi=0ThenPrime=False:ExitFor

Nexti

题目:

题目:(事件)单击窗体。

求200〜300之间既能被3整除又能被7整除的数。并求出所有数之和存入变量SUM中

答案:---------------

DimiAsInteger

Fori=201To300

If((iMod3)=0)And((iMod7)=0)Then

Print(CStr(i))

sum=sum+i

EndIf

Next

Printsum

'题目:(事件)单击窗体。

(响应)求出100以内所有素数的和,并将结果输出到窗体上,并存入所给变量SUM中。

答案:---------------

DimiAsInteger

DimjAsInteger

DimkAsInteger

DimbAsBoolean

b=False

Fori=2To100

b=False

j=CInt(Sqr(i))

Fork=2Toj

IfiModk=0Then

b=True

EndIf

Next

Ifb=FalseThen

sum=sum+i

EndIf

Next

Printsum

题目:(事件)双击窗体。

,(响应)求1+2+3+5+8+13+……前20项的和,并将结

,果在窗体上输出。将结果存入变量SUM中。

'注意:请在指定的事件内编写代码。

答案:---------------

DimiAsInteger

Dimj(lTo20)AsInteger

Fori=1To20

Ifi<3Then

j(i)=i

Else

j(i)=j(i-l)+j(i-2)

EndIf

sum=sum+j(i)

Next

Printsum

R第4题』『程序设计』(5分)(题号:157)

'【程序设计】

'题目:(事件)单击窗体。

,(响应)求10!的值,并将结果输出到窗体上。

'将结果存入变量SUM中。

'注意:请在指定的事件内编写代码。

答案:----------------

DimiAsInteger

sum=1

Fori=1To10

sum=sum*i

Printsum

R第1题』『程序设计』(5分)(题号:148)

【程序设计】

'题目:(事件)单击窗体。

,(响应)求10〜20之间所有素数的乘积并输出在窗体上。

'将结果存入变量L中。

'注意:请在指定的事件内编写代码。

答案:---------------

DimiAsInteger

DimjAsInteger

DimbAsBoolean

1=1

b=False

Fori=10To20

Forj=2Toi-2

IfiModj=OThen

b=True

EndIf

Next

Ifb=FalseThen

1=1*i

EndIf

b=False

Next

PrintStr(l)

K第2题1『程序设计』(5分)(题号:150)

【程序设计】

'题目:(事件)单击窗体。

,(响应)求1-1/2+1/3-1/4+.......+1/99-1/100的值。

,将结果存入变量J中。

'注意:请在指定的事件内编写代码。

答案:----------------

DimiAsInteger

Fori=1To100

IfiMod2=1Then

j=j+1/i

ElseIfiMod2=0Then

EndIf

Next

Printj

K第3题】『程序设计』(5分)(题号:131)

【程序设计】

'题目:(事件)单击窗体。

'(响应)己知8=1+1/4+1/9+1/16+1/254—-+1/100,

,结果输出在窗体上。

'将结果存入变量S中

答案:

DimiAsInteger

s=0

Fori=1To10

s=s+1/(iAi)

Next

Print(s)

K第4题W『程序设计』(5分)(题号:152)

【程序设计】

'题目:(事件)双击窗体。

'(响应)求1+2+3+5+8+13+……前20项的和,并将结

,果在窗体上输出。将结果存入变量SUM中。

'注意:请在指定的事件内编写代码。

答案:----------------

DimiAsInteger

Dimj(lTo20)AsInteger

Fori=1To20

Ifi<3Then

j(i)=i

Else

j(i)=j(i-D+j(i-2)

EndIf

sum=sum+j(i)

Next

Printsum

K第5题》『程序设计』(5分)(题号:157)

【程序设计】

题目:(事件)单击窗体。

,(响应)求10!的值,并将结果输出到窗体上。

将结果存入变量SUM中。

'注意:请在指定的事件内编写代码.

答案:---------------

DimiAsInteger

sum=1

Fori=1To10

sum=sum*i

Next

Printsum

K第6题』『程序设计』(5分)(题号:489)

,----------------------------------U程序设计】

t

题目:(事件)单击窗体。

'(响应)已知sum=l-l/3!+l/5!-l/7!+l/9!,

请将sum结果值输出到窗体上。

使用dowhile...loop语句完成程序

,注意:请在指定的事件内编写代码。

答案:----------------

DimiAsInteger

DimnAsInteger

i=1

P=1

DoWhilei<=10

p=p*i

IfiMod2=1Then

n=n+1

sum=sum+(-1)A(n-l)/p

EndIf

i=i+1

Loop

Printsum

K第7题R『程序设计』(5分)(题号:154)

【程序设计】

题目:(事件)单击窗体。

,(响应)求100以内偶数的和,并将结果输出在窗体上。

,将结果存入变量SUM中

,注意:请在指定的事件内编写代码。

答案:----------------

DimiAsInteger

Fori=1To100

IfiMod2=0Then

sum=sum+i

EndIf

Next

Printsum

R第8题』『程序设计』(5分)(题号:134)

【程序设计】

题目:(事件)双击窗体。

'(响应)s=20+21+22+-・・+263,求s的值,并将结果

'存储到变量S中。

注意:请在指定的事件内编写代码。

答案:----------------

DimiAsInteger

i=20

Whilei<=263

s=s+i

i=i+1

Wend

Print(CStr(s))

R第9题】『程序设计』(5分)(题号:142)

【程序设计】

题目:(事件)单击窗体。

'(响应)编写程序求10X11X12+11X12X13+—+15X16X17的结果,

,并将结果输出到窗体上。

,将结果存入变量M中

'注意:请在指定的事件内编写代码。

答案:----------------

Dimi,jAsInteger

DimsAsLong

Fori=lOTo15

s=1

Forj=iToi+2

s=s*j

Next

m=m+s

Next

Print(CStr(m))

K第1题』『程序改错』(5分)(题号:132)

【程序改错】

'题目:求s=2!+4!+6!+8!,阶乘的计算用Function过程

,fact实现

,注意:不可增加或删除程序行,也不可以更改程序结构

PrivateSubForm_Click()

dimiasinteger.sasLong

t**********FOUND**********

Fori=2To8

s=s+fact(i)

Nexti

Prints

EndSub

**********FOUND**********

PublicFunctionfact()

dimtasLong

dimiasinteger

t=1

Fori=1Ton

t=t*i

NextI

,**********FOUND**********

fact=i

EndFunction

答案:

1).Fori=2To8Step2

2).PublicFunctionfact(ByValnAsInteger)或PublicFunctionfact(nAsInteger)或

PublicFunctionfact(n%)或PublicFunctionfact(n)或PublicFunctionfact(ByVa)n%)或

PublicFunctionfact(ByValn)

3).fact=t

E第1题H『程序设计』(5分)(题号:149)

【程序设计】

'题目:(事件)单击窗体。

,(响应)求1!+2!+3!+……+10!的值,并在窗体上输出。

,结果存入变量L中。

'注意:请在指定的事件内编写代码。

答案:----------------

DimiAsInteger

DimsAsLong

DimjAsInteger

s=1

Fori=1To10

1=1+S

Next

PrintStr(l)

K第2题1『程序设计』(5分)(题号:146)

【程序设计】

'题目:(事件)单击窗体。

,(响应)求50以内所有偶数的和,并在窗体上输出出来.

将结果存入变量S中。

,注意:请在指定的事件内编写代码。

答案:

DimiAsInteger

Fori=2To50

If(iMod2)=0Then

s=s+i

EndIf

Next

Print(CStr。))

K第3题。『程序设计』(5分)(题号:140)

'【程序设计】

'题目:(事件)双击窗体。

,(响应)编写代码功能如(图1)。

'将结果存入变量S中

,注意:请在指定的事件内编写代码。

答案:----------------

DimiAsInteger

s=1

Fori=1To10

s=s*i*i

Next

Print(CStr(s))

K第4题7『程序设计』(5分)(题号:484)

【程序设计】

'题目:(事件)单击窗体。

'(响应)求从100到1000之间所有是3的倍数的数之

和,当和大于3000时,停止计算并输出和。请将结果输

出到窗体上,并存入所给变量SUM中。使用for...next语

句完成程序

'注意:请在指定的事件内编写代码。

答案:---------------

DimiAsInteger

sum=0

fori=100to1000

ifimod3=0then

sum=sum+i

ifsum>3000then

exitfor

endif

endif

i=i+l

next

Printsum

R第5题』『程序设计』(5分)(题号:156)

【程序设计】

'题目:(事件)双击窗体。

,(响应)求3+6+9+12+15+18+.......+300的和,并将结

,果输出到窗体上。将结果存入变量SUM中。

'注意:请在指定的事件内编写代码。

答案:----------------

DimiAsInteger

Fori=3To300

IfiMod3=0Then

sum=sum+i

EndIf

Next

Printsum

K第6题》『程序设计』(5分)(题号:412)

【程序设计】

题目:(事件)单击窗体。

(响应)输出所有的三位数,它满足该数中有某两位

为相同的数,且该数是一个完全平方数。

求出所有这些数的和,并将结果存入变量SUM中。

注意:请在指定的事件内编写代码。

答案:

dimaasinteger,basinteger

dimb3asinteger,b2asinteger,blasinteger

fora=10to31

b=a*a

b3=b\100

b2=(b\10)mod10

bl=bmod10

ifbl=b2orbl=b3orb2=b3then

?a,b

sum=sum+b

endif

nexta

?sum

K第7题。『程序设计』(5分)(题号:487)

【程序设计】

题目:(事件)单击窗体。

(响应)已知s=l+l/3!+l/5!+l/7!+l/9!,请将s结果值

输出到窗体上。使用dowhile...loop语句完成程序

注意:请在指定的事件内编写代码。

答案:----------------

DimiAsInteger

i=1

p=1

DoWhilei<=9

p=p*i

IfiMod2=IThen

s=s+1/p

EndIf

i=i+1

Loop

Prints

sum=s

K第8题』『程序设计』(5分)(题号:496)

【程序设计】

题目:(事件)单击窗体。

(响应)求1-100中为5或7的倍数的和。请将结果

输出到窗体上,并存入所给变量SUM中。

使用while...wend语句完成程序

'注意:请在指定的事件内编写代码。

答案:----------------

DimiAsInteger

i=1

Whilei<=100

IfiMod5=0OriMod7=0Then

Sum=Sum+i

EndIf

i=i+1

Wend

PrintSum

R第9题》『程序设计』(5分)(题号:500)

【程序设计】

'题目:(事件)单击窗体。

,(响应)输出一个如图所示的由数字组成的倒三角形

请将结果存入变量S中(要求利用msgbox函数

显示结果,使用for...next语句完成程序)

,注意:请在指定的事件内编写代码。

答案:----------------

DimtmpAsString

DimiAsInteger,jAsInteger

tmp=

Fori=lOTo1Step-I

Forj=0Toi-1

tmp=tmp&CStr(j)

Next

tmp=tmp&vbCrLf

Next

MsgBoxtmp

s=tmp

K第1题》『程序设计』(1分)(题号:478)

【程序设计】

题目:编写函数fun,其功能是:能计算从1开始到n的

,自然数中偶数的平方的和。

'注意:请在指定的函数过程内编写代码。

答案:----------------

DimsumAsInteger,iAsInteger

sum=0

Fori=2TonStep2

sum=sum+i*i

Next

fun=sum

K第2题】『程序设计』(1分)(题号:465)

【程序设计】

'题目:判断一个数是否是素数。

'注意:请在指定的事件内编写代码。

答案:----------------

DimiAsInteger

Prime=True

Fori=2ToInt(Sqr(m))

IfmModi=0ThenPrime=False:ExitFor

Nexti

K第3题】『程序设计』(1分)(题号:473)

【程序设计】

'题目:将一张面值为100元的人民币等值换成100张5元、

11元和0.5元的零钞,要求每种零钞不少于1张,

'问有哪儿种组合?将组合数存入变量OUT中。

注意:请在指定的事件内编写代码。

答案:---------------

DimnAsInteger

Dimi%,j%,k%

Printu5?l?0.5?H

Fori=1To20

Forj=lTolOO-i

k=100-i-j

If5#*i+l#*j+0.5*k=lOOThen

Printi,j,k

n=n+1

EndIf

Nextj

Nexti

out=n

K第4题】『程序设计』(1分)(题号:469)

【程序设计】

'题目:用迭代法求某个数的平方根•已知求平方根的迭代公式如图:

'算法思想:对于一个问题的求解x,可由给定的一个初值xO,根据某一

,迭代公式得到一个新的值xl,这个新值X1比初值X0更接近要求的值x;

'再以新值作为初值,即:xl-xO,重新按原来的方法求xl,重复这一过和

'直到|xl-xO|<€(某一给定的精度)。此时可将X1作为问题的解。

'注意:请在指定的事件内编写代码.

答案:----------------

DimxOAsSingle,xIAsSingle

x0=a/2迭代初值

xl=0.5*(xO+a/xO)

Do

xO=x「为下一次迭代作准备

xl=0.5*(xO+a/xO)

LoopWhileAbs(xl-xO)>0.00001

Fsqrt=xl

K第5题》『程序设计』(1分)(题号:472)

【程序设计】

'题目:统计字符串中的单词个数。

'算法思路:

'(1)从文本(字符串)的左边开始,取出一个字符;

,设逻辑量WT表示所取字符是否是单词内的字符,初值设为False

,(2)若所取字符不是"空格",“逗号”,"分号"或"感叹号"等单词

,的分隔符,再判断WT是否为True,若WT不为True则表是新单词的开始,

'让单词数Nw=Nw+l,让WT=True;

,(3)若所取字符是“空格“,”逗号",“分号"或“感叹号"等单词的分隔符,

则表示字符不是单词内字符,让WT=False;

,(4)再依次取下一个字符,重得(2)(3)直到文本结束。

'注意:请在指定的事件内编写代码。

答案:---------------

DimnwAsInteger,nLAsInteger

DimiAsInteger

DimstrTAsString

DimWtAsBoolean

nw=0:Wt=False

nL=Len(RTrim(strI))

Fori=1TonL

strT=Mid$(strl,i,1)取第i个字符

SelectCasestrT

Case

Wt=False

CaseElse

IfNotWtThen

nw二nw+1

Wt=True

EndIf

EndSelect

Nexti

CountWord=nw

K第6题X『程序设计』(1分)(题号:481)

【程序设计】

题目:编写函数fun其功能是:根据整型形参m,

计算如下公式的值:

y=l+1/3+1/5+1/7+...+l/(2m+l)

例如:若m=9,则应输出:2.133255

注意:请在指定的事件内编写代码。

答案:

DimyAsDouble

DimiAsInteger

y=1

Fori=1Tom

y=y+l/(2*i+l)

Next

fun=y

K第7题。『程序设计」(1分)(题号:479)

【程序设计】

'题目:编写函数fun其功能是:根据整型形参m,计算

'如下公式的值:y=l/2+1/4+1/6+...+l/2m

,例如:若m=9,则应输出:1.41448412698413

'注意:请在指定的函数过程内编写代码。

答案:----------------

DimyAsDouble

DimiAsInteger

Fori=1Tom

y=y+1/(2*i)

Next

fun=y

R第8题H『程序设计』(1分)(题号:470)

【程序设计】

'题目:将一个十进制整数m转换成一r(2—16)进制字符串。

方法:将m不断除r取余数,直到商为零,以反序得到结果。

下面写出一转换函数,参数idee为十进制数,ibase为要转

换成数的基(如二进制的基是2,八进制的基是8等),

,函数输出结果是字符串?

,注意:请在指定的事件内编写代码。

答案:

DimstrDecR$,iDecR%

strDecR二"”

DoWhileidee<>0

iDecR=ideeModibase

IfiDecR>=10Then

strDecR=Chr$(65+iDecR-10)&strDecR

Else

strDecR=iDecR&strDecR

EndIf

idee=idee\ibase

Loop

TrDec=strDecR

K第9题R『程序设计』(1分)(题号:471)

【程序设计】

题目:对字符串进行加密处理。

,加密过程:

,将每个字母C加一序数K=5,即c=chr(Asc(c)-5),

'这时"Z"f"U","z"—"u","Y"f"T"…

,当加序数后的字母小于"A"或"a"则c=Chr(Asc(c)-k+26)

'注意:请在指定的事件内编写代码。

1

答案:----------------

DimiAsInteger

DimstrpAsString,strTAsString,iAAsString

DimnlAsString

i=l:strp=',n

nl=Len(RTrim(strI))

DoWhile(i<=nl)

strT=Mid$(strl,i,1)取第i个字符

If(strT>=MA"AndstrT<=nZn)Then

iA=Asc(strT)+5

IfiA>Asc(,,Zn)TheniA=iA-26

strp=strp+Chr$(iA)

ElseIf(strT>=HanAndstrT<=Mzu)Then

iA=Asc(strT)+5

IfiA>Asc("z”)TheniAniA-26

strp=strp+Chr$(iA)

Else

strp=strp+strT

EndIf

i=i+1

Loop

EnyStr=strp

K第10题』『程序设计』(1分)(题号:483)

【程序设计】

'题目:编写函数fun,函数的功能是:求1到m

,之间的偶数之积。

'注意:请在指定的函数过程内编写代码。

答案:----------------

DimyAsDouble

y=1

DimiAsInteger

Fori=1Tom

IfiMod2=0Then

y=y*i

EndIf

Next

fun=y

R第11题X[程序设计』(1分)(题号:468)

'【程序设计】

,题目:求二维数组中最大元素及其所在的行和列

,并将最大值存入变量Max中,将最大值的行位置存入

row中,列位置存入变量column中.

'注意:请在指定的事件内编写代码。

答案:

DimiAsInteger,jAsInteger

max=a(l,1):row=1:column=1

Fori=1To2

Forj=1To3

Ifa(i,j)>a(row,column)Then

max=a(i,j)

row=i

column=j

EndIf

Nextj

Nexti

Print"最大元素是";max

Print"在第"&row&"行"第"&column&"列"

(第12题H[程序设计』(1分)(题号:475)

【程序设计】

'题目:编写函数fun,函数的功能是:计算n门课程

,的平均值,计算结果作为函数值返回。

'例如,若有5门课程的成绩是:92,76,69,

'58,88,则函数的值为76.6。

'注意:请在指定的事件内编写代码.

答案:----------------

DimiAsInteger

DimyAsSingle

Fori=1Ton

y=y+a(i)

Next

fun=y/n

K第13题H『程序设计』(1分)(题号:476)

【程序设计】

'题目:编写函数fun其功能是:根据整型形参m,

'计算如下公式的值:y=l⑵+l/4!+...+l/m!

'(m是偶数)

'注意:请在指定的事件内编写代码。

答案:----------------

DimiAsInteger,jAsInteger,tAsInteger

fun=0

Fori=2TomStep2

t=1

Forj=1Toi

t=t*j

Next

fun=fun+1/1

Next

K第14题H『程序设计』(1分)(题号:474)

【程序设计】

'题目::编写函数fun,函数的功能是:计算并输出给定

'整数n的所有因子之和(不包括1与自身)。规定

'n的值不大于1000?

例如:n的值为855时,应输出704。

'注意:请在指定的事件内编写代码。

答案:----------------

Dims,iAsInteger

Fori=2Ton-1

IfnModi=OThen

s=s+i

EndIf

Next

Fun=s

K第15题《『程序设计』(1分)(题号:464)

【程序设计】

'题目:求两个数m,n的最大公约数p和最小公倍数q

'注意:请在指定的事件内编写代码。

答案:................

nm=n*m

Ifm<nThent=m:m=n:n=t

r=mModn

DoWhile(r<>0)

m=n

n=r

r=mModn

Loop

p=n

q=nm/n

K第16题1『程序设计』(1分)(题号:467)

【程序设计】

题目:应用冒泡法对数组A按升序排列

,基本思想:(将相邻两个数比较,小的调到前头)

,1)有n个数(存放在数组a(n)中),第一趟将每相邻两个数比较,小的调到前头,

经n-1次两两相邻比较后,最大的数已“沉底”,放在最后一个位置,小数上升“浮起”;

⑵第二趟对余下的n・l个数(最大的数已“沉底”)按上法比较,经m2次两两相

邻比较后得次大的数;

,3)依次类推,n个数共进行n-1趟比较,在第j趟中要进行n-j次两两比较。

答案:---------------

Dimi,j,tempAsInteger

Fori=1Ton-1

Forj=1Ton-i

Ifa(j)>a(j+l)Then

temp=a(j):a(j)=a(j+1):a(j+I)=temp

EndIf

Nextj

Nexti

K第17题X『程序设计』(1分)(题号:477)

【程序设计】

,题目::编写函数fun其功能是:判断一个整数w的各位

,数字平方之和能否被5整除,可以被5整除则返

'回1,否则返回0

”注意:请在指定的事件内编写代码。

答案:----------------

DimkAsInteger,sAsInteger

Do

s=s+(wMod10)*(wMod10)

w=Int(w/10)

LoopWhilew<>0

IfsMod5=0Then

k=1

Else

k=0

EndIf

K第18题』『程序设计』(1分)(题号:466)

【程序设计】

'题目:应用选择法对数组A按升序排列

'基本思想:

,1)对有n个数的序列(存放在数组a(n)中),从中选出最小的数,与第I个数交换位

置;

'2)除第1个数外,其余n-l个数中选最小的数,与第2个数交换位置;

,3)依次类推,选择了n-l次后,这个数列已按升序排列。

'注意:请在指定的事件内编写代码。

答案:

Dimi,j,imin,tempAsInteger

Fori=1Ton-1

imin=i

Forj=i+1Ton

Ifa(imin)>a(j)Thenimin=j

Nextj

temp=a(i)

a(i)=a(imin)

a(imin)=temp

Nexti

K第19题》r程序设计』(1分)(题号:480)

【程序设计】

'题目:编写函数fun其功能是:根据整型形参m,

'计算如下公式的值:

'y=l/5+l/6+l/7+l/8+l/9+l/10...+l/(m+5)

'例如:若m=9,则应输出:1.168229

'要求:函数中用到的中间变量必须声明为Single类型。

’注意:请在指定的函数过程内编写代码。

答案:----------------

DimyAsDouble

DimiAsInteger

Fori=0Tom

y=y+1/(i+5)

Next

Fun=y

K第20题。『程序设计』(1分)(题号:482)

【程序设计】

'题目:编写函数fun,函数的功能是:求一个

,四位数的各位数字的立方和

'注意:请在指定的事件内编写代码.

答案:----------------

DimdAsInteger,kAsInteger,sAsInteger

Whilen>0

d=nMod10

s=s+d*d*d

n=n/10

Wend

fun=s

【程序设计】

'题目:编写函数fun,函数的功能是:计算n门课程

,的平均值,计算结果作为函数值返回。

'例如,若有5门课程的成绩是:92,76,69,

,58,88,则函数的值为76.6。

'注意:请在指定的事件内编写代码。

答案:---------------

DimiAsInteger

DimyAsSingle

Fori=1Ton

y=y+a(i)

Next

fun=y/n

R第2题】『程序设计』(1分)(题号:474)

【程序设计】

'题目::编写函数fun,函数的功能是:计算并输出给定

,整数n的所有因子之和(不包括1与自身)。规定

'n的值不大于1000?

,例如:n的值为855时,应输出704。

'注意:请在指定的事件内编写代码。

答案:----------------

Dims,iAsInteger

Fori=2Ton-1

IfnModi=OThen

s=s+i

EndIf

Next

Fun=s

K第3题。『程序设计』(I分)(题号:477)

【程序设计】

'题目::编写函数fun其功能是:判断一个整数w的各位

,数字平方之和能否被5整除,可以被5整除则返

'回1,否则返回0

'注意:请在指定的事件内编写代码。

答案:----------------

DimkAsInteger,sAsInteger

Do

s=s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论