VB教材章后习题Word文档格式.docx

上传人:b****8 文档编号:22687304 上传时间:2023-02-05 格式:DOCX 页数:25 大小:44.67KB
下载 相关 举报
VB教材章后习题Word文档格式.docx_第1页
第1页 / 共25页
VB教材章后习题Word文档格式.docx_第2页
第2页 / 共25页
VB教材章后习题Word文档格式.docx_第3页
第3页 / 共25页
VB教材章后习题Word文档格式.docx_第4页
第4页 / 共25页
VB教材章后习题Word文档格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

VB教材章后习题Word文档格式.docx

《VB教材章后习题Word文档格式.docx》由会员分享,可在线阅读,更多相关《VB教材章后习题Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。

VB教材章后习题Word文档格式.docx

不能显示图形是因为Style属性设成了Standard,只要改为Graphical即可,一般还要将Caption属性的值设置为空。

9.标签和文本框的区别是什么?

【答】标签和文本框都可以在窗体上显示文字。

区别在于:

标签的内容在Caption属性内,在窗体上只能显示文字,不能编辑;

文本框的内容在Text属性内,在窗体上可直接对其内容进行编辑。

10.当窗体上有3个文本框和1个命令按钮,若程序运行时,要求焦点定位在第三个文本框(Text3)处,应对何控件的什么属性进行何种设置?

【答】对Text3控件进行Text3.TabIndex=0的设置。

11.若要对窗体上的3个文本框输入数据,各控件焦点的移动可通过Tab键(系统本身具有的),也可以通过回车键,则要对文本框的什么事件编程?

【答】对文本框的KeyPress事件编程。

例如,当焦点在Text1时,输入数据按Enter键后,让焦点跳到Text2文本框。

程序如下:

PrivateSubText1_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=13Then

Text2.SetFocus

……

EndIf

EndSub

12.当某文本框输入数据后(按了回车键),进行判断认为数据输入错,怎样删除原来数据?

怎样使焦点回到该文本框重新输入?

【答】假定文本框的名称为Text1,则事件过程如下:

If出错条件判断成立Then

Text1=””

Text1.SetFocus

EndIf

13.当运行程序前,对某些控件设置属性值,除了在窗体中直接设置外,还可以通过代码设置,这些代码一般放在什么事件中?

例如,程序要将命令按钮定位在窗体的中央,请写出事件过程。

【答】这些代码一般放在Form_Load()事件过程中。

将窗体定位在屏幕的中央,只能通过属性窗口对Form1窗口的StartUpPosition属性设置为2(表示屏幕中心),该属性不能放在运行时设置。

要将按钮定位在窗体的中央,事件过程如下:

PrivateSubForm_Load()

Command1.Left=Form1.ScaleWidth\2–Command1.Width\2

Command1.Top=Form1.ScaleHeight\2–Command1.Height\2

其中,ScaleWidth和ScaleHeight表示窗体的相对宽度和高度。

习题三

1.

【答】。

2.

3.

4.

5.

6.利用Shell()函数,在VB程序中分别执行画图和Word应用程序。

【答】调用Shell()函数,形式为:

Shell(”C:

\ProgramFiles\Accessories\Mspaint.exe”,1)

\ProgramFiles\MicroSoftOffice\Winword.exe”,1)

7.VisualBasic提供了哪些标准数据类型?

声明类型时,其类型关键字分别是什么?

其类型符又是什么?

【答】见教材P53表1.3.1。

8.哪种数据类型所需内存容量最少,且可存储例如3.2345这样的值?

【答】单精度。

9.将数字字符串转换成数值,用什么函数?

判断是否是数字字符串,用什么函数?

取字符串中的某几个字符,用什么函数?

大小写字母间的转换,用什么函数?

【答】将数字字符串转换成数值,用Val函数;

用IsNumeric()函数可判断是否是数字字符串;

用Mid()函数取字符串中的某几个字符;

用Ucase()函数将小写字母转换成大字母;

