专题08 VB综合应用之算法程序设计专项练习.docx

上传人:b****3 文档编号:27162304 上传时间:2023-06-27 格式:DOCX 页数:15 大小:94.61KB
下载 相关 举报
专题08 VB综合应用之算法程序设计专项练习.docx_第1页
第1页 / 共15页
专题08 VB综合应用之算法程序设计专项练习.docx_第2页
第2页 / 共15页
专题08 VB综合应用之算法程序设计专项练习.docx_第3页
第3页 / 共15页
专题08 VB综合应用之算法程序设计专项练习.docx_第4页
第4页 / 共15页
专题08 VB综合应用之算法程序设计专项练习.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

专题08 VB综合应用之算法程序设计专项练习.docx

《专题08 VB综合应用之算法程序设计专项练习.docx》由会员分享,可在线阅读,更多相关《专题08 VB综合应用之算法程序设计专项练习.docx(15页珍藏版)》请在冰豆网上搜索。

专题08 VB综合应用之算法程序设计专项练习.docx

专题08VB综合应用之算法程序设计专项练习

专题8VB综合应用之算法程序设计(专项练习)

1.有一段VB程序,代码如下:

Fori=1To3

Forj=8Toi+1Step-1

Ifa(j)

t=a(j):

a(j)=a(i):

a(i)=t

EndIf

Nextj

Nexti

数组元素a

(1)到a(8)的值依次为“35,18,14,20,30,15,28,26”,运行该程序段后,a(5)到a(8)的值依次是()

A.30,26,28,35B.14,15,18,20

C.26,15,18,14D.26,28,30,35

2.有如下程序:

constn=10

dima(1to10)asinteger,iasinteger

s=0

i=1

Dowhilea(i)>0andi<=n

s=s+1

i=i+1

loop

数组元素a

(1)至a(10)的数据依次为“1,5,2,3,8,-9,5,6,7,-10”,运用该算法处理后s的值是()

A.3B.5C.8D.10

3.有如下程序:

S=“”

Fori=1to3

Forj=7toi+1step-1

Ifa(j)

K=a(j):

a(j)=a(j-1):

a(j-1)=k

Endif

Nextj

s=s+str(a(i))

Nexti

Text1.text=s

数组元素a

(1)到a(7)的数据依次为“4,15,11,7,9,16,12”经过该程序段“加工”后,文本框text1中显示的内容是()

A.479B.161512

C.415117D.47911

4.有如下程序段:

Fork=1To4Step3

Fori=kTok+1

Forj=i+1Tok+2

Ifa(j)

temp=a(j):

a(j)=a(i):

a(i)=temp

EndIf

Nextj

Nexti

Nextk

数组元素a

(1)到a(6)的值依次为“9,8,7,6,5,4”,经过该程序段“加工”后,数组元素a

(1)到a(6)的值依次为()

A.9,8,7,6,5,4B.4,5,6,7,8,9

C.7,8,9,4,5,6D.9,8,7,4,5,6

5.有如下程序段:

Fori=1To2

Forj=5Toi+1Step-1

Ifa(j)>a(j-1)Then

t=a(j):

a(j)=a(j-1):

a(j-1)=t

EndIf

Nextj

Nexti

数组元素a

(1)到a(5)的值依次为“33,24,45,16,77”,经过该程序段“加工”后,数组元素a

(1)到a(5)的值依次为()

A.77,45,33,24,16B.16,24,33,45,77

C.77,45,24,16,33D.16,24,45,33,77

6.以下VB代码运行后,在文本框Textl中输入1,则选择语句Ifk<=9Thenk=k+i执行的次数为()

PrivateSubText1_Change()

DimkAsInteger,iAsInteger

k=Val(Text1.Text)

Fori=1To3

Ifk<=9Thenk=k+i

Nexti

Text1.Text=Str(k)

EndSub

A.3B.5C.6D.9

7.有一组升序排列的数:

3、6、7、10、12、17、26、31、79,如果用对分法查找数据10,则依次访问的数据为()

A.12、6、7、10B.12、7、10C.12、6、10D.12、7、6、10

8.字符串中任意连续的字符组成的子序列称为该字符串的子串,如字符串“abc”的子串有“a”“b”“c”“ab”“bc”“abc”。

输出字符串s所有子串的VB程序段如下:

PrivateSubCommandl_Click()

DimsAsString,slenAsInteger

DimIAsInteger,jAsInteger

s=Textl.Text

slen=Len(s)①

Fori=lToslen②

Forj=lToslen-i+1③

Listl.AddltemMid(s,j,i)④

Nextj

Nexti

EndSub

则下列说法正确在的是()

A.变量s放的是原始字符串的长度值

B.若输入“12345”,则字符串“245”是该字符串的子串

C.当j=2时,内循环遍历输出所有长度为2的子串

D.在保证算法功能一致的情况下,注释④处的语句可改写为Listl.AddltemMid(s,i,j)

9.有如下VB程序:

PrivateSubCommandl_Click()

Dims1,s2,chAsString

DimiAsInteger

s1=Text1.Text

Fori=1ToLen(sl)

