23 数组.docx

上传人:b****6 文档编号:7983921 上传时间:2023-01-27 格式:DOCX 页数:20 大小:19.96KB
下载 相关 举报
23 数组.docx_第1页
第1页 / 共20页
23 数组.docx_第2页
第2页 / 共20页
23 数组.docx_第3页
第3页 / 共20页
23 数组.docx_第4页
第4页 / 共20页
23 数组.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

23 数组.docx

《23 数组.docx》由会员分享,可在线阅读,更多相关《23 数组.docx(20页珍藏版)》请在冰豆网上搜索。

23 数组.docx

23数组

2.3数组练习

一、选择题

1、在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:

PrivateSubCommand1_Click()

Dimarray1(10,10)AsInteger

Dimi,jASInteger

Fori=1To3

Forj=2To4

array1(i,j)=i+j

Nextj

Nexti

Text1.Text=array1(2,3)+array1(3,4)

EndSub

程序运行后,单击命令按钮,在文本框中显示的值是(A)

A、12B、13C、14D、15

提示:

即把下标相加赋值勤=给这个对应的数组。

2、在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:

PrivateSubCommand1_Click()

DimiASInteger,jASInteger

Dima(10,10)AsInteger

Fori=1To3

Forj=1To3

a(i,j)=(i–1)*3+j

Printa(i,j);

Nextj

Print

NextI

EndSub

程序运行后,单击命令按钮,窗体上显示的是(D)

A、

123

246

369

B、

234

345

456

C、

147

258

369

D、

123

456

789

3、设有如下程序:

OptionBase0

PrivateSubForm_Click()

Dima

DimiASInteger

a=Array(1,2,3,4,5,6,7,8,9)

Fori=0To3

Printa(5–i);

Next

EndSub

程序运行后,单击窗体,则在窗体上显示的是(C)

A、4321B、5432C、6543D、7654

4、在窗体上画一个命令按钮,名称为Command1,然后编写如下事件过程:

OptionBase0

PrivateSubCommand1_Click()

DimcityAsVariant

city=Array("北京","上海","天津","重庆")

Printcity

(1)

EndSub

程序运行后,如果单击命令按钮,则在窗体上显示的内容是(D)

A、空白B、错误信息C、北京D、上海

5、设在窗体上有一个名称为Command1的命令按钮,并有以下事件过程:

PrivateSubCommand1_Click()

StaticbAsVariant

b=Array(1,3,5,7,9)

……

EndSub

此过程的功能是把数组b中的5个数逆序存放(即排列为9,7,5,3,1)。

为实现此功能,省略号处的程序段应该是(C)

A、

Fori=0To5–1\2

tmp=b(i)

b(i)=b(5–i–1)

b(5–i–1)=tmp

Next

B、

Fori=0To5

tmp=b(i)

b(i)=b(5–i–1)

b(5–i–1)=tmp

Next

C、

Fori=0To5\2

tmp=b(i)

b(i)=b(5–i–1)

b(5–i–1)=tmp

Next

D、

Fori=1To5\2

tmp=b(i)

b(i)=b(5–i–1)

b(5–i–1)=tmp

Next

6、在窗体上画一个名称为Command1的命令按钮,然后编写如下代码:

OptionBase1

PrivateSubCommand1_Click()

d=0

c=10

x=Array(10,12,21,32,24)

Fori=1To5

Ifx(i)>cThen

d=d+x(i)

c=x(i)

Else

d=d-c

EndIf

Nexti

Printd

EndSub

程序运行后,如果单击命令按钮,则在窗体上输出的内容为(C)。

A、89B、99C、23D、77

7、以下有关数组定义的语句序列中,错误的是(D)

A、

Staticarr1(3)

arr1

(1)=100

arr1

(2)="Hello"

arr1(3)=123.45

B、

Dimarr2()AsInteger

DimsizeAsInteger

PrivateSubCommand2_Click()