用Lcase()函数将大写字母转换成小字母。

10.要使单精度变量x、y、z分别保留1位、2位、3位小数点,并在窗体显示,使用什么函数?

如何写对应的Print方法?

【答】使用Format()函数,

显示1位小数位:

PrintFormat(x,”0.0”)。

显示2位小数位:

PrintFormat(y,”0.00”)。

显示3位小数位:

PrintFormat(z,”0.000”)。

习题四

1.指出下列赋值语句中的错误(包括运行时要产生的错误)。

⑴10x=Sin(x)+y

⑵c=3+sqr(-3)

⑶c+x+y=c*y

⑷x=Sin(x)/(20Mod2)

【答】⑴“10x”是一个非法的变量名。

⑵用负数开平方。

⑶左边为表达式。

⑷分母为零。

2.MsgBox作为函数使用时与InputBox的区别?

各自获得的是什么值?

【答】MsgBox返回所按按钮对应的值,InputBox返回文本框输入的值。

3.语句:

If表达式Then…

中的表达式可以是算术、字符、关系、逻辑表达式中的哪些?

【答】可以是算术、关系、逻辑表达式。

4.指出下列语句中的错误。

⑴Ifx≥yThenprintx

⑵If10<

x<

20Thenx=x+20

⑶Ifc>

="

A"

andc<

Z"

Then

Print"

大写字母"

ElseIfc>

a"

z"

小写字母"

EndIf

【答】⑴“≥”应写成“>

=”。

⑵VB中表示x的范围“10<

x<

20”应写成“x>

10Andx<

20”

⑶“ElseIf”之间不能有空格,应写成“ElseIf”。

5.按照条件,写出相应的条件语句

⑴当C字符变量中第3个字符是“C”时,利用MsgBox显示“Yes”,否则显示“No”。

⑵利用If语句、SelectCase语句两种方法计算分段函数:

⑶利用If语句和Iif函数两种方法求3个数x、y、z中最大值,并将其放入Max变量中。

【答】⑴IfMid(C,3,1)=“C“ThenMsgBox“Yes“ElseMsgBox“No“

⑵方法一:

PrivateSubCommand1_Click()

x=Text1.Text

Ifx>

20Then

y=x*x+3*x+2

ElseIfx<

10Then

y=1/x+Abs(x)

Else

y=Sqr(3*x)-2

Printy

EndSub

方法二:

PrivateSubCommand2_Click()

SelectCasex

CaseIs>

20

y=x*x+3*x+2

CaseIs<

10

y=1/x+Abs(x)

CaseElse

EndSelect

⑶利用If语句:

Ifx>

yThenMax=xElseMay=y

Ifz>

MaxThenMax=z

利用IIf函数:

Max=Iif(x>

y,x,y)

Max=Iif(Max>

z,Max,z)

6.计算下列循环语句的次数:

⑴ForI=-3To20Step4

⑵ForI=-3.5To5.5Step0.5

⑶ForI=-3.5To5.5Step–0.5

⑷ForI=-3To20Step0

【答】⑴循环6次、循环体内I的值分别为:

-3,1,5,9,13,17、出循环后I的值为21。

⑵循环19次。

⑶不循环。

⑷循环无数次,无法终止。

7.下列30~90为语句标号,分别标记该语句,第40句共执行了几次?

第50句共执行了几次?

第90句语句显示的结果是多少?

30ForJ=1To12Step3

40ForK=6To2Step-2

50Mk=K

60PrintJ,K

70NextK

80NextJ

90PrintJ,K,Mk

【答】第40句是外循环的循环体,共执行了4次;

第50句是内循环的循环体,共执行了12次;

第90句语句显示的结果是:

1302。

8.如果事先不知道循环次数,如何用For…Next结构来实现?

【答】将循环终值设置为一个非常大的值,然后在循环体内增加If语句,判断是否满足循环结束条件。

形式如下:

For循环变量=1To非常大的数

……

If循环结束条件ThenExitFor

Next循环变量

9.利用循环结构,实现如下功能:

