VB教材章后习题.docx
- 文档编号:9551268
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:25
- 大小:44.67KB
VB教材章后习题.docx
《VB教材章后习题.docx》由会员分享,可在线阅读,更多相关《VB教材章后习题.docx(25页珍藏版)》请在冰豆网上搜索。
VB教材章后习题
习题一
1.运行VisualBasic6.0需要什么样的最小硬件环境?
【答】只要能运行Windows9x或WindowsNT即可。
2.当正常安装VisualBasic6.0后,误把Windows98子目录删除。
当重新安装Windows98后,是否要再安装VisualBasic6.0?
【答】要再安装VisualBasic6.0,因为安装VisualBasic6.0时,有些VB程序系统自动安装在Windows98子目录下,所以一旦删除了Windows98子目录,就必须再次安装。
3.VisualBasic6.0有学习版、专业版和企业版,怎样知道所安装的是哪个版本?
【答】在启动VisualBasic6.0的启动封面上,能显示对应的版本,见教材例1.1。
4.VisualBasic6.0有多种类型的窗口,若想在设计时看到代码窗口,怎样操作?
【答】执行[视图][代码窗口]命令或“工程资源管理器”窗口的“查看代码”按钮。
5.如何使各窗口显示或不显示?
【答】执行[视图]菜单的对应窗口命令,显示相应的窗口;关闭窗口则不显示该窗口。
6.叙述VisualBasic的特点。
【答】见本章1.3小节“知识要点”
习题二
1.叙述建立一个完整的应用程序的过程。
【答】创建界面、设置属性、编写事件过程代码、保存并运行程序。
2.当建立好一个简单的应用程序后,假定该工程仅有一个窗体模块。
问该工程涉及到多少个文件要保存?
若要保存该工程中的所有文件,正确的操作应先保存什么文件?
若不这样做,系统会出现什么信息?
【答】涉及到两个文件,应先保存窗体文件(.frm),再保存工程文件(.vbp)。
若是先保存工程文件,系统也会先弹出“文件另存为”对话框,要求先保存窗体文件。
3.假定在Windows98环境中,要保存工程文件时,若不改变目录名,则系统默认的目录是什么?
【答】是VB98。
4.为了使一个控件在运行时不可见,应对该控件的什么属性进行何种设置?
【答】将Visibla属性设为False。
5.为了防止用户编辑文本框的内容,应对该控件的什么属性进行何种设置?
【答】将文本框的Locked属性设为True。
6.为了使标签框的大小由Caption属性的值进行扩展或缩小,应对该控件的什么属性进行何种设置?
【答】将标签的AutoSize属性设为True。
7.VB6.0提供的大量图形文件在哪个目录下?
若你的计算机上没有安装,则怎样安装这些图形文件?
【答】存放在Graphics目录下。
直接在带有VB6.0系统的CD上找到Graphics子目录,复制到硬盘的VB目录下。
8.在VB6.0中,命令按钮的显示形式可以有标准的和图形的两种选择,这通过什么属性来设置?
若选择图形的,则通过什么属性来装入图形?
若已在规定的属性里装入了某个图形文件,但该命令按钮还是不能显示该图形,而显示的是Caption属性设置的文字,怎样改正?
【答】按钮的Style属性设为Graphical。
通过Picture属性来装入图形。
不能显示图形是因为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,则事件过程如下:
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
If出错条件判断成立Then
Text1=””
Text1.SetFocus
EndIf
……
EndIf
EndSub
13.当运行程序前,对某些控件设置属性值,除了在窗体中直接设置外,还可以通过代码设置,这些代码一般放在什么事件中?
例如,程序要将命令按钮定位在窗体的中央,请写出事件过程。
【答】这些代码一般放在Form_Load()事件过程中。
将窗体定位在屏幕的中央,只能通过属性窗口对Form1窗口的StartUpPosition属性设置为2(表示屏幕中心),该属性不能放在运行时设置。
要将按钮定位在窗体的中央,事件过程如下:
PrivateSubForm_Load()
Command1.Left=Form1.ScaleWidth\2–Command1.Width\2
Command1.Top=Form1.ScaleHeight\2–Command1.Height\2
EndSub
其中,ScaleWidth和ScaleHeight表示窗体的相对宽度和高度。
习题三
1.
【答】。
2.
【答】。
3.
【答】。
4.
【答】。
5.
【答】。
6.利用Shell()函数,在VB程序中分别执行画图和Word应用程序。
【答】调用Shell()函数,形式为:
Shell(”C:
\ProgramFiles\Accessories\Mspaint.exe”,1)
Shell(”C:
\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 ⑶Ifc>="A"andc<="Z"Then Print"大写字母" ElseIfc>="a"andc<="z"Then Print"小写字母" EndIf 【答】⑴“≥”应写成“>=”。 ⑵VB中表示x的范围“10 ⑶“ElseIf”之间不能有空格,应写成“ElseIf”。 5.按照条件,写出相应的条件语句 ⑴当C字符变量中第3个字符是“C”时,利用MsgBox显示“Yes”,否则显示“No”。 ⑵利用If语句、SelectCase语句两种方法计算分段函数: ⑶利用If语句和Iif函数两种方法求3个数x、y、z中最大值,并将其放入Max变量中。 ⑷x=Sin(x)/(20Mod2) 【答】⑴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 EndIf Printy EndSub 方法二: PrivateSubCommand2_Click() x=Text1.Text SelectCasex CaseIs>20 y=x*x+3*x+2 CaseIs<10 y=1/x+Abs(x) CaseElse y=Sqr(3*x)-2 EndSelect Printy EndSub ⑶利用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 NextI ⑶S=InputBox(“请输入字符串: ”) ForI=Len(S)To1Step-1 PrintMid(S,I,1); NextI 10.下面程序运行后的结果是什么? 该程序的功能是什么? PrivateSubCommand1_Click() Dimx$,n% n=20 x="" DoWhilen<>0 a=nMod2 n=n\2 x=Chr(48+a)&x Loop Printx EndSub 【答】运行后结果为10100,该程序的功能是将十进制数转换成二进制字符串。 11.下面程序运行后的结果是什么? 该程序的功能是什么? PrivateSubCommand1_Click() Dimx%,y%,z% x=242: y=44 z=x*y DoUntilx=y Ifx>yThenx=x-yElsey=y-x Loop Printx,z/x EndSub 【答】运行后结果为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 Sum=Sum+x Nexti Print Print"最大值=";Max Print"最小值=";Min Print"平均值=";Sum/20 EndSub 习题五 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 Nextj Nexti ⑶因为c是两维数组,所以最大值的下标有行下标和列下标两个。 DimMax%,Maxi%,Maxj% Max=c(1,1): Maxi=1: Maxj=1 Fori=1To4 Forj=1To4 Ifc(i,j)>MaxThen Max=c(i,j): Maxi=i: Maxj=j Endif Nextj Nexti ⑷二维数组形式输出,必须通过两重循环。 对于下三角形式比较简单,每一行总是从最左边开始输出,只要控制每一个元素的宽度即可;而对于上三角形式,则要控制每一行第一个元素输出的位置,这一般是通过Tab函数实现。 输出下三角元素: Fori=1To4 Forj=1Toi Printa(i,j);Space(4–Len(a(i,j))); Nextj Print Nexti 输出上三角元素: Fori=1To4 Forj=iTo4 PrintTab(j*4);b(i,j); Nextj Print Nexti 说明: Space(4–Len(a(i,j)))表示每个元素占4位,其中空格数目与实际数值位数有关。 ⑸Fori=1To4 t=a(1,i): a(1,i)=a(3,i): a(3,i)=t Nexti ⑹矩阵的对角线有主对角线和副对角线两条。 Sum=0 Fori=1To4 Sum=Sum+a(i,j)+a(i,5-i) Nexti ⑺关键要找出两维数组各元素和一维数组各元素的关系。 Dima(3,3),d(15) …… Forj=0To3 Fori=0To3 k=j*4+i d(k)=a(i,j) Nexti Nextj 8.声明一个有20个元素的一维字符类型数组,要求: ⑴由随机数形成小写字母构成的数组,每个元素的字符个数由随机数产生,范围1~11。 ⑵要求将生成的数组分4行显示。 ⑶显示生成的字符数组中字符最多的元素。 【答】⑴可利用随机函数产生长度不超过11个字符的字符串。 PrivateSubCommand1_Click() 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 Nextj Nexti EndSub ⑵分4行显示,则每行显示5个数组元素,可利用Mod取余运算实现。 考虑到每个数组元素的字符长度不等,需增加空格来对齐。 字符数组生成后,实现输出的程序段如下: Fori=1To20 Printst(i);Space(15–Len(st(i))); IfiMod5=0ThenPrint Nexti ⑶求最长的数组元素,程序段如下: maxlen=0 maxstr=““ Fori=1To20 IfLen(st(i))>maxlenThen maxlen=Len(st(i)) maxstr=st(i) Endif Nexti Printmaxlen,maxstr 9.自定义一个职工类型,包含职工号、姓名和工资。 声明一个职工类型的动态数组。 输入n个职工的数据,要求按工资递减的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 教材 习题