vb课后练习答案习题解答 5.docx

上传人:b****3 文档编号:4096962 上传时间:2022-11-27 格式:DOCX 页数:14 大小:66.36KB
下载 相关 举报
vb课后练习答案习题解答 5.docx_第1页
第1页 / 共14页
vb课后练习答案习题解答 5.docx_第2页
第2页 / 共14页
vb课后练习答案习题解答 5.docx_第3页
第3页 / 共14页
vb课后练习答案习题解答 5.docx_第4页
第4页 / 共14页
vb课后练习答案习题解答 5.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

vb课后练习答案习题解答 5.docx

《vb课后练习答案习题解答 5.docx》由会员分享,可在线阅读,更多相关《vb课后练习答案习题解答 5.docx(14页珍藏版)》请在冰豆网上搜索。

vb课后练习答案习题解答 5.docx

vb课后练习答案习题解答5

第5章数组与记录

5.1填空题

1.若要定义一个包含10个字符串元素,且下界为1的一维数组s,则数组说明语句为(。

答案:

Dims(1To10AsString

2.若要定义一个元素为整型数据的二维数组a,且第一维的下标从0到5,第二维下标从-3到6,则数组说明语句为(。

答案:

Dima(0To5,-3To6AsInteger

3.如果数组元素的下标值为实数,则VB系统会按(进行处理。

答案:

四舍五入原则

4.数组元素个数可以改变的数组称为(;数组元素可以存放不同类型数据的数组称为(。

答案:

可调数组、可变类型数组

5.数组刷新语句用于(。

若被刷新的数组是数值数组,则把所有元素置(;若被刷新的数组为字符串数组,则把所有元素置(。

答案:

清除指定数组内容、0、空字符串

10.控件数组是由一组类型和(相同的控件组成,共享(。

答案:

名字、同一个事件过程

11.控件数组中的每一个控件都有唯一的下标,下标值由(属性指定。

答案:

Index

12.建立控件数组有两种方法:

(和(。

答案:

在设计阶段通过相同Name属性值来建立、在程序代码中使用Load方法

5.2选择题

1.下列一维数组说明语句错误的是(。

aDimb(100ASDouble

bDimb(-5To0ASByte

cDimb(-10To–20ASInteger

dDimb(5To5ASString

答案:

c

2.若有数组说明语句为:

Dima(-3To8,则数组a包含元素的个数是(。

a5b8c11d12

答案:

d

3.设有数组说明语句:

Dimc(1To10,则下面表示数组c的元素选项中(是错误的。

ac(i-1bc(5+0.5cc(0dc(10

答案:

c

4.下列数组说明语句中正确的是(。

aDima(-1To5,8ASString

bDima(n,nASInteger

cDima(0To8,5To–1ASSingle

dDima(10,-10ASDouble

答案:

a

5.设有数组说明语句:

Dimb(-1To2,-2To2,则数组b中元素的个数是(。

a12b15c16d20

答案:

d

6.设有数组说明语句:

Dimc(-1To1,1To5,则下列表示数组c的元素选项中(是正确的。

ac(i+jbc(i(jcc(i+1,j-1dc(1,0

答案:

c

7.若有数组说明语句:

Dima(ASInteger,则a被定义为(。

a定长数组b可调数组c静态数组d可变类型数组

答案:

b

8.若有数组说明语句:

Dimt(1To10ASVariant,则t被定义为(。

a数值数组b可调数组c字符串数组d可变类型数组

答案:

d

9.下面选项中,错误的是(。

aDimsAsvariant:

s=Array("one","two","Three"

bDimb:

b=Array(1,2,3

cDimbAsInteger:

b=Array(1,2,3

dDimbAsvariant:

b=Array(1,2,3

答案:

c

10.若有以下说明语句

Typeemployee

numAsInteger

salaryAsSingle

EndType

DimprogrammerAsemployee

则下面表示记录变量programmer的成员Salary正确的是(。

aprogrammer→salaryb.salary

csalary.programmerdprogrammer.salary

答案:

d

11.已知有说明语句

Typedat

yearAsInteger

monthAsInteger

dayAsInteger

EndType

Typeemp

noAsInteger

nameAsString﹡10

sexAsString*1

birthdayAsdat

salaryAssingle

EndType

DimprogrammerAsemp

并假设变量programmer所表示职工的出生日期是“1978年10月1日”,则下列正确的赋值语句是(。

ayear=1978:

month=10:

day=1

bbirthday.Year=1978:

birthday.month=10:

birthday.day=1

cprogrammer.year=1978:

programmer.month=10:

programmer.day=1

dprogrammer.birthday.year=1978:

programmer.birthday.month=10:

programmer.birthday.day=1

答案:

d

12.假设有第11题的说明语句,则下列With语句正确的是(。

awithprogammer

no=1000:

name="张勇":

sex="男"

withbirthday

year=1978:

month=10:

day=1

Endwith

salary=2800

Endwith

bwithprogrammer

.no=1000:

.name="张勇":

.sex="男"

with.birthday

.year=1978:

.month=10:

.day=1

Endwith

.salary=2800

Endwith

cwithprogrammer

.no=1000:

.name="张勇":

.sex="男"

.birthday.year=1978:

.birthday.month=10:

.birthday.day=1

.salary=2800

Endwith

dwithprogrammer,birthday

.no=1000:

.name="张勇":

.sex="男"

.year=1978:

month.=10:

day.=1

.salary=2800

Endwith

答案:

c

5.3解答题

1.使用关键字Dim,ReDim和Static定义的数组分别称为什么数组?

它们各有什么特点?

答:

使用关键字Dim说明的数组称为定长数组。

说明定长数组时,应同时确定维数和下标范围。

VB编译程序在编译时为定长数组分配相应的内存区域,并且在应用程序运行期间,定长数组都占有这块内存区域。

使用关键字ReDim说明的数组称为可调数组或动态数组。

若在程序运行前,不能确定数组的大小或在程序运行时需要改变数组的大小,则该数组应定义为可调数组。

在应用程序运行期间,可调数组占用的内存区域可能会改变。

使用Static说明的数组称为静态数组。

在整个应用程序运行期间,系统分配固定内存

区域。

定义该数组的过程执行结束时,数组的值仍保留,该过程再次被调用时,数组的值为上次过程调用结束时的值。

而定长数组和可调数组则不然,定义它们的过程执行结束时,它们的值不保留。

5.4阅读程序,并写出执行结果

1.PrivateSubCommand1_Click(

Dimf(10AsInteger

f(0=1:

f(1=1

Fori=2To10

f(i=f(i-2+f(i-1

Nexti

Fori=0To10

IfiMod4=0ThenPrint

Printf(i,

Nexti

EndSub

答案:

11

23

581321

345589

2.PrivateSubCommand1_Click(

Dims(1To6AsInteger

Fori=1To6

s(i=i

Nexti

Fori=1To3

Forj=4To6

t=s(i:

s(i=s(j:

s(j=t

Nextj

Nexti

Fori=1To6

Prints(i;

Nexti

EndSub

答案:

654321

3.PrivateSubCommand1_Click(

Dima(1To9AsInteger

Dimb(1To3,1To3AsInteger

Dimi%,j%

Fori=1To9

a(i=i

Nexti

Fori=1To3

Forj=1To3

b(i,j=a(i*j

Ifj<=iThenPrintb(i,j,

Nextj

Print

Nexti

EndSub

答案:

1

24

369

4.PrivateSubCommand1_Click(

Dima(1To5,1To5AsInteger,i%,j%

Fori=1To5

Forj=1To5

Ifi<=jThena(i,j=1Elsea(i,j=i-j+1

Nextj

Nexti

Fori=1To5

Forj=1To5

Printa(i,j;

Nextj

Print

Nexti

EndSub

答案:

11111

21111

32111

43211

54321

5.5编程题

2.编一程序,使用随机函数产生10个互不相同的两位整数存放到一维数组中,并输出该数组,然后求这组数中的最大值及最大值在数组中的位置。

解答:

(1界面设计和属性设置

在窗体上建立两个命令按钮。

窗体和命令按钮的主要属性设置如表3.5.2所示。

表3.5.2属性设置

(2

PrivateSubCommand1_Click(

Cls

Dima(1To10,i%,j%,max%,p%

Randomize

Fori=1To10

l:

a(i=Int((90*Rnd+10

Forj=1Toi-1

Ifa(i=a(jThenGoTol

Nextj

Nexti

Print:

Print

PrintTab(15;"产生的随机数为:

"

Print

Fori=1To10

Print"a(";i;"=";a(i,

IfiMod4=0ThenPrint

Nexti

max=a(1:

p=1

Fori=2To10

Ifa(i>maxThenmax=a(i:

p=i

Nexti

Print:

Print

PrintTab(15;"最大值为:

";max

PrintTab(10,"最大值所在数组元素的下标为:

";p

EndSub

PrivateSubCommand2_Click(

End

EndSub

(3运行情况

运行程序后,屏幕出现用户界面。

单击标题为“开始”的命令按钮,系统执行相应的

Click事件过程。

执行结果如图3.5.2所示。

单击标题为“结束”的命令按钮,结束程序的执行。

图3.5.2执行结果

4.给定两组已按升序排列好的整型数据,编写一个程序把它们合并为一组仍按升序排列的数据。

解答:

(1界面设计和属性设置

在窗体上建立两个命令按钮。

窗体和命令按钮的主要属性设置如表3.5.4所示。

表3.5.4属性设置

(2

DimaAsVariant,bAsVariant,c%(0To11

PrivateSubForm_Activate(

Dimi%

a=Array(1,2,7,8

Print:

Print:

Print

PrintTab(5;"第一个升序数组:

";

Fori=0To3

Printa(i;

Nexti

Print:

Print

b=Array(3,4,8,8,9,10,12,12

PrintTab(5;"第二个升序数组:

";

Fori=0To7

Printb(i;

Nexti

EndSub

PrivateSubCommand1_Click(

Dimi%,j%,k%

i=0:

j=0:

k=0

Whilei<4Andj<8

Ifa(i>b(jThen

c(k=b(j:

k=k+1:

j=j+1'比较a和b中的元素,把较大的元素移到

Else'c中,直到其中一个数组搬空为止

c(k=a(i:

k=k+1:

i=i+1

EndIf

Wend

Whilei<4

c(k=a(i:

i=i+1:

k=k+1'把a中剩余的元素搬到c中

Wend

Whilej<8

c(k=b(j:

j=j+1:

k=k+1'把b中剩余的元素搬到c中

Wend

Print:

Print

PrintTab(5;"合并后的升序数组:

"

PrintTab(8;

Fori=0To11

Printc(i;

Nexti

EndSub

PrivateSubCommand2_Click(

End

EndSub

(3运行情况

运行程序后,系统执行Form_Activate事件过程,屏幕出现用户界面,并显示两个升序数

组。

单击标题为“合并”的命令按钮,系统执行相应的Click事件过程。

执行结果如图3.5.4所示。

单击标题为“结束”的命令按钮,结束程序的执行。

图3.5.4执行结果

5.从键盘上输入一个正整数,判别它是否为回文数。

所谓回文数是指正读和反读都一样的数。

例如,123321是回文数。

解答:

(1界面设计和属性设置

在窗体上建立两个命令按钮。

窗体和命令按钮的主要属性设置如表3.5.5所示。

表3.5.5属性设置

(2程序代码

PrivateSubCommand1_Click(

Cls

DimnumAsLong,nAsLong,i%,k%,f%,b%(10

num=InputBox("请输入一个整数:

"

k=0:

n=num

Do

b(k=nMod10'把num的各位数字存入数组b中

k=k+1

n=n\10

LoopWhilen<>0

f=1

Fori=0To(k-1/2

Ifb(i<>b(k-1-iThenf=0'num的第i位与第k-1-i位数字不相同时f置0

Nexti'说明num不是回文数

Print:

Print:

Print:

Print

IffThen

PrintTab(18;num;"是回文数!

"

Else

PrintTab(16;num;"不是回文数!

"

EndIf

EndSub

PrivateSubCommand2_Click(

End

EndSub

(3运行情况

运行程序后,屏幕出现用户界面。

单击标题为“开始”的命令按钮,系统执行相应的Click事件过程。

在调用InputBox函数出现对话框时,输入一个整数,例如,1234321。

执行结果如图3.5.5所示。

单击标题为“结束”的命令按钮,结束程序的执行。

图3.5.5执行结果

6.编一程序,把一个m行n列矩阵中的元素存放到一个二维数组中,并求出该数组的平均值、最大值和最小值。

解答:

(1界面设计和属性设置

在窗体上建立两个命令按钮。

窗体和命令按钮的主要属性设置如表3-5-6所示。

表3-5-6第6题的属性设置

最大值Command1Caption开始Command2Caption结束(2程序代码PrivateSubCommand1_Click(Dimi%,j%,m%,n%,sum!

ave!

max!

min!

Dima(AsSinglem=InputBox("请输入矩阵的行数:

"n=InputBox("请输入矩阵的列数:

"ReDima(1Tom,1TonPrintPrintTab(2;"输入的矩阵为:

"Fori=1TomPrintTab(15;Forj=1Tona(i,j=InputBox("输入第"&Str(i&"行"&"第"&Str(j&"列元素:

"Printa(i,j;NextjPrintNextisum=0Fori=1TomForj=1Tonsum=sum+a(i,j'求和NextjNextiave=sum/(m*nmax=a(1,1Fori=1TomForj=1TonIfa(i,j>maxThenmax=a(i,jNextjNextimin=a(1,1Fori=1TomForj=1TonIfa(i,j

";avePrintTab(2;"最大值为:

";max'求最大值'求平均值

PrintTab(2;"最小值为:

";minEndSubPrivateSubCommand2_Click(EndEndSub(3)运行情况运行程序后,需多次调用InputBox函数。

在调用InputBox函数出现对话框时,输入矩阵的行数、矩阵的列数和数组元素的值。

例如,输入矩阵的行数3、矩阵的列数3和数组元素的值1、2、3、4、5、6、7、8、9。

执行结果如图3.5.6所示。

7.某城市三个百货公司某个季度销售电视机的情况和价格由如下表格表示,求各个百货公司的电视机营业额。

牌子公司第一百货商店第二百货商店第三百货商店康佳TCL长虹150200180300200280250240210牌子康佳TCL长虹解答:

(1界面设计和属性设置价格350033003800在窗体上建立两个命令按钮。

窗体和命令按钮的主要属性设置如表3.5.7所示。

表3.5.7控件名称属性设置属性值属性名

Form1Command1Command2CaptionCaptionCaption计算电视机销售额开始结束(2程序代码OptionExplicitPrivateSubCommand1_Click(ClsDimi%,j%,sum!

Dima%(1To3,1To3,p!

(3PrintTab(23;"各百货公司的销售量"PrintTab(20;"康佳";Tab(30;"TCL";Tab(40;"长虹"Fori=1To3PrintTab(5;"第"&Str(i&"百货公司";Forj=1To3a(i,j=InputBox("输入第"&Str(i&"百货公司"&"第"&Str(j&"种牌子销售量:

"PrintTab(j*10+10;a(i,j;NextjPrintNextiPrintTab(25;"各种牌子价格"PrintTab(20;"康佳";Tab(30;"TCL";Tab(40;"长虹"Fori=1To3p(i=InputBox("输入第"&Str(i&"种牌号价格:

"PrintTab(i*10+10;p(i;NextiPrint:

PrintFori=1To3sum=0Forj=1To3sum=sum+a(i,j*p(jNextjPrintTab(10;"第"&Str(i&"百货公司的销售额为:

";sum;"元"

NextiEndSubPrivateSubCommand2_Click(EndEndSub(3运行情况运行程序后,屏幕出现用户界面。

单击标题为“开始”的命令按钮,系统执行相应的Click事件过程。

在执行的过程中,需多次调用InputBox函数。

在调用InputBox函数出现对话框时,按表格中的数据输入每个百货公司销售电视机的数量和各种牌子的价格。

执行结果如图3.5.7所示。

单击标题为“结束”的命令按钮,结束程序的执行。

图3.5.7执行结果

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

当前位置:首页 > 小学教育 > 语文

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

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