⑵分别统计1~100中,满足3的倍数、7的倍数的数各为多少个?

⑶将输入的字符串,以反序显示。

例如输入“ASDFGHJKL”,显示“LKJHGFDSA”。

【答】⑴S=0

ForI=1To10

S=S+(I+1)*(2*I+1)

NextI

⑵S3=0

S7=0

ForI=1To100

IfIMod3=0ThenS3=S3+1

IfIMod7=0ThenS7=S7+1

⑶S=InputBox(“请输入字符串:

”)

ForI=Len(S)To1Step-1

PrintMid(S,I,1);

10.下面程序运行后的结果是什么?

该程序的功能是什么?

PrivateSubCommand1_Click()

Dimx$,n%

n=20

x="

"

DoWhilen<

>

0

a=nMod2

n=n\2

x=Chr(48+a)&

x

Loop

Printx

【答】运行后结果为10100,该程序的功能是将十进制数转换成二进制字符串。

11.下面程序运行后的结果是什么?

Dimx%,y%,z%

x=242:

y=44

z=x*y

DoUntilx=y

yThenx=x-yElsey=y-x

Printx,z/x

【答】运行后结果为22和484,该程序的功能是用辗转相减法求x、y的最大公约数和最小公倍数。

12.利用随机函数产生20个50~100范围内的随机数,显示它们的最大值、最小值和平均值。

【答】PrivateSubCommand1_Click()

Max=50

Min=100

Sum=0

Fori=1To20

x=Int(Rnd*51+50)

Printx;

Ifx>

MaxThenMax=x

Ifx<

MinThenMin=x

Sum=Sum+x

Nexti

Print

Print"

最大值="

;

Max

最小值="

Min

平均值="

Sum/20

习题五

1.要分配存放12个元素的整型数组,下列数组声明(若无下界,则按默认规定)哪些符合要求?

⑴n=12⑵Dima%()

Dima(1Ton)AsIntegern=11

ReDima(n)

⑶Dima%[2,3]⑷Dima(1,1,2)AsInteger

⑸Dima%(10)⑹Dima!

()

ReDima(1To12)ReDima(3,2)AsInteger

⑺Dima%(2,3)⑻Dima(1To3,1To4)AsInteger

【答】⑵、⑷、⑺和⑻符合要求。

2.已知下面的数组声明,写出它的数组名、数组类型、维数、各维的上、下界、数组的大小,并按行的顺序列出各元素。

Dima(-1To2,3)AsSingle

【答】数组名为a、数组类型为单精度、二维、各维的下界分别为-1和0、上界分别为2和3、数组的大小为4×

4共16个元素,各元素排列顺序为:

3.静态数组和动态数组的区别是什么?

在声明静态数组、重定义动态数组时的下标都可以用变量来表示吗?

【答】静态数组在声明数组时的下标必须是常数,以后不能改变其大小;

动态数组在Dim声明时不要声明数组的大小,在以后的程序中可以用ReDim语句重新声明数组的大小,ReDim语句中的下标可以出现赋了值的变量。

4.已声明了静态数组a(3,4),能否在下面再用重定义动态数组a(4,4)来重定义a数组的大小?

【答】已声明了的静态数组,不能再用重定义语句来重新定义静态数组的大小。

5.使用ReDim语句可以改变数组类型吗?

【答】可以反复地改变数组的元素以及维数的数目,但是不能将一个数组定义为某种数据类型之后,再使用ReDim将该数组改为其他数据类型。

6.在ReDim语句中加了Preserve关键字,对重定义数组有何限制?

【答】这时就只能重定义数组最末尾的大小,且根本不能改变维数的数目。

例如以下语句:

Dima()

ReDima(3,4)

ReDimPreservea(4,5)

当程序执行到第3句时,显示“下标越界”的出错信息,即只能改变第二个下标的大小,而不能改变第一个下标的大小。

7.利用随机数生成两个矩阵(数据不一定相同,前者范围为30~70、后者为101~135)

