VB课本习题答案第五章课后习题答案_第1页
VB课本习题答案第五章课后习题答案_第2页
VB课本习题答案第五章课后习题答案_第3页
VB课本习题答案第五章课后习题答案_第4页
VB课本习题答案第五章课后习题答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第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);若被刷新的数组为字符串数组,则把所有元素置(空字符串)。6.设有表格控件grd1,若设置grd1的第2行第5列的单元格为当前活动单元格,使用的语句为(grd1.Row=2)和(grd1.Col=5)。7.要使表格控件grd1的当前活动单元格显示字符串“姓名”,使用的语句是(grd1.Text=“姓名”)。8.建立一个具有10行10列的表格控件grd2,需使用的语句为(grd2.Row=10)和(grd2.Col=10)。9.在程序的运行中,对表格控件grd1的某些列的数据按降序并且区分大小写排序,使用的语句是(grd1.Sort=8)。10.控件数组是由一组类型和(名字)相同的控件组成,共享(同一个事件过程)。11.控件数组中的每一个控件都有惟一的下标,下标值由(Index)属性指定。12.建立控件数组有两种方法:(在设计阶段通过相同Name属性值来建立)和(在程序代码中使用Load方法)。5.2选择题1.下列一维数组说明语句错误的是(d)。a)Dimb(100)ASDoubleb)Dimb(-5To0)ASByted)Dimb(5To5)ASStringc)Dimb(-10To–20)ASInteger2.若有数组说明语句为:Dima(-3To8),则数组a包含元素的个数是(d)。a)5b)8c)11d)123.设有数组说明语句:Dimc(1To10),则下面表示数组c的元素选项中(c)是错误的。a)c(i-1)b)c(5+0.5)c)c(0)d)c(10)4.下列数组说明语句中正确的是(a)。a)Dima(-1To5,8)ASStringb)Dima(n,n)ASIntegerd)Dima(10,-10)ASDoublec)Dima(0To8,5To–1)ASSingle5.设有数组说明语句:Dimb(-1To2,-2To2),则数组b中元素的个数是(d)。a)12b)15c)16d)206.设有数组说明语句:Dimc(-1To2,1To5),则下列表示数组c的元素选项中(c)是正确的。a)c(i+j)b)c(i)(j)c)c(i+1,i-1)d)c(1,0)7.若有数组说明语句:Dima()ASInteger,则a被定义为(b)。a)定长数组b)可调数组c)静态数组d)可变类型数组

8.若有数组说明语句:Dimt(1To10)ASVariant,则t被定义为(d)。a)数值数组b)可调数组c)字符串数组d)可变类型数组9.下面选项中,错误的是(c)。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)10.若有以下说明语句TypeemployeenumAsIntegersalaryAsSingleEndTypeDimprogrammerAsemployee则下面表示记录变量programmer的成员Salary正确的是(d)。a)programmer→salaryc)grammer11.已知有说明语句Typedatb).salaryd)programmer.salaryyearAsIntegermonthAsIntegerdayAsIntegerEndTypeTypeempnoAsIntegernameAsString﹡10sexAsString*1birthdayAsdatsalaryAssingleEndTypeDimprogrammerAsemp并假设变量programmer所表示职工的出生日期是“1978年10月1日”,则下列正确的赋值语句是(d)。a)year=1978:month=10:day=1b)birthday.Year=1978:birthday.month=10:birthday.day=1c)programmer.year=1978:programmer.month=10:programmer.day=1d)programmer.birthday.year=1978:programmer.birthday.month=10:programmer.birthday.day=112.假设有上题的说明语句,则下列With语句正确的是(c)。a)withprogammerno=1000:name="张勇":sex="男"withbirthdayyear=1978:month=10:day=1Endwithsalary=2800

