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

上传人:b****6 文档编号:13644228 上传时间:2023-06-16 格式:DOCX 页数:21 大小:174.84KB
下载 相关 举报
vb课后练习答案习题解答.docx_第1页
第1页 / 共21页
vb课后练习答案习题解答.docx_第2页
第2页 / 共21页
vb课后练习答案习题解答.docx_第3页
第3页 / 共21页
vb课后练习答案习题解答.docx_第4页
第4页 / 共21页
vb课后练习答案习题解答.docx_第5页
第5页 / 共21页
vb课后练习答案习题解答.docx_第6页
第6页 / 共21页
vb课后练习答案习题解答.docx_第7页
第7页 / 共21页
vb课后练习答案习题解答.docx_第8页
第8页 / 共21页
vb课后练习答案习题解答.docx_第9页
第9页 / 共21页
vb课后练习答案习题解答.docx_第10页
第10页 / 共21页
vb课后练习答案习题解答.docx_第11页
第11页 / 共21页
vb课后练习答案习题解答.docx_第12页
第12页 / 共21页
vb课后练习答案习题解答.docx_第13页
第13页 / 共21页
vb课后练习答案习题解答.docx_第14页
第14页 / 共21页
vb课后练习答案习题解答.docx_第15页
第15页 / 共21页
vb课后练习答案习题解答.docx_第16页
第16页 / 共21页
vb课后练习答案习题解答.docx_第17页
第17页 / 共21页
vb课后练习答案习题解答.docx_第18页
第18页 / 共21页
vb课后练习答案习题解答.docx_第19页
第19页 / 共21页
vb课后练习答案习题解答.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

vb课后练习答案习题解答

第5章数组与记录

5.1填空题

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

答案:

Dims(1To10)AsString

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

答案:

Dima(0To5,-3To6)AsInteger

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

答案:

四舍五入原则

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

答案:

可调数组、可变类型数组

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

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

答案:

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

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

答案:

名字、同一个事件过程

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

答案:

Index

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

()和()。

答案:

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

5.2选择题

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

a)Dimb(100)ASDouble

b)Dimb(-5To0)ASByte

c)Dimb(-10To–20)ASInteger

d)Dimb(5To5)ASString

答案:

c

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

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

a)5b)8c)11d)12

答案:

d

3.设有数组说明语句:

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

a)c(i-1)b)c(5+c)c(0)d)c(10)

答案:

c

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

a)Dima(-1To5,8)ASString

b)Dima(n,n)ASInteger

c)Dima(0To8,5To–1)ASSingle

d)Dima(10,-10)ASDouble

答案:

a

5.设有数组说明语句:

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

a)12b)15c)16d)20

答案:

d

6.设有数组说明语句:

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

a)c(i+j)b)c(i)(j)c)c(i+1,j-1)d)c(1,0)

答案:

c

7.若有数组说明语句:

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

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

答案:

b

8.若有数组说明语句:

Dimt(1To10)ASVariant,则t被定义为( )。

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

答案:

d

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

a)DimsAsvariant:

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

b)Dimb:

b=Array(1,2,3)

c)DimbAsInteger:

b=Array(1,2,3)

d)DimbAsvariant:

b=Array(1,2,3)

答案:

c

10.若有以下说明语句

Typeemployee

numAsInteger

salaryAsSingle

EndType

DimprogrammerAsemployee

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

a)programmer→salaryb).salary

c)d)

答案:

d

11.已知有说明语句

Typedat

yearAsInteger

monthAsInteger

dayAsInteger

EndType

Typeemp

noAsInteger

nameAsString﹡10

sexAsString*1

birthdayAsdat

salaryAssingle

EndType

DimprogrammerAsemp

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

a)year=1978:

month=10:

day=1

b)=1978:

=10:

=1

c)=1978:

=10:

=1

d):

答案:

d

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

a)withprogammer

no=1000:

name="张勇":

sex="男"

withbirthday

year=1978:

month=10:

day=1

Endwith

salary=2800

Endwith

b)withprogrammer

.no=1000:

.name="张勇":

.sex="男"

with.birthday

.year=1978:

.month=10:

.day=1

Endwith

.salary=2800

Endwith

c)withprogrammer

.no=1000:

.name="张勇":

.sex="男"

.=1978:

.=10:

.=1

.salary=2800