要求:

⑴将两个矩阵相加,结果放入C矩阵中。

⑵将A矩阵转置。

⑶求C矩阵中元素的最大值和下标。

⑷以下三角形式显示A矩阵、上三角形式显示B矩阵。

⑸将A矩阵第1行与第3行对应元素交换位置,即第1行元素放到第3行、第3行元素放到第1行。

⑹求矩阵A两条对角线元素之和。

⑺将A矩阵按列的次序把各元素放入一维数组D中,显示结果。

【答】假定在通用声明段对数组的声明如下:

Dima%(1To4),b%(1To4),c%(1To4)

在Form_Load事件过程中对数组a、b根据要求随机生成数值;

根据各小题的要求,在各事件过程中分别编写代码。

⑴两个矩阵能相加的条件是它们的行数、列数相同,利用两重循环将它们的元素逐一相加即可。

程序段如下:

Fori=1To4‘本例行数为4

Forj=1To4‘本例列数为4

c(i,j)=a(i,j)+b(i,j)

Nextj

Nexti

⑵矩阵转置是将矩阵的行变为列、列变为行。

通过两重循环实现,程序段如下:

Fori=1To4

Forj=1Toi-1

t=a(i,j)

a(i,j)=a(j,i)

a(j,i)=t

⑶因为c是两维数组,所以最大值的下标有行下标和列下标两个。

DimMax%,Maxi%,Maxj%

Max=c(1,1):

Maxi=1:

Maxj=1

Forj=1To4

Ifc(i,j)>

MaxThen

Max=c(i,j):

Maxi=i:

Maxj=j

Endif

⑷二维数组形式输出,必须通过两重循环。

对于下三角形式比较简单,每一行总是从最左边开始输出,只要控制每一个元素的宽度即可;

而对于上三角形式,则要控制每一行第一个元素输出的位置,这一般是通过Tab函数实现。

输出下三角元素:

Forj=1Toi

Printa(i,j);

Space(4–Len(a(i,j)));

输出上三角元素:

Forj=iTo4

PrintTab(j*4);

b(i,j);

说明:

Space(4–Len(a(i,j)))表示每个元素占4位,其中空格数目与实际数值位数有关。

⑸Fori=1To4

t=a(1,i):

a(1,i)=a(3,i):

a(3,i)=t

⑹矩阵的对角线有主对角线和副对角线两条。

Sum=0

Sum=Sum+a(i,j)+a(i,5-i)

⑺关键要找出两维数组各元素和一维数组各元素的关系。

Dima(3,3),d(15)

……

Forj=0To3

Fori=0To3

k=j*4+i

d(k)=a(i,j)

Nextj

8.声明一个有20个元素的一维字符类型数组,要求:

⑴由随机数形成小写字母构成的数组,每个元素的字符个数由随机数产生,范围1~11。

⑵要求将生成的数组分4行显示。

⑶显示生成的字符数组中字符最多的元素。

【答】⑴可利用随机函数产生长度不超过11个字符的字符串。

Dimst(1To20)AsString,cAsString*1

Dimi%,n%

Fori=1To20

n=Int(Rnd*11+1)

Forj=1Ton

c=Chr(Int(Rnd*26+97))

st(i)=st(i)&

c

⑵分4行显示,则每行显示5个数组元素,可利用Mod取余运算实现。

考虑到每个数组元素的字符长度不等,需增加空格来对齐。

字符数组生成后,实现输出的程序段如下:

Printst(i);

Space(15–Len(st(i)));

IfiMod5=0ThenPrint

⑶求最长的数组元素,程序段如下:

maxlen=0

maxstr=““

IfLen(st(i))>

maxlenThen

maxlen=Len(st(i))

maxstr=st(i)

Endif

Printmaxlen,maxstr

9.自定义一个职工类型,包含职工号、姓名和工资。

声明一个职工类型的动态数组。

输入n个职工的数据,要求按工资递减的

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

当前位置:首页 > 高等教育 > 医学

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

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