Endwithb)withprogrammer.no=1000:.name="张勇":.sex="男"with.birthday.year=1978:.month=10:.day=1Endwith.salary=2800Endwithc)withprogrammer.no=1000:.name="张勇":.sex="男".birthday.year=1978:.birthday.month=10:.birthday.day=1.salary=2800Endwithd)withprogrammer,birthday.no=1000:.name="张勇":.sex="男".year=1978:month.=10:day.=1.salary=2800Endwith5.3问答题1.使用关键字Dim,ReDim和Static定义的数组分别称为什么数组?它们各有什么特点?答:参见教材5.3。2.若有表格控件grd1,则选定表格控件grd1从第4行到第8行和从第4列到第8列的表格单元块需使用那些语句?答:grd1.Row=4:grd1.Col=4grd1.ColSel=8:grd1.RowSel=85.4阅读下列程序,写出执行结果1.PrivateSubCommand1_Click()Dimf(10)AsIntegerf(0)=1:f(1)=1Fori=2To10f(i)=f(i-2)+f(i-1)NextiFori=0To10IfiMod4=0ThenPrintPrintf(i),NextiEndSub答案:15123813892134552.PrivateSubCommand1_Click()Dims(1To6)AsIntegerFori=1To6s(i)=i

NextiFori=1To3Forj=4To6t=s(i):s(i)=s(j):s(j)=tNextjNextiFori=1To6Prints(i);NextiEndSub答案:6543213.PrivateSubCommand1_Click()Dima(1To9)AsIntegerDimb(1To3,1To3)AsIntegerDimi%,j%Fori=1To9a(i)=iNextiFori=1To3Forj=1To3b(i,j)=a(i*j)Ifj<=iThenPrintb(i,j),NextjPrintNextiEndSub答案:1243694.PrivateSubCommand1_Click()Dima(1To5,1To5)AsInteger,i%,j%Fori=1To5Forj=1To5Ifi<=jThena(i,j)=1Elsea(i,j)=i-j+1NextjNextiFori=1To5Forj=1To5Printa(i,j);NextjPrintNextiEndSub答案:11111