ch=Mid(sl,i,1)

IfAsc(ch)>=65AndAsc(ch)<=90Then

ch=Chr(Asc(ch)+3)

EndIf

s2=ch+s2

Nexti

Label1.Caption=s2

EndSub

己知大写字母A的ASCII码为65。

运行上述程序,若文本框Textl中的内容为“Alb2C3”,单击命令按钮Commandl,标签Labell中显示的是()

A.Alb2C3B.3C2blAC.Dlb2F3D.3F2b1D

10.有如下程序段:

tail=6:

i=1:

r=Val(Text1.Text)

DoWhilei

Forj=tailToi+1Step-1

Ifa(j)>a(j-1)Then

t=a(j)

a(j)=a(j-1)

a(j-1)=t

EndIf

Nextj

i=i+1

Forj=iTotail-1

Ifa(j)

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

a(j+1)=t

EndIf

Nextj

tail=tail-1

Loop

数组元素a

(1)到a(6)的值依次为“73、56、28、61、44、92”,若在文本框Text1中输入“2”,则经过该程序段“加工”后,数组元素a

(1)到a(6)的值依次为()

A.73,61,56,92,44,28B.92,73,56,61,44,28

C.92,73,61,56,28,44D.92,73,61,56,44,28

11.数组元素a(0)到a(9)的值依次为“13,20,22,25,30,33,40,52,65,100”,文本框Text1中输入的值是33,执行该程序段,下列描述正确的是()

key=Val(Text1.Text)

i=0:

j=9:

s=0

DoWhilei<=j

m=Fix((i+j)\2+0.5)

s=s+1

Ifkey=a(m)Then

Label1.Caption=Label1.Caption+"→"+Str(m)

ExitDo'ExitDo表示退出循环

EndIf

Ifkey

Label1.Caption=Label1.Caption+"→"+Str(m)

Loop

Label2.Caption="历经"+CStr(s)+"步"

A.标签Label1显示内容为“→4→7→5”

B.标签Label2显示内容为“历经1步”

C.该程序为顺序查找,查找次数为3

D.该程序为对分查找,查找次数为4

12.有以下VB程序段

a

(1)=68:

a

(2)=88:

a(3)=76:

a(4)=60:

a(5)=98a(6)=100:

a(7)=64:

a(8)=85:

a(9)=99:

a(10)=59

Fori=1To9

b(i)=Abs(a(i+1)-a(i))

c(b(i)\10)=c(b(i)\10)+1

Nexti

Fori=0To10

Ifc(i)>0Then

Label1.Caption=Label1.Caption+""+Str(c(i))

EndIf

Nexti

数组c各元素初值为0,执行该程序段,标签Label1上显示的内容是()

A.23211B.13221

C.23221D.13212

13.小王制作了一个插入数据到指定位置的VB程序,程序运行时,在文本框Text1中输入“4”,Text2中输入“3”,当该程序段运行完毕后,数组d的元素值依次为()

Dimd(1To6)AsInteger

d

(1)=9:

d

(2)=7:

d(3)=5:

d(4)=4:

d(5)=2

DimmAsInteger,nAsInteger,iAsInteger

m=Val(Text1.Text)

n=Val(Text2.Text)

Fori=6Tom-1Step-1

d(i)=d(i-1)

Nexti

d(i)=n

A.397542B.937542

C.497542D.947542

14.有如下VB程序段,若数组元素d(l)〜d(6)的值分别为:

"f、”a"、”t”、”h”、”e”、”r”,在文本框Textl中输入3,则该程序运行结束后,标签Labell中显示的内容为()

n=Val(Text1.Text)

s=d(n)

Fori=1To5

Forj=6Toi+1Step-1

Ifd(j)

t=d(j):

j(j)=d(i):

d(i)=t

Ifi=nThens=s+"-"+d(i)

Ifj=nThens=s+"-"+d(j)

EndIf

Nextj

Nexti

Label1.Caption=s

A.t-a-r-f-hB.t-r-fC.t-e-fD.t-r-h

15.阅读如下程序,Label1中显示的是()

Dima(1To10)AsInteger

DimsAsString

Fori=1To10

a(i)=1

Nexti

Forj=1To5

Fori=1To10

IfiModj=0Then

a(i)=1-a(i)

EndIf

Nexti

Nextj

Fori=1To10

Label1.Caption=Label1.Caption&a(i)

Nexti

A.0110100010B.0110100000

C.1010100000D.1001011101

16.有如下VB程序段:

Dima(lTo5)AsInteger,iAsInteger,cAsInteger

a(l)=2:

a

(2)=1:

a(3)=3:

a(4)=4:

a(5)=5:

c=0

Fori=3To5

Ifa(i-2)+a(i-1)=a(i)Thenc=c+1

Nexti

Textl.Text=Str(c)

该程序段运行后,文本框Textl中显示的内容是()

A.1B.2C.3D.4

17.有如下VB程序段:

DimxAsLong,i,yAsInteger

DimAns,tAsLong

x=123

DoWhilex>0

y=xMod10

t=1

Fori=1Toy

t=t*y

Nexti

ans=ans+t

x=x\10