size=InputBox("输入:

")

ReDimarr2(size)

......

EndSub

C、

OptionBase1

PrivateSubCommand3_Click()

Dimarr3(3)AsInteger

......

EndSub

D、

DimnAsInteger

PrivateSubCommand4_Click()

Dimarr4(n)AsInteger

......

EndSub

8、下面的语句或方法,错误的有(C)个(其中m和n都为integer型变量)

(1)dimarty(m,n)asinteger

(2)n=32764+5

(3)printA=A+B;A+B

(4)Chdrive"c:

"

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

提示:

(1)定义数组时的上下界必须确定值

(2)print语句不能打印关系式,可以打印表达式,(3)chdrive语句的参数是一个字符串型的参数,例如:

chdrive"d"

010705、下列程序打印结果为(A)。

PrivateSubCommand1_Click()

Dima(5)AsString

DimbAsInteger

DimiAsInteger

Fori=0to5

a(i)=i+1

Printa(i);

Nexti

EndSub

A、123456B、6C、123456D、0

提示:

字符串输出没有正负号,字符之间没有空格,数字有正负号,字符之间有空格。

9、以下程序的输出结果是(A)

optionbase1

privatesubcommand1_click()

dima(10),p(3)asinteger

k=5

fori=1to10

a(i)=i

nexti

fori=1to3

p(i)=a(i*i)

nexti

fori=1to3

k=k+p(i)*2

nexti

printk

endsub

A、33B、28C、35D、37

10、在窗体上添加一个命令按钮,名为command1,然后为该命令按钮编写如下事件过程,该过程执行结果为(B)

optionbase1

privatesubcommand1_click()

dimaasvariant

a=array(1,2,3,4)

j=1

fori=4to1step–1

s=s+a(i)*j

j=j*10

nexti

prints

endsub

A、4321B、1234C、34D、12

提示:

本题的难点是数组在循环中的计算。

11、在窗体上画一个名称为text1的文本框和一个名称为command1的命令按钮,然后编写如下事件过程:

privatesubcommand1_click()

dimarray1(10,10)asinteger

dimi,jasinteger

fori=1to3

forj=2to4

array1(i,j)=i+j

nextj

nexti

text1.text=array1(2,3)+array1(3,4)

endsub

程序运行后,单击命令按钮,在文本框中显示的值是(A)

A、12B、13C、14D、15

12、在窗体上添加一命令按钮,其名为command1,然后编写代码如下:

optionbase1

privatesubcommand1_click()

dimarr(4)asinteger

dimarr1(4)asinteger

n=3

fori=1to4

arr(i)=i

arr1(n)=2*n+i

nexti

printarr1(n);arr(n)

endsub

程序的运行结果为(C)

A、311B、113C、103D、313

提示:

本题难点是循环体内的变量赋值。

arr(3)=3比较容易理解,只是arr1(3)在四次循环中最后的结果替代了前面的值一,即arr1(3)=2*3+4=10

13、dimA(11to30)所定义的数组有(B)个元素

A、11B、20C、30D、330

提示:

数组的元素个数为(上界–下界+1)

14、下列事件的执行结果是(C)

PrivateSubCommand1_Click()

Dima(5)AsInteger

DimkAsInteger

DimtotalAsInteger

a

(1)=2

a

(2)=5

a(3)=4

a(4)=10

a(5)=6

Fork=1To5

total=total+a(k)

Nextk

Printtotal

EndSub

A、10B、15C、27D、35

15、下列程序的输出结果是(B)

PrivateSubCommand1_Click()

Dima(5,5)

Fori=1To3

Forj=1To4

a(i,j)=i*j

Nextj

Nexti

Forn=1To2

Form=1To3

Printa(m,n);"";

Nextm

Nextn

EndSub

A、246123B、123246

C、123456D、654321

16、下列程序的输出结果是(C)

OptionBase1

PrivateSubCommand1_Click()

a=Array(237,126,87,48,498)

m1=a

(1)

m2=1

Fori=2To5

Ifa(i)>m1Then

m1=a(i)

m2=i

EndIf

Nexti

Printm1,m2

EndSub

A、4842B、3714C、9854D、984

17、程序最后的结果是(D)

OptionBase1

PrivateSubCommand1_Click()

DimaAsVariant

a=Array(1,2,3,4)

j=1

Fori=4To1Step–1

s=s+a(i)*j

j=j*10

Nexti

Prints

EndSub

A、4321B、12C、34D、1234

18、有下列程序:

privatesubcommand1_click()

dimmyweek,myday

myweek=array("Mon","Tue","Wed","Thu","Fri","Sat","Sun")

myday=myweek

(2)

myday=myweek(4)

Msgboxmyday

endsub

运行后,弹出的消息窗口显示的是(A)

A、Fri

B、Tue

C、Wed

D、Thu

提示:

数组下界没有用optionbase1,说明其下界为0,所以myweek(4)为数组中第5个字符。

myweek

(2)中的数据被myweek(4)覆盖了

二、填空题:

1、设有程序:

OptionBase1

PrivateSubCommand1_Click()

Dimarr1,MaxasInteger

arr1=Array(12,435,76,24,78,54,866,43)

Max=arr1

(1)

Fori=1To8

Ifarr1(i)>MaxThenMax=arr1(i)

Nexti

Print"最大值是:

";Max

EndSub

以上程序的功能是:

用Array函数建立一个含有8个元素的数组,然后查找并输出该数组中元素的最大值。

请填空。

2、以下程序打印出两个矩阵,阅读程序,并在处填上正确内容

123

456

789

987

654

321

privatesubcommand1_click()

dimb(3,3)

fori=1to3

forj=1to3

k=k+1

b(i,j)=k

printb(i,j);

nextj

print

nexti

fori=3to1step–1

print

forj=3to1step–1

printb(i,j);

nextj

nexti

endsub

提示:

填空[10]和填空[12]的print语句起换行作用,填空[11]使数组的行逆序显示,填空[13]控制矩阵中同一行的元素按逆序显示。

空打印print操作是换行。

3、在程序中,关于数组的说明语句只有一条dima(100),则数组a包括了101个元素,数组的下标下界为0

提示:

在vb中,如果不指明数组下标的下界则缺省数组的下标的下界为0。

4、下列程序运行后,在窗口中显示______50_________

PrivateSubCommand1_Click()

Dima(100)

Fork=1To100

a(k)=2*k

Nextk

Printa(a(13)–1)

EndSub

5、以下程序完成的功能是:

单击命令按钮,显示如图所示矩阵。

请将程序中的_________处补充完整。

PrivateSubCommand1_Click()

Dima(5,5)

Fori=1To5:

a(1,i)=____i___:

Next

Fori=2To5

Forj=1To4

a(i,j)=a(____i–1,j+1______)

Nextj

a(i,j)=a(i–1,1)

Nexti

Fori=1To5

Forj=1To5

Printa(i,j);

Nextj

Print

Nexti

EndSub

6、以下是产生100个在–100~100之间的各不相同的随机整数的程序.填写完整.

PrivateSubCommand1_Click()

Dimb(100)

Forj=1To100

Do

IfRnd<0.5Thena=–1Elsea=1

b(j)=___a______*Int(Rnd*101)

flag=1

Fork=1To____j–1____

Ifb(j)=b(k)Thenflag=0

Nextk

LoopUntilflag=1

Printb(j)

Nextj

EndSub

7、下列程序的功能是显示出10个–100~100之间的随机整数,并找出最大值.填写代码

PrivateSubCommand1_Click()

Dimb(10)

Fori=1To10

x=Rnd

Ifx>0.5Theny=1Else___y=–1_______

b(i)=y*Int(Rnd*101)

Printb(i)

Nexti

Max=___b

(1)______

Fori=2To10

Ifb(i)>MaxThenMax=b(i)

Nexti

Print"最大值为";____Max________

EndSub.F.

8、素数是除了能被1和它自己整除以外,不能别其他任何数整除的数.下面的代码是求100~150之间的素数并输出,每行输出4个数据.填空.

输出结果为

101103107109

113127131137

139149

PrivateSubCommand1_Click()

Dimm(100)

n=0

Fora=_____100to150_______

flag=0

Fori=2ToSqr(a)

Ifa/i=Int(a/i)Thenflag=1

Nexti

Ifflag=0Then

n=n+1

_m(n)=a_____

EndIf

Nexta

Fori=1Ton

If__i/4=int(i/4)或iMod4=0_Then

Printm(i)

Else

Printm(i);

EndIf

Nexti

EndSub

9、要打印100个–500~500之间不同的随机整数,并找出第几个是最大的.填写代码

PrivateSubCommand1_Click()

Dimb(100)

Forj=1To100

x=Rnd

Ifx>0.5Theny=1Elsey=–1

b(j)=y*Int(Rnd*501)

flag=0

k=1

Whileflag=0Andk<=j–1

Ifb(j)<>b(k)Then

___flag=1_______

k=k+1

EndIf

Wend

Printb(j)

Nextj

Print

p=1

Max=__b

(1)___

Forn=2To100

Ifb(n)>MaxThen

Max=b(n)

p=____n_______

EndIf

Nextn

Print"最大数是";Max

Print"位置在第";p;"个"

EndSub

10、已知数组A(4,4),各个元素在程序运行时被赋值并显示,形成四阶方阵.填写代码,使产生一个转置方阵,让放在A中,并显示出来.

例如:

1234

1234

1234

1234

1111

2222

3333

4444

PrivateSubCommand1_Click()

Dima(4,4)

Fork=1To4

Forj=1To4

a(k,j)=j

Printa(k,j);

Nextj

Print

Nextk

Print

Fork=2To4

Forj=1To____k_____

t=a(j,k)

a(j,k)=____a(k,j)_____

a(k,j)=t

Nextj

Nextk

Fork=1To4

Printa(k,1);a(k,2);a(k,3);a(k,4)

Nextk

EndSub

11、下面程序运行后,输出的结果是如下的矩阵:

4710

5811

6912

请在程序处填入正确的内容。

PrivateSubCommand1_Click()

Dima(3,3)

Forj=1To3

Fork=1To3

a(j,k)=j+k*3

Printa(j,k);

Nextk

Print

Nextj

EndSub

12、下面程序的功能是产生100个小于1000(不含1000)的随机正整数,并统计其中5的倍数所占比例,但程序不完整,请在处把程序补充完整。

PrivateSubCommand1_Click()

Dima(100)

Forj=1To100

a(j)=Int(Rnd*999+1)或Int(Rnd*999)+1

ifa(j)Mod5=0thenk=k+1

Printa(j)

Nextj

Print

Printk/100

EndSub

13、窗体中添加一个命令按纽,并编写如下程序代码:

PrivateSubCommand1_Click()

k=0

Forj=1To2

Fori=1To3

k=i+1

Nexti

Fori=1To7

k=k+1

Nexti

Nextj

MsgBoxk

EndSub

程序运行后,消息对话框中显示11。

14、添加一个命令按纽,并编写如下代码。

已知程序的运行结果如下矩阵,请在填空填上正确的答案使程序完整。

1001

0110

0110

1001

PrivateSubCommand1_Click()

Dima(4,4)

Fori=1To4

Forj=1To4

Ifj=iorj=4–i+1Then

a(i,j)=1

Else

a(i,j)=0

EndIf

Nextj

Nexti

Fori=1To4

forj=1to4

Printa(i,j)

Nextj

Nexti

EndSub

15、在窗体上画一个命令按纽,然后编写如下的事件过程:

PrivateSubCommand1_Click()

Dima(1To10)

Dimp(1To3)

k=5

Fori=1To10

a(i)=i

Nexti

Fori=1To3

p(i)=a(i*i)

Nexti

Fori=1To3

k=k+p(i)*2

Nexti

Printk

EndSub

程序运行后,单击命令按纽,输出结果是33。

16、下面程序运行后,输出的结果

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

当前位置:首页 > 解决方案 > 学习计划

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

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