211113211432111543215.5编程题nn(save)2siavei1idevi1nn1.已知求成绩的平均值和均方差公式为:,,其中n为学生人数,si为第i个学生成绩。求某班的平均成绩和均方差。解答:(1)界面设计和属性设置在窗体上建立四个标签和两个命令按钮。窗体和窗体上控件的主要属性设置如表3-5-1所示。表3-5-1第1题的属性设置控件名称Form1属性名Caption属性值求平均值和均方差Label1Label2Label3Caption平均值均方差空串1CaptionCaptionBorderStyleCaptionLabel4空串1BorderStyleCaptionCommand1Command2计算结束Caption(2)程序代码PrivateSubCommand1_Click()Dimsum1!,sum2!,ave!,dev!,n%,i%Dims()AsIntegern=InputBox("请输入学生人数:")ReDims(1Ton)Fori=1Tons(i)=InputBox("请输入第"&Str(i)&"个学生成绩:")Nextisum1=0:sum2=0Fori=1Tonsum1=sum1+s(i)Nextiave=sum1/nFori=1Tonsum2=sum2+(s(i)-ave)^2Nextidev=Sqr(sum2/n)Label3.Caption=aveLabel4.Caption=devEndSubPrivateSubCommand2_Click()EndEndSub(3)运行情况运行程序后,单击标题为“计算”的命令按钮,输入学生人数和每个学生成绩。例如,输入3、70、80和90,执行结果如图3.5.1所示。图3.5.1第1题的执行结果2.编一程序,使用随机函数产生10个互不相同的两位整数存放到一维数组中,并输出该数组,然后求这组数中的最大值及最大值在数组中的位置。解答:(1)界面设计和属性设置在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-5-2所示。表3-5-2第2题的属性设置控件名称Form1属性名属性值Caption求两两不相同随机数最大值及其位置Command1Command2CaptionCaption开始结束(2)程序代码PrivateSubCommand1_Click()ClsDima(1To10),i%,j%,max%,p%RandomizeFori=1To10l:a(i)=Int((90*Rnd+10))Forj=1Toi-1Ifa(i)=a(j)ThenGoTolNextjNexti有相同则重生成PrintPrintTab(2);"产生的随机数为:"PrintFori=1To10Print"a(";i;")=";a(i),IfiMod4=0ThenPrintNexti‘逢4换行max=a(1):p=1Fori=2To10‘逐个单挑Ifa(i)>maxThenmax=a(i):p=iNextiPrint:PrintPrintTab(2);"最大值为:";maxPrintTab(2);"最大值所在数组元素的下标为:";pEndSubPrivateSubCommand2_Click()EndEndSub(3)运行情况程序执行结果如图3.5.2所示。图3.5.2第2题的执行结果3.把20个整型数据存放到一维数组a中,找出a中出现频率最高的元素值及出现的次数。例如,若把1,5,4,3,5,8,5和3存放到数组a中,则出现频率最高的元素值是5,出现的次数是3。解答:(1)界面设计和属性设置在窗体上建立两个命令按钮。窗体和命令按钮主要属性设置如表3-5-3所示。表3-5-3第3题的属性设置控件名称Form1属性名属性值Caption找出出现频率最高元素和出现次数Command1Command2CaptionCaption开始结束(2)程序代码PrivateSubCommand1_Click()ClsDimi%,j%,fmax%Dima(1To20)AsInteger,b(1To20)AsIntegerPrintPrintTab(2);"用随机函数产生的数值是:"RandomizeFori=1To20a(i)=Int(10*Rnd+1)Printa(i),'产生1~10之间的随机整数,并存放到a(i)中‘逢4换行IfiMod4=0ThenPrintNextifmax=0Fori=1To20‘利用两次循环嵌套,对a()进行滚动式比较,每次只统计前面和他相同的b(i)=0Forj=1ToiIfa(i)=a(j)Thenb(i)=b(i)+1endif'b(i)用来对a(i)出现的次数进行计数Ifb(i)>fmaxThenfmax=b(i)EndIfNextjNextiPrintPrintTab(2);"出现频率最高的数值是:";Fori=1To20Ifb(i)=fmaxThenPrinta(i);EndIfNexti‘通过b()得出iPrintPrintTab(2);"出现的次数是:";fmaxEndSubPrivateSubCommand2_Click()EndEndSub(3)运行情况程序执行结果如图3.5.3所示。图3.5.3第3题的执行结果4.给定两组已按升序排列好的整型数据,编写一个程序把它们合并为一组仍按升序排列的数据。解答:(1)界面设计和属性设置在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-5-4所示。表3-5-4第4题的属性设置控件名称Form1属性名属性值Caption把两个升序数组合并为一个升序数组Command1Command2CaptionCaption合并结束(2)程序代码DimaAsVariant,bAsVariant,c%(0To11)PrivateSubForm_Activate()Dimi%„数组赋值a=Array(1,2,7,8)PrintPrintTab(5);"第一个升序数组:";Fori=0To3Printa(i);Nexti‘数组赋值Print:Print‘两个print,一个推到下一行,下一个空一行b=Array(3,4,8,8,9,10,12,12)PrintTab(5);"第二个升序数组:";Fori=0To7Printb(i);NextiEndSubPrivateSubCommand1_Click()Dimi%,j%,k%i=0:j=0:k=0Whilei<4Andj<8Ifa(i)>b(j)Thenc(k)=b(j):k=k+1:j=j+1'比较a和b中的元素,把较大的元素移到推进)(赋值,Else'c中,直到其中一个数组搬空为止c(k)=a(i):k=k+1:i=i+1EndIfWendWhilei<4c(k)=a(i):i=i+1:k=k+1'把a中剩余的元素搬到c中'把b中剩余的元素搬到c中WendWhilej<8c(k)=b(j):j=j+1:k=k+1WendPrint:PrintPrintTab(5);"合并后的升序数组:"PrintTab(8);Fori=0To11Printc(i);NextiEndSubPrivateSubCommand2_Click()EndEndSub(3)运行情况运行程序后,系统执行Form_Activate事件过程,屏幕出现用户界面,并显示两个升序数组。此时,单击标题为“合并”的命令按钮,系统执行相应的Click事件过程。执行结果如图

