- 419.29 KB
- 2022-07-30 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
“VisualBasic编程与应用”期末复习资料第一章VisualBasic6.0程序设汁概述重点掌握的内容:对象与事件驱动对象:世界上存在的任何具体的事物都可以称之为对象。对象是具体存在的,每个对象都是唯一的,有着自己独特的个性。类:是具有相同性质的对象的集合。对象和类的区别在于前者是具体的,而后者则是抽象的。属性、方法和事件:VB采川一种所谓的事件驱动的编程机制,由用户來掌握程序的运行流向。可以把属性看作一个对象的性质,把方法看作对象的动作,把事件看作对象的响应。对象的属性的设賈可以通过两种方法来实现:(1)通过属性窗门直接设置;(2)在程序代码屮通过赋值实现,其格式为:对象.属性=属性值事件过程:事件即对象相应的动作,是VisualBasic预先定义好的对象能识别的动作,如Click、DbClick、LostFocus等等。讲件过程是指附在该对象上的程序代码,是事件的处理程序,即用来完成事件发生后所要做的动作创建VisualBasic应用程序有三个主要步骤:1.创建应用程序界而。2.设置属性。3.编写代码。窗体的属性和方法窗体属性:重点掌握:Name,Caption,BorderStyle,MinButton,MaxButton等属性\nPrint方法:在VisualBasic中,Print方法是用来输出信息的专用过程,Print方法应重点掌握如下:(1)语法结构[对象].Print[表达式列表](2)表达式列表中的分隔符:①若用分号):输fli的各表达式的值中间没有空格,数值型前留有一个符号位。例如Print“1”;“2,,;“3,,输出格式为123②若用逗号(,):输出的各表达式的值将被分配在各个区段内,例如Print“1”,“2”,输出格戎为③SPc(n)函数,用于产生空格,这里n为要插入的空格数,例如Print“1”;Spc(3);“2’输出格式为12④Tab(n)函数,用于将插入点定位在绝对列号上,这里n为列号。例如Print“1”;Tab(20);输出格式为12自测与练习题一、判断题1、为了使一个控件在运行时不可见,应对该控件的Visable属性值没置为False。()2、当用Load命令将窗体装入内存时,一定触发窗体的load事件和Activate事件。()3、而向对象程序设计是一种以对象为基础,由事件驱动对象执行的设计方法。()4、将焦点主动设置到指定的控件或窗体上,应采用Setfocus方法。()\n5、方法是VB对象可以响应的用户操作。()6、对象是基本的运行时实体,它既包括了数据(属性),也包括作用于对象的操作(方法)和对象的响应动作()。7、属性是用来描述和反映对象特征的参数,对象的所有属性都可以在属性窗口中设罝。()8、VB屮将一些通用的过程和函数编写好并封装作为方法供用户直接调用。()9、每个对象都有一系列预先定义好的事件,但要使对象能响应具体的事件,则应编写该对象相应的事件过程。()10、属性是VB对象性质的描述,对象的数裾就保存在属性中。11、同一个窗体文件只能用于一个工程中。()12、当打开一个VB工程后要另存为一个版本,单击“工程另存为…”就行,因为其同时会保存窗体文件。()13、标签的Capton属性用于设置标签框屮显示的文本闪容,该内容可以编辑。()14、标签的Alignment属性值为1,表示标签中的文本右对齐。()15、文本框既用于输出,又可在其中输入、编辑文本。()16、要想在文本框中输入或显示多行文本,必须将该文本框的MultiLine属性设置为Palseo()17、要想一个文本框中文本长度或宽度超过文本框的长度或宽度时既有水平滚动条又有垂直滚动条,应将该文本框的ScrollBars属性设置为3o()18、要想让一个命令按钮无效,应将该命令按钮的Visable属性设置为False。()19、某控件的Visable属性设置为True,表示该控件在程序运行时是可见的。()参考答案:I.72.X3.74.75.X6.77.X8.79.710.7\nI.X12.713.X14.715.716.X17.718.X19.7二、填空题1.为了在窗体上输出具有相同的字体格式,应对的属性进行设置。\n1.在代码窗口对窗体的BorderStyle、MaxButton属性进行了设罝,但运行后没有效果,原因是这些属性o2.在文本框屮,通过属性能获得当前插入点所在的位置。3.要对文本框中己有的内容进行编辑,按下键盘上的键,就是不起作用,原因是设置了属性为True。4.在窗体上己建立多个控件如Textl、Label1>Command1,若要使程序一运行焦点就定位在Command1控件上,应对Command1控件设罝属性的值为。5.在用Show方法后显示自定义对话框时,如果Show方法后带参数就将窗体作为模式对话框显示。6.每当一个窗体成为活动窗口时触发事件,当另一个窗体或应用程序被激活吋在原活动窗体上产生事件。7.VB中可作为其它控件的容器的除窗体有和控件。参考答案:1.窗体font2.不能在代码屮设賈3.selstart4.Locked5.TabTndex06.vbModal或17.ActivateDeactivate8.PictureBox(或图片框)Frame(或框染)三、选择题1.对于窗体,下面属性在程序运行时对于其在屏幕上的位置起作用。(A)MaxButton(B)BorderStyle(C)Name(D)Left2.要使Print方法在Form_Load事件中起作用,要对窗体的属性进行设置。\n3.若要使标签控件显示时不覆盖其背景内界,要对属性进行设置。(A)BackColor(B)BorderStyle(C)EoreColor(D)BackStyle4.若要使命令按钮不可操作,要对属性设置。(A)Enabled(B)Visible(C)BackColor(D)Caption5.文本框没有属性。(A)Enabled(B)Visible(C)BackColor(D)Caption6.不论何对象,都具有属性。(A)Text(B)Name(C)ForeColor(D)Caption7.要使某控件在运行时不可显示,应对属性进行设置。(A)Enabled(B)Visible(C)BackColor(D)Caption8.要使窗体在运行时不可改变窗体的大小和没有最大化和最小化按钮,只要对下列属性设置就有效。(A)MaxButton(B)Borderstyle(C)Width(D)MinButton9.当运行程序时,系统自动执行启动窗体的事件过程。(A)Load(B)Click\n(C)UnLoad(D)MinButton7.改变控件在窗体中的上K位置皮修改该控件的\n属性。(A)Top(B)Left(C)Width(D)Right参考答案:1、D2、C3、D4、A5、D6、B7、B8、B9、A10、A四、编程题:在窗体上建立5个命令按钮Command1、Coniinand2、Command3、Command4、Command5和1个标签Label1。将这些控件作适当布置,如下图。编程序完成如下要求:(1)程序运行后,4个命令按钮显示分别为:“放大”、“加粗”,“下画线”、“还原”“移动”,标签显示为“VB程序设计”(2)单击“放大”,标签显示的文字放大3倍,单击“加粗”,标签显示的文字则加粗,单击“下画线”则标签显示的文字加下画线、单击“还原”,则标签显示的文字格式回到起初状态。(3)每单击“移动”命令按钮一次,标签则向左移动一定距离,单击10次,则移动到最左边(Label1.Left=0)。代码如下:DimsizeAsInteger,ftAsDouble,bdAsBoolean,dlAsBooleanPrivateSubCommand1Click()Label1.FontSize=Labell.EontSize*3EndSubPrivateSubCommand2Click()Label1.FontBold=TrueEndSubPrivateSubCommand3_Click()Label1.FontUnderline=True\nEndSubPrivateSubCommand4Click()Label1.FontSize=sizeLabel1.FontBoId=bdLabel1.FontUnderline=blLabel1.Left=ftEndSubPrivateSubCommand5Click()Label1.Left=Label1.Left-ft/10EndSubPrivateSubForm_Load()size=Label1.FontSizebd=Label1.FontBoldbl二LabelhFontUnderlineft=Label1.LeftEndSub第二章VisualBasic6.0语言基础\n重点掌握的内容:1、数据类型VisualBasic中的数据以四种形式存储:变量、常量、数组和记录。每一种形式都适合于不同的特定任务。2、变量:变量的概念、命名、声明。命名规则:(1)变量名的第一个字母必须是字母,后接字母、数字、下划线,但不可是小数点、空格(2)变量名的最后一个字符可以是类型说明符%,&),但它们不能出现在变量名的其它位置。例如:A%说明了变量A是整型B&说明了变量B是长整型C!说明了变簠C是单精度型D#说明了变量D是双精度型E@说明了变量E是货币型说明了变量F是字符串型注意:变量名不能与保留字重名。声明变y::(1)隐式声明变量不经声明直接使川,如:A=123其类型由赋值的类型所决定(2)显式声明变量用Dim变量名As类型名声明后再使用的方式就是显式声明。OptionExplicit的作用就是强制显式声明模块屮的所有变fi。3、常量:常量的概念、分类、声明。常量分为系统内在常量和自定义常量(符号常量)。\n符号常量川Comst语句声明。例如Const1)1AsDouble=3.14159264、运算符与表达式:运算符是用来对运算对象进行各种运算的操作符号,而表达式是由多个运算对象和运算符组合在一起的合法算式。VisualBasic中的运算符分为五类:算术运算符、连接运算符、关系运算符、逻辑运算符和特殊运算符;主要有三种表达式,即算术表达式,关系表达式和逻辑表达式。(1)数学运算:运算符有+—*/\(整除)Mod(求余运算)。例如:aModb表示a被b整除以后的余数。\n(2)关系运算::关系运算也称比较运算,VB共提供六种运算符,分别是=(等于),>(大于),〈(小于),〉=(大于等于),〈=(小于等于),〈〉(不等于),Like(模糊匹配)和Ts(一致比较)。(3)逻辑运算:NotAndOr(4)日期运算:+5、常见标准函数:(1)数学函数:SqrRnd(2)转换函数:AscChrTntValStr(3)字符串函数:SpaceTrimMid(4)日期和时间函数:DateTimeNowYear(5)交互式函数:Msgbox函数和InputBox函数的使用自测与练习题一、写山下列函数的值(1)Int(-3.14159)(2)Chr$(Sqr(64))(3)Fix(-3.1415926)(4)Sgn(-7^2+2)(6)Val("16Year")(7)Str(-459.65)(8)Len(’’Hello’’)参考答案:(1)-4(2)退格符(3)-3(4)-1(5)“ello”(6)16(7)“-459.65”(8)5二、填空题1、整型变量\屮存放了一个两位数,要将两位数交换位罝,例如,13变成31,实现的表达式是。2、表示x是5的倍数或是9的倍数的逻辑表达式为。3、表达式Uca.se(Mid(〃abcdefgh〃,3,4))的值是\n4、在直角坐标系中,X,y是坐标中任意点的位罝,用x与y表示在第一或第三象限的表达式是。5、表示S字符变量是字母字符(大小写字母不区分)的逻辑表达式为。参考答案:1、(Xmod10)*10+X\102、xmod5=0ORxmod9=03、“CDEF“4、x〉0ANDy〉0ORx<0ANDy〈05、s〉=”八”ANDs<=”Z”ORs〉=”a”ANDs<=”z”三、选择题1、函数Int(Rnd(0)*100)是在哪个范围内的整数?A.(0,10)B.(1,100)C.[0,100)D.(1,99)2、如果X是一个正实数,对X的第3位小数四舍五入的表达式是:A.0.01*Int(x+0.005)B.0.OHInt(100*(x+0.005))C.0.01*Int(100*(x+0.05))D.0.01*Int(x+0.05)3、己知变量A、B、C屮C最小,则判断A、B、C可否构成三角形的逻辑表达式为:A.A>=BAndB〉=CAndC〉0B.A+C>BAndB+C>aAndC〉0C.(A+B〉=CorA-B<=C)AndC>0D.A+B〉CAndA-B〈CAndC>04、下谢哪个是算术运算符:A.TmpB.ModC.NotD.Like\n5、下而的运算符中,优先级最高的是:\nA.NotB.IsC.LikeD.&6、下面的哪一条语句与VisualBasic的默认设置相同:A.OptionBase1B.OptionBase2C.OptionCmpareTextD.OptionExplicit参考答案:CBBBDD四、编程题1.在商体上放1个标签Labell,1个命令按钮Command1,当窗体启动时使标签居于窗体的巾间,并显示系统的当前时间,命令按钮显示为“放大”,当单击命令按钮时,将标签中显示显示文字放大1〜3倍,并重新显示系统当前时间。OptionExplicitPrivateSubCommand1Click()Label1.FontSize=Label1.FontSize*(Int(Rnd*3+1))’放大字体Labell.Caption=〃当前时间为〃&Time’显示时间’以下让Labell居屮显示Label1.Left=Forml.SealeWidth/2-Labell.Width/2Labell.Top=Forml.ScaleHeight/2-Labell.Height/2EndSubPrivateSubFormLoad()Labell.Caption=〃当前时间为〃&TimeLabell.Left=Forml.ScaleWidth/2-Labell.Width/2Labell.Top=Forml.ScaleHeight/2-Label1.Height/2\nRndSub2.编一模拟简易计算器的程序,运行界而如下图所示。\nOptionExplicitPrivateSubFormLoad()Label1.Caption=EndSubPrivateSubCommandl_Click()Label1.Caption="+"Text3.Text=Val(Textl)+Val(Text2)EndSubPrivateSubComniand2_Click()Label1.Caption=”一”Text3=Str$(Val(Text1)-Val(Text2))EndSubPrivateSubCommand3Click()Label1.Caption=〃X〃Text3=Str$(Val(Textl)*Val(Text2))EndSubPrivateSubCommand4Click()Labell.Caption=〃+〃Text3=Str$(Val(Textl)/Val(Text2))EndSubPrivateSubCommand5_CIick()丁extl.Text=""Text2.Text=zz,z加法’减法乘法除法清除Text3.Text=////\nLabel1.Caption=zz//EndSub第三章程序设计的3种基本结构重点掌握的内容:InputBox(函数):使用I叩utBox函数可以建立输入对话框并返回字符型数据。MsgBox函数与语句:MsgBox函数产生的消息对话框可以看作是输出对话框。消息对话框能显示“错误”、“指示”、“赘告”之类的简短信息以及“确定”、“取消”等按钮。详见4.2节。三种程序结构以及If条件语句、SelectCase语句、For…Next语句、DoWhile•••Loopip句等。能够分析阅读程序,正确输出程序运行结果,能够编写简单的程序。自测与练习题一、判断题1、使用MsgBox函数与MsgBox过程均可接受用户输入数据。()2、IF语句中的条件表达式中只能使用关系或逻辑表达式。()3、在SelectCase惜况语句中,各分支(即Case表达式)的先后顺序无关。()4、要实现同样的循环控制,在DoWhile-Loop和DO-LoopWhile循环结构屮给定的循环条件是一样的。()5、Do-LoopWhile语句实现循环时,不管条件真假,首先无条件地执行一次循环。()6、Do-LoopUntil语句实现循环时,只要条件是假,循环将一直进行下去。()7、一个Do循环只能使用一个Loop关键字,但是可以使用多个Exit语句。()8、For循环语句正常结束(即不是通过ExitFor语句或强制中断)其循环控制变量的值•一定大于“终值”,并等于“终值”+“步长”。()9、Print方法既可以在窗体中输山数据,又可以在图片框和立即窗门中输出数据。(\n)参考答案:1.X2.X3.X4.X5.76.V7.78.X9.二、选择题1、下面程序段运行后,显示的结果是。DimxAsIntegerIfxThenPrintxElsePrintx+1(A)1(B)0(C)-1(D)显示出错信息2、下面程序段求两个数中的大数,不正确。(A)Max=Iif(x〉y,x,y)(B)Ifx〉yThenMax=xElseMax=y(C)\lax=xIfy〉=xThenMax=y(D)Ify>=xThenMax=yMax=x3、下段程序执行的输出结果是。S=O:T=O:U=OFor1=1To3ForJ=1ToIForK=JTo3S=S+1NextKT=T+1\nNextJU=U+1NextIPrintS;T;U\n(A)3614(B)1463(C)1436(D)1643参考答案:1.A2.D3.B三、程序阅读写岀下列各段程序执行后的输岀结果。1.程序1PrivateSubFormClick()DimiAsInteger,jAsIntegerDimkAsIntegerFor1=0To10Step3Forj=lTo10Ifj〉=5Then1=1+4:ExitForJ=j+1K=k+1NextjIfI〉8ThenExitForNextIPrintkEndSub程序运行后,当单击窗体之后,窗体上输出的是。2.程序2\nPrivateSubFormClick()DimbAsIntegera=Val(T叩utBox("请输入数据〃,,100))SelectCaseaMod5CaseIs<4w二a+10CaseTs<2w=a*2CaseElsew=a-10EndSelectLabel1.Caption=〃w=〃&Str(w)EndSub设输入的数据分别为14、3、125、21时,标签框Labell.Caption的值分别是什么?3.程序3PrivateSubFormClick()Dimn%,i%,str$,x$str二〃Howareyou!〃n二Lcn(str)Fori=1Tonx=Mid(str,i,1)十xNexti\nPrintstrPrintxEndSub程序运行后,当单击窗体之后,窗体上输出的是。4.程序4\nPrivateSubFormClick()Dimi%,j%Fori=1To5Forj=lto2*i-lPrintchr$(65+i-l);NextjPrintNextiEndSub程序运行后,当单击窗体之后,窗体上输出的是5.程序5PrivateSubTextlKeyPress(KeyAsciiAsInteger)k%=KeyAsciic$=Chr(k)Ifc〉="八〃Andc〈=TThenk=k+5Ifk>Asc(〃Z")Thenk:k-26Elselfc〉="a〃Andc〈=〃z"Thenk=k+5Ifk>Asc("z")Thenk=k-26EndIf\nText2.Text=Text2.Text+Chr(k)EndSub程序运行后,在文本框Textl输入“Ab,X4y5”,文本框Text2中显示的内容是什么?参考答案:1.42.413135313.!uoyerawho4.A5.Fg,c4d5BBBCCCCCDDDDDDDEEEEEEEEE叫、程序填空题1.下面的程序段是检查输入的算术表达式中圆括号是否配对,并显示相应的结果。本程序在文本框中输入表达式,边输入,边统计,以输入回车作为表达式输入结束,然后显示结果。Dimcount1%PrivateSubTextl_KcyPress(KeyAsciiAsInteger)If=〃(〃ThenCount1=Count1+1ElselfThenEndIfTfKeyAscii=13ThenIfThen\nPrint〃左右括号配对〃ElseifThenPrint〃左括号多于右括号〃;countl;"个〃ElsePrint〃右括号多于左括号〃;-countl;〃个"EndIfEndSub2.输入任意长度的字符串,要求将字母顺序倒置,例如,将输入的“ABCDEFG”变换成“GFEDCBA”。PrivateSubCommand1_C1ick()Dima$,c$,d$,n%,i%a二I叩utBox$(〃输入字符串")Fori=lTonC=Mid(a,i,1)NextiPrintaEndSub3.下程序用辗转相除法求两自然数m、n的最大公约数和最小公倍数。PrivateSubFormClick()Dimm%,n%,mn%\nn=Val(InputBox(“n=”))m=Val(InputBox(“m=”))Ifn〈=0ORm〈=0ThenMsgBox“数据出错”:EndIfThen\nt=m:m=n:n=tr=mmodnDoWhiler<>0m=nn=rLoopEorml.Print“最大公约数=”,n,Forml.Print“最小公倍数=”,mn/n,EndSub2.某次大奖赛,有10个评委打分,下面的程序是对一名参赛者,输入10个评委的打分分数,去掉一个最高分、一个最低分后,求出平均分为该参赛者的得分。PrivateSubCommand1Click()Dimmark!,aver!,maxi!,mini!Aver二0For1=1To10Mark=Val(T叩utBox(〃输入策〃&T&〃位评委的打分〃))If1=1ThenMaxi二mark:ElseIfmarkmaxlThen\nNextIAver=PrintaverEndSub参考答案:1.Chr(KeyAscii)Chr(KeyAscii)=")"Countl>0Countl=Count1-1Count1=02.Len(a)d=c+da=d3.mn=m*nm0)ThenPrintN&〃年是闰年〃RisePrintN&〃年不是闰年〃EndIfEndSub3、设计一个应用程序,要求利用InputBox(函数)接收一周7天的温度,程序进行处理后,利用MsgBox函数输出一周的平均温度。(设用7个标签显示用户输入的7个温度)\nDimiAsIntegerDimtAsSingle,sAsSingles=0Fori=0To6t=Val(I叩utBox(〃请输入〃&〃周〃&(i+1)&〃温度:",〃输入"))Label1(i).Caption=Label1(i).Caption&t&〃度〃s=s+tNextis=s/7Print〃七天的平均温度是:〃&s&〃度〃EndSub4、规范整理英语文章,即对输入的任意大小写英语文章进行整理。要求:句子开头应为大写字母(句子以符号“?”、“.”和“!”作为结朿符的),其它都是小写字母。OptionExplicitDimPreAsLong’存放当前处理字符的前一个字符PrivateSubForm_Load()Pre=46’初始状态为”EndSubPrivateSubTextl_KeyPress(KeyAsciiAsInteger)DimchAsStringch=Chr(KeyAscii)If(Pre=46OrPre=63OrPre=33OrPre=13)Andch>="a〃Andch<=\n"z"Then‘前一个字符是”或”!”或”?”或回车KeyAscii=KeyAscii-32EndIf\nIfKeyAscii<>32ThenPre=KeyAscii当前处理字符不是中格EndSub第四章数组重点掌握的内容:一、数组的定义:数组必须先定义后使用例如:DimA(1to10)AsIntegerDimB(10)Asdouble定义后数组A有10元素,分别为A(1),A(2),…,A(10);数组B的元素个数由系统的下标缺省值来决定,若没有OptionBase语句或使川OptionBase0,则B的元素个数力11,即B(0),B(l),…,B(10);若使用OptionBase1则B的元素个数为10,即B(l),…,B(10)。二、定长数组的定义:数组定义时指定了大小,占用的内存大小是固定不变的数组称为定长数组,如上例数组A、数组B。三、动态数组的定义:例如DimCOAsInteger,声明了C是一个动态数组,在使用C数组前,必须用ReDim语句定义它的大小,例如ReDimC(5)。MJReDim语句可以使川Preserve参数保留数组中原有的数据。例如:DimC()RcDimC(5):C(l)=20:ReDimPreserveC(10)自测与练习题一、判断题1、在使用ReDim重定义动态数组时的下标可以用变量来表示。()2、使用ReDim语句既可以改变数组的大小,也可以改变数组类型。()3、若要使定义数组下标下界缺省值时,下界值为2,则可用语句OptionBase2。()4、在VB中,用DIM定义数组时,数组元素也自动赋初值为0。()5、数组在内存屮占据一片连续的存储空间。()参考答案:\n1.72.X3.X4.X5.7二、选择题1.以下程序输出的结果是Dima,i%a=array(1,2,3,4,5,6,7)Fori=Lbound(a)toUbound(a)a(i)=a(i)*a(i)nextiprinta(i)程序出错(A)49(B)0(C)不确定(D)2.以下程序输出的结果是。OptionBase1PrivateSubComniandl_Click()Dima%(3,3),i%,j%Fori=lto3forj=lto3Ifj〉landi〉lthena(i,j)=a(a(i-l,j-1),a(i,j-l))+lElsea(i,j)=i*jEndifPrinta(I,j);””;\nNextjPrintNextIEndSub(A)12(B)123231123323(C)123(D)1112463691.程序运行后,单击窗体,输入的数据为8,则输出结果为?PrivateSubFormClick()DimiA,i%,n%,t%n=InputBox("EnterN=?")iA=array(1,2,3,4,5,6,7,8,9,10)Fori=1Ton\2t=iA(i):iA(i)=iA(n-i+l):iA(n~i+l)=tNextiFori=0toUbound(iA)PrintiA(i);NextiEndSub\n(A)12345678910(B)10234567891(C)19876543210(D)10987654321参考答案:1.D2.A3.C三、程序填空1.下面的程序是将输入的一个数插入到按递减的有序数列中,插入后使该序列仍有序。Privatesubformclick()Dima,i%,n%,m%a二array(29,21,15,13,11,9,7,5,3,1)n=ubound(A)Redimm^val(i叩utbox(〃输入欲插入的数〃))Fori=ubound(A)一1to0step-1Ifm〉二a(i)thenifi=0thena(i)=melseexitforendifNextiFori=0to\nPrinta(i)NextiEndSub2.在窗体上有1个命令按钮和1个文件框,名称分别为cmdstart、Textl。文本框Textl中的字符个数不超过200个。程序开始运行时,单中的字符按其ASCII码值由小到大自左到右重新组合,并在窗体上输出重组后的字符串。PrivateSubCmdstartClick()DimnAsInteger,TAsInteger,jAsInteger,pAsIntegerDima(200)AsString*1,strlAsString,tAsStringstrl=Textl.Textn=Fori=1Tona(i)=NextiFori=1Ton-1p=iForj=i+1TonTfThenp=jNextjNextiFori=1TonPrinta(i);NextiEndSub\n参考答案:1.Preservea(n+l)a(i+l)=a(i)a(i+l)=mn+1或Ubound(a)2.Len(strl)Mid(str,i,1)a(p)>a(j)t=a(p):a(p)=a(i):a(i)=t四、编写程序i.编一程序,将一维数组屮元素14右循环移位,移位次数键盘输入。例如,数组各元素的值依次为◦,1,2,3,4,5,6,7,8,9,10;位移3次后,各元素的值依次为8,9,10,0,1,2,3,4,5,6,70OptionExplicitDimNAsInteger\nDimA()AsIntegerPrivateSubFormClick()DimiAsInteger,jAsInteger,tAsInteger,kAsIntegerN=Val(InputBox(〃请输入数组的大小〃))IfN<=0ThenExitSubRcDimA(N-1)Print〃原始数组值〃Fori=0ToN-1A(i)=Val(TnputBox(〃A(〃&i&")=〃))PrintA(i);NextiPrintj=Val(InputBox(〃请输入循环的大小"))Fori=1Tojt=A(N-1)Fork=N-1To1Step-1A(k)=A(k-1)Nextk循环右移八(0)=tNextiPrint〃循环右移〃&j&〃位后的数组值〃Fori=0ToN-1\nPrintA(i);\nPrintEndSub2.编一程序,用随机函数Rnd产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。OptionExplicitPrivateSubFormClick()DimX(1To10)AsInteger,A(1To100)AsIntegerDimPAsInteger,JAsInteger,IAsIntegerForJ=1To100八(J)=Rnd*100’产生[0,99]的随机数PrintA(J);P=A(J)-Int(A(J)/10)*10IfP=0ThenP=10'个位为零存入数组a(10)X(P)=X(P)+1’将对应的个位数存入对应数组IfJMod10=0ThenPrintNextJPrintForJ=1To10P=J:I=JIfJ=10ThenI=0\nPrint〃个位数是〃&1&〃有〃&X(P)&〃个〃NextJ1.通过输入对话框输入100个数值数裾放入数组a。将其中的整数放入数组b,然后运用选择分类法将数组b中的数据按从大到小的顺序排列,并以每行5个数据在窗体上输出。OptionExplicitConstNM=100PrivateSubForm_Click()Dima(lToNM)AsSingle,b(lToNM)AsInteger,maxAsIntegerDimiAsInteger,jAsInteger,kAsInteger,tAsIntegerFori=1ToNMa(i)=Val(InputBox(〃请输入a(〃&i&〃)的值〃))IfInt(a(i))=a(i)Then’判断是否为幣数k=k+1b(k)=a(i)EndIfNexti’选择排择Fori=1Tok-1max=iForj=i+1Tok\nIfb(max)iThent=b(max):b(max)=b(i):b(i)=t\n'打印输出Fori=1TokPrintb(i);IfiMod5=0ThenPrintNextiEndSub1.程序运行界面如下图,要求:(1)每输入一个数据,按回车键,将该数据存到数组a中,在“排序前”图形框Pictl中显示出來,同时清空文本框Textl,准备下一次的输入。(2)当单击“排序”cmdl按钮时,进行递增次序的排序,并在“排序后”图形框Pict2中以每行5个数据显示。(3)当单击“清除”cmd2按钮时,淸除两图形框屮显示的数据。根据要求编写文本框的KeyPress事件过程和命令按钮cmdl和cmd2的Click事件过程。答:在窗体上放置一个文本框,两个图形框,两个命令按钮,如下图所示:OptionExplicitDimA()AsInteger,NAsIntegerPrivateSubcmdlClick()DimiAsInteger,jAsInteger,TminAsInteger,tAsInteger’排序过程Fori=0ToN-2Imin=iForj=iToN-1IfA(j)iThen\nt=A(Imin):A(Imin)=A(i):A(i)=tEndIfNextiPict2.ClsFori=0ToN-1’打印排序后的数组Pict2.PrintA(i);If(i+1)Mod5=0ThenPict2.PrintNextiEndSubPrivateSubcmd2_Click()Pictl.ClsPict2.CisEndSubPrivateSubTextlKeyPress(KeyAsciiAsInteger)’按回车键,将该数据存到数组A中,并打印IfKeyAscii=13ThenN=N+1ReDimPreserveA(N-1)’重新指明数组大小,并保留原來的值A(N-1)=Val(Textl.Text)Textl.Text=Pictl.PrintA(N-1);\nIfNMod5=0ThenPictl.Print\nEndSub第五章过程重点掌握的内容:1.子过程:子过程是在响应事件时执行的程序段。子过程语法如下:[Private|Public|Friend][Static]Sub过程名[(参数表)][程序段][ExitSub][程序段]EndSub子过程调用的两种方法.•Call过程名(实参表)或者过程名实参表2.Function过程:函数过程的语法[Public|Private|Friend][Static]FunctionName[(实参表)][As数据类型][程序段][Name=Expression][ExitFunction][程序段][Name=Expression]EndFunction\n与Sub过程一样,Function过程也是一个独立的过程,可读取参数、执行一系列语句并改变其参数的值。与子过程不同,Function过程可返回一个值到调用的过程。3.Sub过程与Function过程的区别:\n(1)Sub过程定义时无需定义返回值类型,而Function过程一般需要用“As数据类型”定义函数返回值类型。(2)Sub过程中没有对过程名赋值的语句,而Function过程中一定有对函数名赋值的语句。(3)调用过程:调用Sub过程与Function过程不同。调用Sub过程的是一个独立的语句,而调用函数过程只是表达式的一部分。Sub过程还有一点与函数不一样,它不会用名字返回一个值。但是,与Function过程一样,Sub过程也可以修改传递给它们的任何变量的值。(4)参数传递方式:按地址传递参数,这是VB中缺省的传递方式。(或用ByRef关键字定义的参数)按值传递参数,是用ByVal关键字定义的参数。(5)模块:在VisualBasic中提供了三种类型的模块:窗体模块、标准模块和类模块。重点掌握标准模块和窗体模块。5、菜单编辑器窗口设置了某菜单项的有效项为空,即该菜单项属性为False,则运行时该菜单项标题为。6、菜单编辑器窗口设罝了某菜单项的可见项为空,即该菜单项属性为False,则运行时该菜单项标题。7、弹出式菜单上显示的项目取决于按下鼠标键时指针所处的位置。因而,弹出式菜单也被称为。8、定义弹出式菜单时,其第一级菜单的Visible属性要设置为。9、在用菜单编辑器设计菜单时,必须输入的项有。参考答案:1.标题一2.控件数组索引3.Alt+E4.低于6\n5.Enable灰色6.Visible不可见7.右上下文菜单8.False9.名称