Endwith

d)withprogrammer,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(10)AsInteger

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

答案:

1123

581321

345589

2.PrivateSubCommand1_Click()

Dims(1To6)AsInteger

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(1To9)AsInteger

Dimb(1To3,1To3)AsInteger

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,1To5)AsInteger,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

答案:

1  1  1  1  1

2  1  1  1  1

3  2  1  1  1

4  3  2  1  1

5  4  3  2  1

5.5编程题

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

解答:

(1)界面设计和属性设置

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

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

表3.5.2属性设置

控件名称

属性名

属性值

Form1

Caption

求两两不相同随机数最大值及其位置

Command1

Caption

开始

Command2

Caption

结束

(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(j)ThenGoTol

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属性设置

控件名称

属性名

属性值

Form1

Caption

把两个升序数组合并为一个升序数组

Command1

Caption

合并

Command2

Caption

结束

(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(j)Then

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属性设置

控件名称

属性名

属性值

Form1

Caption

判别一个整数是否为回文数

Command1

Caption

开始

Command2

Caption

结束

(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-i)Thenf=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题的属性设置

控件名称

属性名

属性值

Form1

Caption

求矩阵的平均值、最小值和最大值

Command1

Caption

开始

Command2

Caption

结束

(2)程序代码

PrivateSubCommand1_Click()

Dimi%,j%,m%,n%,sum!

ave!

max!

min!

Dima()AsSingle

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

")

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

")

ReDima(1Tom,1Ton)

Print

PrintTab

(2);"输入的矩阵为:

"

Fori=1Tom

PrintTab(15);

Forj=1Ton

a(i,j)=InputBox("输入第"&Str(i)&"行"&"第"&Str(j)&"列元素:

")

Printa(i,j);

Nextj

Print

Nexti

sum=0

Fori=1Tom

Forj=1Ton

sum=sum+a(i,j)'求和

Nextj

Nexti

ave=sum/(m*n)'求平均值

max=a(1,1)

Fori=1Tom

Forj=1Ton

Ifa(i,j)>maxThenmax=a(i,j)'求最大值

Nextj

Nexti

min=a(1,1)

Fori=1Tom

Forj=1Ton

Ifa(i,j)

Nextj

Nexti

Print

PrintTab

(2);"平均值为:

";ave

PrintTab

(2);"最大值为:

";max

PrintTab

(2);"最小值为:

";min

EndSub

PrivateSubCommand2_Click()

End

EndSub

(3)运行情况

运行程序后,需多次调用InputBox函数。

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

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

执行结果如图所示。

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

牌子

公司

康佳

TCL

长虹

第一百货商店

300

250

150

第二百货商店

200

240

200

第三百货商店

280

210

180

牌子

价格

康佳

3500

TCL

3300

长虹

3800

解答:

(1)界面设计和属性设置

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

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

表3.5.7属性设置

控件名称

属性名

属性值

Form1

Caption

计算电视机销售额

Command1

Caption

开始

Command2

Caption

结束

(2)程序代码

OptionExplicit

PrivateSubCommand1_Click()

Cls

Dimi%,j%,sum!

Dima%(1To3,1To3),p!

(3)

PrintTab(23);"各百货公司的销售量"

PrintTab(20);"康佳";Tab(30);"TCL";Tab(40);"长虹"

Fori=1To3

PrintTab(5);"第"&Str(i)&"百货公司";

Forj=1To3

a(i,j)=InputBox("输入第"&Str(i)&"百货公司"&"第"&Str(j)&"种牌子销售量:

")

PrintTab(j*10+10);a(i,j);

Nextj

Print

Nexti

PrintTab(25);"各种牌子价格"

PrintTab(20);"康佳";Tab(30);"TCL";Tab(40);"长虹"

Fori=1To3

p(i)=InputBox("输入第"&Str(i)&"种牌号价格:

")

PrintTab(i*10+10);p(i);

Nexti

Print:

Print

Fori=1To3

sum=0

Forj=1To3

sum=sum+a(i,j)*p(j)

Nextj

PrintTab(10);"第"&Str(i)&"百货公司的销售额为:

";sum;"元"

Nexti

EndSub

PrivateSubCommand2_Click()

End

EndSub

(3)运行情况

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

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

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

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

执行结果如图3.5.7所示。

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

图3.5.7执行结果

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2