3.5.4所示。单击标题为“结束”的命令按钮,结束程序的执行。图3.5.4第4题的执行结果5.从键盘上输入一个正整数,判别它是否为回文数。所谓回文数是指正读和反读都一样的数。例如,123321是回文数。解答:(1)界面设计和属性设置在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-5-5所示。表3-5-5第5题的属性设置控件名称Form1属性名属性值Caption判别一个整数是否为回文数Command1Command2CaptionCaption开始结束(2)程序代码PrivateSubCommand1_Click()ClsDimnumAsLong,nAsLong,i%,k%,f%,b%(10)num=InputBox("请输入一个整数:")k=0:n=numDob(k)=nMod10k=k+1'把num的各位数字存入数组b中n=n\10LoopWhilen<>0f=1Fori=0To(k-1)/2Ifb(i)<>b(k-1-i)Thenf=0'num的第i位与第k-1-i位数字不相同时f置0Nexti'说明num不是回文数PrintIffThenPrintTab(2);num;"是回文数!"ElsePrintTab(2);num;"不是回文数!"EndIfEndSubPrivateSubCommand2_Click()EndEndSub(3)运行情况运行程序后,在调用InputBox函数出现对话框时,输入一个整数,例如,123454321。执行结果如图3.5.5所示。图3.5.5第5题的执行结果6.编一程序,把一个m行n列矩阵中的元素存放到一个二维数组中,并求出该数组的平均值、最大值和最小值。解答:(1)界面设计和属性设置在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-5-6所示。表3-5-6第6题的属性设置控件名称Form1属性名属性值Caption求矩阵的平均值、最小值和最大值Command1Command2CaptionCaption开始结束(2)程序代码PrivateSubCommand1_Click()Dimi%,j%,m%,n%,sum!,ave!,max!,min!Dima()AsSinglem=InputBox("请输入矩阵的行数:")n=InputBox("请输入矩阵的列数:")ReDima(1Tom,1Ton)PrintPrintTab(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*n)'求平均值max=a(1,1)Fori=1TomForj=1TonIfa(i,j)>maxThenmax=a(i,j)'求最大值NextjNextimin=a(1,1)Fori=1TomForj=1TonIfa(i,j)<minThenmin=a(i,j)'求最小值NextjNextiPrintPrintTab(2);"平均值为:";avePrintTab(2);"最大值为:";maxPrintTab(2);"最小值为:";minEndSubPrivateSubCommand2_Click()EndEndSub(3)运行情况运行程序后,需多次调用InputBox函数。在调用InputBox函数出现对话框时,输入矩阵的行数、矩阵的列数和数组元素的值。例如,输入矩阵的行数3、矩阵的列数3和数组元素的值1、2、3、4、5、6、7、8、9。执行结果如图3.5.6所示。图3.5.6第6题的执行结果7.某城市三个百货公司某个季度销售电视机的情况和价格由如下表格表示,求各个百货公司的电视机营业额。牌子康佳TCL长虹公司第一百货商店第二百货商店第三百货商店300250150200280240210200180牌子价格康佳TCL350033003800长虹解答:(1)界面设计和属性设置在窗体上建立两个命令按钮。窗体和命令按钮的主要属性设置如表3-5-7所示。表3-5-7第7题的属性设置控件名称Form1属性名CaptionCaptionCaption属性值计算电视机销售额开始Command1Command2结束(2)程序代码PrivateSubCommand1_Click()ClsDimi%,j%,sum!Dima%(1To3,1To3),p!(3)PrintPrintTab(2);"各百货公司的销售量"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);NextjPrintNextiPrintPrintTab(2);"各种牌子价格";PrintTab(20);"康佳";Tab(30);"TCL";Tab(40);"长虹"Fori=1To3p(i)=InputBox("输入第"&Str(i)&"种牌号价格:")PrintTab(i*10+10);p(i);NextiPri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论