vb_数组与记录习题

vb_数组与记录习题

ID:14055448

大小:155.50 KB

页数:18页

时间:2018-07-25

上传者:直挂云帆济沧海
vb_数组与记录习题_第1页
vb_数组与记录习题_第2页
vb_数组与记录习题_第3页
vb_数组与记录习题_第4页
vb_数组与记录习题_第5页
资源描述:

《vb_数组与记录习题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

第八章数组与记录教学要求:掌握一维、二维数组的定义、引用、初始化,掌握静态和动态数组及其差别,掌握数组的基本使用方法:数组元素的输入、输出和赋值等,掌握使用ForEach...Next语句操作数组元素的方法;掌握控件数组的定义、建立和使用,掌握排序算法。掌握记录类型及记录数组的概念、记录变量的初始化及引用。知识点:数组的定义、引用、初始化;静态和动态数组及其差别;ForEach...Next语句;控件数组。熟练数组“遍历”算法的设计规律,冒泡排序、快速排序算法,顺序查找、有序表对分查找、字符查找算法。内容导航:一、数组的概念(一)数组的定义在VisualBasic中,可以用4个语句来定义数组,这4个语句格式相同,但适用范围不一样。Dim用在窗体模块或标准模块中,定义窗体或标准模块数组;ReDim、Static可用于过程中;Public用在标准模块中,定义全局数组。VisualBasic提供两种格式:第一种格式:一维数组Dim数组名(下标上界)As类型名称二维数组Dim数组名(第一维下标上界,第二维下标上界)As类型名称第二种格式:Dim数组名([下界To]上界[,[下界To]上界]……)Dim数组名([下界To[上界[,[下界To]上界]……)(二)默认数组在VisualBasic中,允许定义默认数组。默认数组就是数据类型为Variant(默认)的数组。在一般情况下,定义数组应指明其类型。二、动态数组(一)动态数组的定义动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组(括号不能省略),然后在过程中用ReDim语句定义带下标的数组。ReDim语句格式: ReDim[Preserve]变量(下标)As类型(二)数组的清除和重定义数组一经定义,便在内存中分配了相应的存储空间,其大小不能改变。有时需要清除数组的内容或对数组重新定义,其格式为:数组的清除:Erase数组名[,数组名]……重定义:ReDim三、数组的基本操作(一)数组元素的输入、输出和复制1.数组的引用数组的引用通常是指对数组元素的引用,其方法是,在数组后面的括号中指定下标。2.数组元素的输入数组元素一般通过For循环语句及InputBox函数输入,当数组较小,或只需要对数组中的指定元素赋值时,可以用赋值语句来实现数组元素的输入,多维数组元素的输入通过多重循环来实现3.数组元素的输出数组元素的输出可以用Print方法来实现。4.数组元素的复制单个数组元素可以像简单变量一样从一个数组复制到另一个数组,二维数组中的元素可以复制到另一个二维数组中的某个元素,也可以复制到一个一维数组中的某个元素,并且反之亦然(二)ForEach…Next语句ForEach…Next语句类似于For…Next语句,两者都用来执行指定重复次数的一组操作,但ForEach…Next语句专门用于数组或对象“集合”(本书不涉及集合),其一般格式为:ForEach成员In数组循环体[ExitFor]……Next[成员]这里的“成员”是一个变体变量,它是为循环提供的,代表的是数组中的每个元素。“数组”是一个数组名,没有括号和上下界。四、数组的初始化用Array函数来给数组元素赋值,其格式为:数组变量名=Arra(数组元素值)注意,Array函数只适用于一维数组。即只能对一维数组进行初始化,不能对二维或多维数组进行初始化。五、控件数组(一)基本概念控件数组由一组相同类型的控件组成,这些控件共用一个相同的控件名,具有同样的属性设置。数组中的每个控件都有唯一的索引号(IndexNumber),即下标,其所有元素的Name属性必须相同。控件数组的每个元素都有一个与之关联的下标,或称索引(Index),下标值由Index属性指定。Index属性与控件数组中的某个元素有关(二)建立控件数组通过以下两种方法来建立控件数组: 第一种方法,步骤如下:(1)在窗体上画出作为数组元素的各个控件;(2)单击要包含到数组中的某个控件,将其激活;(3)在属性窗口中选择“(名称)”属性,并键入控件的名称;(4)对每个要加到数组中的控件重复(2)、(3)步,键入与第(3)步中相同的名称。当对第二个控件键入与第一个控件相同的名称后,VisualBasic将显示一个对话框,询问是否确实要建立控件数组。单击“是”将建立控件数组,单击“否”则放弃建立操作。第二种方法,步骤如下:(1)在窗体上画出一个控件,将其激活;(2)执行“编辑”菜单中的“复制”命令(热键为Ctrl+C),将该控件放入剪贴板;(3)执行“编辑”菜单中的“粘贴”命令(热键为Ctrl+V),将显示一个对话框,询问是否建立控件数组;(4)单击对话框中的“是”按钮,窗体的左上角将出现一个控件,它就是控件数组的第二个因素,执行“编辑”菜单中的“粘贴”命令,或按热键Ctrl+V,建立控件数组中的其他元素。控件数组建立后,只要改变一个控件的“Name”属性值,并把Index属性置为空(不是0),就能把该控件从控件数组中删除。控件数组中的控件执行相同的事件过程,通过Index属性可以决定控件数组中的相应控件所执行的操作。六、记录(一)记录类型和记录类型变量1.记录类型定义格式:[Private|Public]Type数据类型元素名[(下标)]As类型名元素名[(下标)]As类型名…EndType2.定义记录类型变量记录类型变量的定义和基本了类型变量的定义一样,在引用是有所不同,用“变量元素”的格式应用记录中的成员。(二)记录类型变量的初始化及其引用1.记录类型变量的初始化用赋值语句或输入语句对记录各个成员分别赋值。2.记录类型变量的引用及其操作成员的引用:记录变量.成员名七、记录数组定义的一般格式:Dim数组名([下界]To上界)As记录名引用记录数组元素的成员:记录数组名(下标).成员名训练:一、选择题1.如下数组声明语句中正确的是________。A)DimA(45)AsIntegerB)DimA(n,n)AsIntegerC)DimA(4,5)AsIntegerD)DimA[4,5]AsInteger 3.语句OptionBase1:Dima(3,4)定义的数组所包含的数组元素的个数是________。A)7B)12C)15D)204.要分配存放如下方阵的数据,正确的且最节约存储空间的数组声明语句是________。1.12.23.34.45.56.6A)Dima(6)AsSingleB)Dima(2,3)AsSingleC)Dima(2To3,-3To–1)AsSingleD)Dima(1,2)AsInteger5.设有数组声明:Dima(-2To4,3To6),则下面引用数组元素正确的是________。A)a(-2,3)B)a(5)C)a[-2,4]D)a(-1,7)6.用下面语句定义的数组元素个数是________。DimA(-3To5)AsIntegerA)6B)7C)8D)97.语句Dimarr(-3To5,2To6)AsInteger定义的数组元素有________。A)45B)40C)11D)548.以下程序输出的结果是________。OptionBase1PrivateSubForm_Click()Dima,B(3,3)a=Array(1,2,3,4,5,6,7,8,9)Fori=1To3Forj=1To3B(i,j)=a(i*j)If(i>=j)ThenprintTab(j*3);format(B(i,j),"###");NextjPrintNextiEndSubA)123456789B)124369C)147246369D)1234699.在窗体上面画一个命令按钮,然后编写如下事件过程:OptionBase1PrivateSubCommand1_Click()Dimaa=Array(1,2,3,4) j=1Fori=4To1Step-1s=s+a(i)*jj=j*10NextiPrintsEndSub运行上面的程序,单击命令按钮,其输出结果是________。A)4321B)12C)34D)123410.在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:PrivateSubCommand1_Click()Dimarray1(10,10)AsIntegerDimi,jAsIntegerFori=1To3Forj=2To4array1(i,j)=i+jNextjNextiText1.Text=array1(2,3)+array1(3,4)EndSub程序运行后,单击命令按钮,在文本框中显示的值是________。A)12B)13C)14D)1511.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:PrivateSubCommand1_Click()DimiAsInteger,jAsIntegerDima(10,10)AsIntegerFori=1To3Forj=1To3a(i,j)=(i-1)*3+jPrinta(i,j);NextjPrintNextiEndSub程序运行后,单击命令按钮,在窗体上显示的值是________。A)123234369B)234345456C)147258 369D)12345678912.设有如下程序:OptionBase1PrivateSubForm_Click()DimaDimiAsIntegera=Array(1,2,3,4,5,6,7,8,9)Fori=0To3Printa(5-i);NextiEndSub程序运行后,单击命令按钮,在窗体上显示的值是________。A)5432B)6543C)4321D)765413.执行以下Command1的Click事件过程在窗体上显示________。OptionBase1PrivateSubCommand1_Click()Dimaa=Array("a","b","c","d","e","f","g")Printa(1);a(3);a(5)EndSubA)abcB)bdfC)aceD)出错14.设有如下程序:Dima(3,3)AsIntegerForm=1To3Forn=1To3a(m,n)=(m-1)*3+nNextnNextmForm=2To3Forn=1To2Printa(n,m);NextnNextm运行后输出的结果是________。A)2536B)2356C)4758D)457815.下列程序段的执行结果为________。DimA(4)n=3A(1)=1Fork=0Ton-1ForP=1Tok+1 X=k+2-PA(X)=A(x)+A(x-1)Ifkm1Thenm1=a(i)m2=iEndIfNextiEndIfPrintm1Printm2EndSub4.写出当发生Command1_Click事件后,下面程序的运行结果。PrivateSubCommand1_Click()Dima(10)AsInteger,p(2)AsInteger,iAsinteger,kAsIntegerk=5Fori=0To9a(i)=iNextiFori=0To2p(i)=a(i*(i+1))NextiFori=0To2k=k+p(i)*2NextiPrintkEndSub5.写出当发生Command1_Click事件后,下面程序的运行结果。PrivateSubCommand1_Click()DimyAsInteger,iAsIntegerDima(8)AsIntegery=18:i=0 Doa(i)=yMod2i=i+1y=y2LoopUntily<1Forj=i-1To0Step-1Printa(j)NextjEndSub6.写出当发生Command1_Click事件后,下面程序的运行结果。PrivateSubCommand1_Click()DimB(2,2)AsIntegerDimi,k,tAsIntegerFori=0To2Forj=0To2B(i,j)=jNextjNextit=1Fori=0To2Forj=iTo2t=t+B(i,B(j,j))NextjNextiPrinttEndSub7.写出当发生Command1_Click事件后,下面程序的运行结果。OptionBase1PrivateSubCommand1_Click()Dimaa(4,4)AsIntegerDimi,sAsIntegers=0Fori=1To4Forj=1To4aa(i,j)=(i-1)*4+j*2NextjNextiFori=1To4s=s+aa(i,1)NextiPrintsEndSub8.写出下面程序的运行结果。PrivateSubCommand1_Click() Dima(1To10)Dimp(1To4)k=5Fori=1To10a(i)=i+1NextiFori=1To4p(i)=a(i*2)NextiFori=1To4k=k+p(i)*2NextiPrintkEndSub四、程序填空题1.下面程序的功能是用”冒泡”法将数组a中的10个整数按序排列,阅读程序并填空。OptionBase1PrivateSubCommand1_Click()Dimaa=Array(678,45,324,528,439,387,87,875,273,823)Fori=【1】Forj=【2】Ifa(j)【3】a(j+1)Thena1=a(j)a(j)=a(j+1)a(j+1)=a1EndIfNextjNextiFori=1To10Printa(i)NextiEndSub2.以下程序代码使用二维数租A表示矩阵实现单击命令按钮Command1时使矩阵的两条对角线上的元素值全为1,其余元素值全为0,阅读程序并填空。OptionBase1PrivateSubCommand1_Click()DimA(4,4)Fori=1To4Forj=1To4A【1】=0NextjA【2】=1A【3】=1 NextiFori=1To4Forj=1To4PrintA(i,j);NextjPrintNextiEndSub3.以下程序的功能是从键盘上输入3行4列的数组,求出它的每行最大值及其下标,阅读程序并填空。Optionbase1PrivateSubForm_Click()Dima(3,4)AsIntegerDimiAsInteger,jAsIntegerDimmax(3)AsInteger,col(3)AsIntegerFori=1To3Forj=1To4a(i,j)=InputBox("请输入一个元素值")NextjNextiFori=1To3max(i)=a(i,1):【1】Forj=2To4Ifmax(i)iThent=a(k):【3】:a(i)=tEndIfNextiFori=1To10Printa(i);NextiEndSub5.以下程序的功能是把一个具有三行四列的A矩阵和一个具有四行三列的B矩阵相乘的结果存放到C矩阵中,阅读程序并填空。OptionBase1PrivateSubCommand1_Click()Dima(3,4)AsInteger,b(4,3)AsIntegerDimc(3,3)AsInteger,iAsInteger,jAsInteger,kAsIntegerFori=1To3Forj=1To4a(i,j)=i+jNextjNextiFori=1To4Forj=1To3b(i,j)=i*jNextjNextiFori=1To3Forj=1To3Fork=1To4c(i,j)=【1】NextkNextjNextiFori=1To3Forj=1To3Printc(i,j),Nextj【2】NextiEndSub五、编程题1.编程实现数组插入操作,通过InputBox函数 输入的一个数插入到按递减的有序数列中,插入后的序列仍有序。2.编程删除具有10个元素数组中指定位置的元素,并输出删除后的结果。3.编程用二分查找法在已排好序10个元素的数组中查找输入的数,如果找在窗体上输出该数的下标,否则输出“没有找到”4.编程用冒泡法对6个元素的数组a进行从小到大排序。第八章数组与记录一、选择题1.C2.D3.B4.C5.A6.B7.A8.B9.D10.A11.D12.A13.C14.A15.A16.D17.B18.C19.A20.D二、填空题1.变体类型2.0optingbase13.246164.DimaAsVariantInputBox(str1)x="E"Orx="e"5.ReDima(j,i)6.p=a(i,i)+pq=a(i,m+1-i)+q7.208.419.a(i)=a(10+1-i)a(10+1-i)=tmp10.1a(i)>a(max_i)11.iMod5=012.Print13.index14.index三、程序阅读题1.332.91012133.49554.215.100106.97.328.53四、程序填空题1.1to91to10-i>2.(i,j)(i,i)(i,4-i+1)3.col(i)=1col(i)=jPrinta(i,j),Printmax(i),col(i) 4.k=ia(j)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