Loop

程序运行后,变量ans的值是()

A.14B.32C.123D.321

18.下面程序的功能是:

产生30个[1,100]范围内的随机整数,并统计这30个随机数中不重复的整数的个数,最后将统计结果显示在标签Label1中。

例如:

5个随机数[1,2,3,2,1]中不重复数字个数为3。

程序部分代码如下:

count=0

Fori=1To30

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

Nexti

Fori=1To30

Nexti

Fori=1To100

Ifb(i)<>0Thencount=count+1

Nexti

Label1.Caption="不重复数字个数"+Str(count)

为实现上述功能,则程序划线处应填入的语句为()

A.b(i)=1B.b(a(i))=a(b(i))+1

C.b(i)=b(i)+1D.b(a(i))=b(a(i))+1

19.VB程序实现如下功能:

在文本框Text1中输入要发放的红包总金额,文本框Text2中输入红包个数,单击“发红包”按钮Command1,在列表框List1中输出每个随机分配的红包金额,界面如图所示。

(1)代码“PrivateSubCommand1_Click()”中的Command1_Click是。

(单选,填字母:

A.属性名/B.对象名/C.过程名)

(2)为实现上述功能,请在划线处填入合适的代码。

PrivateSubCommand1_Click()

DimsAsSingle,xAsSingle,nAsInteger,iAsInteger,maxAsSingle,pAsInteger

Randomize

List1.Clear

s=Val(Text1.Text)

max=0:

p=0

Fori=1Ton

IfThen

x=s

Else

x=Rnd*s/(n-i)

EndIf

x=Int(100*x+0.5)/100

s=s-x

List1.AddItem"红包"+Str(i)+":

"+Str(x)

Ifx>maxThenp=i

Nexti

Label3.Caption="运气王为:

红包"+Str(p)

EndSub

(3)语句“x=Int(100*x+0.5)/100”的作用是。

(单选,填字母:

A.防止出现0元红包B.四舍五入保留两位小数C.求剩余金额)

20.对一个n×n的矩阵以“行”为单位进行升序排序,如下表所示是一个4×4的矩阵以行为单位进行升序排序。

李华编写了实现上述功能的程序,程序功能如下:

程序运行时,在文本框Text1中输入n(1<=n<=10)单击“产生”按钮Command1产生n×n个随机数,随机数的范围为[0,9],随机存储在数组a中,并以矩阵的形式在列表框List1上显示。

单击“排序”按钮Command2,对矩阵以“行”为单位进行升序排序,并在列表框List2输出排序后的矩阵。

在程序运行界面如下图所示。

实现上述功能的VB程序如下,请在划线处填入合适的代码。

DimnAsInteger

Dima(1To100)AsInteger

PrivateSubCommand1_Click()

DimiAsInteger,sAsString

s=""

Fori=1Ton*n

s=s+Str(a(i))

IfiModn=0Then

List1.AddItems

s=""

EndIf

Nexti

EndSub

PrivateSubCommand2_Click()

DimiAsInteger,jAsInteger,tAsInteger

DimsAsString

s=""

Fori=1Ton*n

k=i

Forj=i+1To

Ifa(j)

Nextj

Ifk<>iThent=a(k):

a(k)=a(i):

a(i)=t

IfiModn=0Then

List2.AddItems

s=""

EndIf

Nexti

EndSub

 

专题8VB综合应用之算法程序设计

(专项练习)(参考答案)

1

2

3

4

5

6

7

8

9

A

B

A

C

A

D

A

B

C

10

11

12

13

14

15

16

17

18

B

A

B

B

B

A

B

B

D

19.【答案】

(1)C

(2)①n=Val(Text2.Text)②i=n③max=x(3)B

【解析】

(1)事件处理过程名由对象名和事件名组成,故“Command1_Click”是事件处理过程名,故选C。

(2)①变量n表示红包个数,为整型数据,其值通过文本框text2输入,故答案为n=Val(Text2.Text)。

②代码中for循环主要用于分配n个红包的具体金额的,for内部嵌套了两个if语句,第一个块if用于判断是不是最后一个红包,若是,则将全部余额分配给最后这个红包。

故答案为i=n,或者n=i。

③代码中for循环嵌套的第二个块if语句用于找出最大红包,若红包金额x大于max,就将该x赋给max,故答案为max=x。

(3)语句“x=int(100*x+0.5)/100”是四舍五入较为常见的一种的方法,故选B。

20.【答案】①n=Val(Text1.Text)②

a(i)=Int(Rnd*10)

③((i-1)\n+1)*n④s=s+Str(a(i))

【解析】第①空,获取n的初始值,即矩阵大小。

第②空,生成矩阵中的每一个元素存储在a数组中,每个元素为[0,9]的随机整数。

第③空,每行排序,所以数据比较的范围为每n个数变动一次,比如7*7的矩阵,第一趟的比较范围为1到7个数,第二趟为8到14个数,第三趟为15到21个数„„,k=i初始化位置,所以j=i+1To((i-1)\n+1)*n。

第④空,数据排序后重新逐个连接输出。

淘宝统一定价:

13元

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

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

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

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