VB经典必考资料知识点总结_第1页
VB经典必考资料知识点总结_第2页
VB经典必考资料知识点总结_第3页
VB经典必考资料知识点总结_第4页
VB经典必考资料知识点总结_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

VisualBasic程序设计根底知识要点(概念分析篇)知识点1:在工程资源管理器窗口中可以包含:工程文件、窗体模块文件、标准模块文件和类模块文件(其中可以包含许多各种文件类型)。VisualBasic应用程序可以以解释方式执行和编译方式执行。例题:(1)以下表达中错误的选项是AA.在工程资源管理器窗口中只能包含一个工程文件及属于该工程的其他文件。B.以.bas为扩展名的文件是标准模块文件。C.窗体文件包含该窗体及其控件的属性。D.一个工程中可以有多个标准模块文件。(2)以下表达中错误的选项是CA.翻开一个工程文件时,系统自动装入与该工程有关的窗体、标准模块等文件。B.保存VisualBasic程序时,应分别保存窗体文件及工程文件。C.VisualBasic应用程序只能以解释方式执行。D.事件可以由用户引发,也可以由系统引发。知识点2:窗体和各种控件的名称(Name)是唯一的,用来标识一个窗体或控件的。而窗体和控件的标题是用来说明的,是可有可无的。各种控件之间有局部相同的属性,并不是拥有所有属性。控件有些属性只能在属性窗口中设置,但也有少数属性只能在代码状态设置。Form1.Hide方法和UnloadForm1方法的区别:第一个方法窗体消失但仍存在于内存中;第二个方法窗体消失并不存在于内存中。例题:(1)以下表达中正确的选项是AA.窗体的Name属性指定窗体的名称,用来标识一个窗体。B.窗体的Name属性的值是显示在窗体标题栏中的文本。C.可以在运行期间改变对象的Name属性的值。D.对象的Name属性值可以为空。(2)以下表达中错误的选项是CA.VisualBasic是事件驱动型可视化编辑工具。B.VisualBasic应用程序不具有明显的开始和结束语句。C.VisualBasic工具箱中的所有控件都具有Width和Height属性。D.VisualBasic中控件的某些属性只能在运行时设置。知识点3:标签(Label1):Autosize的True属性可以自动调整标签的大小,而False属性不能。文本框(Text1):1、MaxLength属性表示文本框所能容纳的字符数。2、Passwordchar属性表示口令输入,可以是“*〞或“?〞等。设置文本框输入字符为“*〞:Text1.Passwordchar="*",复原文本框字符:Text1.Passwordchar="",3、ScrollBars属性是表示文本框有垂直或水平滚动条,但是需要和多行属性MultiLine结合一起使用。4、SelLength属性是表示文本框中被选中字符的个数:Text1.SelLength。SelStart属性返回或设置文本框中所选择的文本的起始点;如果没有文本被选中,那么指出插入点的位置:Text1.SelStart。SelText属性是表示文本框中被选中的字符:Text1.SelText。5、文本的主要事件是Change事件:(标签内容随文本框内容变化而变化)PrivatesubText1_Change()Label1.caption=Text1.TextEndsub6、文本框的方法只有一个:Text1.SetFocus例题:(1)能够获得一个文本框中被选取文本的内容的属性是CA.TextB.SelLengthC.SelTextD.SelStrart(2)在窗体上画一个文本框(其名称为Text1)和标签(其名称为Label1)。要求程序运行后,如果在文本框中输入字符,那么立即在标签中显示相同的内容。以下可以实现上述操作的事件过程是AA.PrivateSubText1_Change()B.PrivateSubText1_Click()Label1.caption=Text1.TextLabel1.caption=Text1.TextEndSubEndSubC.PrivateSubLabel1_Change()D.PrivateSubLabel1_Click()Label1.caption=Text1.TextLabel1.caption=Text1.TextEndSub(3)命令按钮(Command1):1、Default属性:当一个命令按钮的Default属性为True时,按回车键和单击该命令按钮的效果相同。2、Cancel属性:当一个命令按钮的Cancel属性为True时,按ESC键和单击该命令按钮的效果相同。(4)单项选择按钮和复选框(Option1和Check1):1、单项选择按钮:Value属性的值是True(选中)和False(未选中),Option1.Value=True与Option1.Value意义一样。2、复选框:Value属性的值是0(未选中)、1(选中)和2(表示暂时不可用)。假设编成Check1.Value=False可以用,但Check1.Value=True不可用(因为True只能转化数值-1而不是1)。(5)列表框(List1):1、List属性是一个数组型属性:List1.List(索引),索引可以是数字0、1…,List1.listindex,变量i(List1.Text等同于List1.list(List1.listindex))。2、MultiSelect属性:用来设置一次可以多项选择的表项数。MultiSelect属性值为0时,每次只能选择一项;MultiSelect属性值为1时,可以同时选择多个工程;MultiSelect属性值为2时,可以用辅助键Shift或Ctrl选择多个工程。3、常用方法:a.AddItem方法表示添加的是一个工程,语法为:对象名.AddItem<添加内容>b.RemoveItem方法表示通过删除索引的方式删除工程,语法为:对象名.RemoveItem<索引>索引可以是数字0、1…,List1.ListIndex,变量i。如果要删除当前被选中的工程,其代码可写成:对象名.RemoveItem对象名.List1.ListIndexc.Clear方法表示去除列表框中所有的内容,语法为:对象名.Clear。(6)组合框(Combo1):1、Style属性:Style属性值为0时,表示下拉式组合框;Style属性值为1时,表示下简单组合框;Style属性值为2时,表示下拉式列表框。其他功能类似列表框(List1)。(7)图片框和图像框(Picture1和Image1):1、图片框(Picture1):Autosize属性值为True时,表示图片框大小随图片大小改变而改变;AutoSize属性值为False时,表示图片框只能局部显示大图片。2、图像框(Image1):Stretch属性为True时,图片大小随图像框的大小改变而改变;Stretch属性为True时,图像框的大小随图片大小的改变而改变。3、两种图形类型都可以按照下面这个方法加载图片:Picture1.picture=LoadPicture(App.Path&"\图片名称.扩展名")Image1.picture=LoadPicture(App.Path&"\图片名称.扩展名")注:“图片名称〞前的“\〞不能省。如果要去除图片:Picture1.Picture=LoadPicture("")Image1.Picture=LoadPicture("")注意:如果使用App.Path方法需要先保存好窗体文件和工程文件到考生文件夹中。(8)滚动条(HScroll1):1、Max和Min属性是分别表示滚动条的最大和最小刻度,刻度值用Value属性值来表示:HScroll1.Value。2、LargeChange和SmallChange属性是分别表示移动滚动条上的左右箭头按钮的移动量和移动滚动条上滚动框的移动量。3、Scroll和Change事件分别表示拖动滚动条上滚动框的操作和单击滚动条上箭头按钮的操作。(9)计时器(Timer1):1、Enabled属性:Enabled属性值为True时,表示计时器可以走动;Enabled属性值为False时,表示计时器停止走动;2、Interval属性:是表示计时器运动的时间间隔,单位为毫秒。时间间隔假设为1秒,那么代码为Timer1.Interval=1000。3、Enabled和Interval这两个属性一般情况下需要一起使用。4、计时器只有一个事件,即Timer,是指每经过一个时间间隔(Interval)所触发的事件。知识点4:(1)VisualBasic常用函数的使用方法:1、数学函数:★求平方根:Sqr(n)★求自然对数Log(n)lnnlog78=loge8/loge7(注意非e为底的对数需要如此转换)★求以e为底的幂值,exexExp(x)1n>0★Sign(n)=0n=0★Rnd()-->X=Int(Rnd*(上界—下界+1))+下界(产生随机整数),注意Rnd函数的取值范围是[0,1)。如设取0~1000的随机整数,包括0和1000,那么代码为Int(Rnd*1001);不包括0和1000,那么代码为Int(Rnd*999+1)。2、转换函数:★Str(x)数值x转换成字符串Str(12.75)="12.75"这样转换12.75之前会多出一位。如果使用CStr(12.75)="12.75"这样转换12.75之前不会多出一位。★Val(x)字符x转换成数值,但x要一定是数字字符才行,Val(“12.75〞)=12.75,如果是含有其他字符Val("12.7ab")将无法转换。★Chr(x)返回以x为ASCII字符Chr(97)="a";Asc(x)给出字符x的ASCII代码值Asc("A")=65三种类型ASCII代码值转换:Asc("0")~Asc("9")-48~57Asc("A")~Asc("Z")-65~90Asc("a")~Asc("z")-97~122特殊情况:Asc("ABC")=65只求第一个字符"A"的Ascii代码值★注意Int(x)、Fix(x)与CInt(x)的区别Int(x)取小于等于x的最大整数当x>0时,用法和Fix一样;当x<0时,Int(-12.3)=-13;Fix(x)将数值型数据x的小数局部舍去Fix(12.8)=12Fix(-12.5)=-12;CInt(x)将数值型数据x的小数局部四舍五入CInt(12.7)=13CInt(12.3)=12但是有特殊情况:x当x是偶数,如CInt(-6.5)=-6CInt(x.5)=x+1当x是奇数,如CInt(7.5)=7+1=83、字符函数★Left(x,n)从x字符串左边起取n个字符Left("ABCDEFG",3)="ABC";Right(x,n)从x字符串右边起取n个字符Right("ABCDEFG",3)="EFG"。Mid(x,n1,n2)从字符串x左边第n1个位置开始向右起取n2个字符;Mid(x,n)从字符串x左边第n个位置开始向右全部取;Mid("ABCDEFG",3,2)="CD"Mid("ABCDEFG",3)="CDEFG"。InStr(n,s1,s2)从字符串s1的第n个位置起查找s2在s1中位置,如果n省略,那么默认从字符串s1的第1个位置起查找s2在s1中位置。InStr(2,"ABCDEFG","CD")=3知识点5:1、运算符:★算术运算符运算符的优先级:^>-->(*/)>\>Mod>(+--)★关系运算符<<=>>==<>LikeIs运算符优先级相同★逻辑运算符运算符的优先级:Not>And>Or>Xor〔异或〕>Eqv例题:(1)表达式4+5\6*7/8Mod9的值是BA.4B.5C.6D.7(2)a=3b=2c=1求Printa>b>c的结果?首先a>b的结果是True,然后再PrintTrue>c此时True需要转换成-1再比拟,Print-1>1结果是False,所以整个输出结果是False。知识点6:1、交互函数的使用:★InputBox函数:A=InputBox("提示信息","标题信息","默认值或输入框的值")例题:(1)执行以下语句后,将显示输入对话框,此时如果单击“确定〞按钮,那么变量StrInput的内容是C。StrInput=InputBox("请输入字符串","字符串对话框","字符串")A."请输入字符串"B."字符串对话框"C."字符串"D.空字符串★MsgBox函数:MsgBox“提示信息〞,按钮类型值+图标类型值+默认焦点值,“标题信息〞A=MsgBox“提示信息〞,按钮类型值+图标类型值+默认焦点值,“标题信息〞;A的值根据单击什么按钮有关,A的值在[1,7]之间取值。比方:单击“确定〞按钮,A=1。例题:以上图形所表示的函数表达式为:MsgBox"请输入查询的学生学号:",3+32+256,"学生根本信息查询"知识点7:1、选择结构语句(If条件语句):★单分支条件语句:格式:①If条件Then语句块EndIf(称If块语句)②If条件Then只有一条语句(称If条语句)★双分支条件语句:格式:If条件Then语句块1Else语句块2EndIf★多分支条件语句If条件1Then语句块1ElseIf条件2Then语句块2。。。。。。Else语句块nEndIf其中,条件可以是:关系表达式(a>5)、逻辑表达式(a>5Andc>4)、变量(i)或常数(0)。例题:(1)以下程序段的执行结果为AX=5Y=-20IfNotx>0Thenx=y-3ElseY=x+3EndIfPrintx-y;y-xA.-33B.5-8C.3-3D.25-25以上题中的“条件〞主要是逻辑表达式。(2)以下程序段的执行结果为BX=2Y=1Ifx*y<1Theny=y-1Elsey=-1Printy-x>0A.TrueB.FalseC.-1D.1以上题中的“条件〞主要是关系表达式。(3)以下程序段的执行结果为CDimxAsIntegerIfxThenPrintxElsePrintx-1A.1B.0C.-1D.不确定以上题中的“条件〞主要是变量。2、选择结构语句(SelectCase语句):SelectCase测试表达式Case表达式列表1语句块1Case表达式列表2语句块2。。。。。。CaseElse语句块nEndSelect注意:测试表达式的类型只能是数值型数据或字符型数据,表达式列表的值只要第一个符合测试表达式值的要求,就结束SelectCase语句;表达式列表可以是三种结构或三种混合结构:①、1To10②、1,3,5,6,7,8③、Is>10④、1,2,5,7,Is>10例题:(1)在窗体上画一个名称为Command1的命令按钮和两个名称分别为Text1和Text2的文本框,然后编写如下事件过程:PrivateSubCommand1_Click()n=Text1.TextSelectCasenCase1T10X=10Case2,4,6X=20CaseIs<10X=30Case10X=40EndSelectText2.Text=xEndSub程序运行后,如果在文本框Text1中输入10,然后单击命令按钮,那么在Text2中显示的内容是AA.10B.20C.30D.403、选择结构语句(IIF函数):变量=IIF(条件,参数1,参数2)其中,条件可以是:关系表达式(a>5)、逻辑表达式(a>5Andc>4)、变量(i)或常数(0)。执行过程:条件成立,变量的值就是“参数1〞,否那么变量的值就是“参数2〞。例题:(1)设a=6,那么执行语句:x=IIF(a>5,-1,0)后,x的值为DA.5B.6C.0D.-1知识点8:1、循环结构①For循环变量=初值To终值Step步长循环体If条件Then语句ExitForEndIfNext循环变量注意:循环如果正常退出时(没有执行ExitFor语句),那么循环变量必须要大于终值或等于终值+步长。DoDo循环体LoopWhile条件②DoWhile条件循环体LoopDo循环体Do循环体LoopUntil条件DoUntil条件循环体Loop注意:左边上下两种循环是先判断条件后执行循环体,右边上下两种循环是不管条件成立与否都至少执行一次;While循环是条件成立执行循环体,Until循环是条件不成立执行循环体。XyzstuXyzstu111122331121123231123233(1)以下程序段的执行结果为Bs=0:t=0:u=0Forx=1To3Fory=1ToxForz=yTo3s=s+1Nextzt=t+1Nextyu=u+1NextxPrints;t;uA.3614B.1463C.1436D.1643分析:A组语句和B语句都在X循环内,并且是并列的,所以可以先计算B组语句,A组语句暂时不算,这样很容易求出u=u+1语句循环了三次,那么u=3;C组语句和D语句都在Y循环内,并且是并列的,所以可以先计算D组语句,C组语句暂时不算,这样也比拟容易求出t=t+1语句循环了六次,那么t=6;然后再结合答案很快就能得出答案是选B。知识点9:1、数组:①数组的概念★等级考试主要考一维数组、二维数组和三维数组(三维的只需知道数组中可以存储多少数据即可)。数组的格式:a(2,3To7,-1To2),那它的存储空间大小计算:每一维用上界-下界+1计算,例如(2-0+1)*(7-3+1)*(2-(-1)+1)=3*5*4=60。★数组的下标下界是根据语句OptionBasen来决定:当n=0时,数组下标下界是从0开始;当n=1时,数组下标下界是从1开始。★数组分为:固定大小数组:Dima(10)AsInteger动态大小数组:Dima()AsIntegerRedima(10)★Array函数用法:为一个变体型变量创立一个数组。DimaasVarianta=Array(1,2,3,4,5)因此:a(0)=1a(1)=2a(2)=3a(3)=4a(4)=5★注意:如果数组被定义为以下三种类型,(1)数值型(2)字符型(3)逻辑型,那么它们初始化的数组元素数值分别为:0、空字符串和False。例题:(1)在窗体上画一个命令按钮(其Name属性为Command1),然后编写如下代码:PrivateSubCommand1_Click()Dima(4,4)AsIntegerFori=1To4Forj=1To4a(i,j)=(i-1)*3+jNextjNextiFori=3To4Forj=3To4Printa(j,i)NextjPrintNextiEndSub程序运行后,单击命令按钮,其输出结果为D。A.69B.710C.811D.9127108119121013分析:对循环和数组结合的问题,往往要先看B组语句输出结果是什么,然后根据B组语句输出结果代入到A组语句中求结果。a(3,3)a(4,3)a(3,4)a(4,4)a(3,3)a(4,3)a(3,4)a(4,4)91210139121013知识点10:1、过程与函数:★过程与函数的参数类型有:实参和形参;传递方式有:值传递和地址传递。★以下程序中,x,y为实参;a,b为形参注意:实参要与形参的类型、个数要相同。★在形参a,b之前如果加上关键字ByVal,那么就是按值传递;如果加上关键字ByRef或不加关键字,那么就是按地址传递。★过程调用方式有两种:CallSwap(x,y)或Swapx,y(Swap是过程名)注意:只有地址传递方式才能实现交换功能,值传递方式x,y的值不变。当有事件过程和通用过程一起运行时,先执行事件过程(Command_Click)。例题:(1)假定有如下的Sub过程:SubS(xAsSingle,ByValyasSingle)t=xx=t/yy=tModyEndSub在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:PrivateSubCommand1_Click()DimaAsSingle,bAsSinglea=5:b=4Sa,bPrinta,bEndSub程序运行后,单击命令按钮,输出结果为_____C_____。A.54B.11C.1.254D.1.251程序分析:首先形参x是地址传递方式,当a传递给x时,因此a与x拥有一个共同存储空间,图形表示:;形参y是值传递方式,当b传递给y时,因此b与y是两个不同存储空间,图形表示:;那么在过程S中:运算x=t/y后,x=1.25,图形表示;因此a的值就是1.25;运算y=tMody后,y=1,图形表示:,因为此时b和y存储空间不同,那么不影响b的值,那么还是4,因此Printa,b的结果就是选择C答案。知识点11:1、菜单和鼠标事件★菜单编辑器的使用:注意:菜单中的标题可以为空,但不管是第几级菜单名称必须唯一,且不能为空。★鼠标事件(按下鼠标键事件过程)主要事件有:Form_MouseDown、Form_MouseUp和Form_MouseMove。现在以某个为例说明:PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)…EndSub上述事件过程不仅使用在窗体上(Form_MouseDown),还可以使用于大多数控件上,包括命令按钮(Command1_MouseDown)或文本框(Text1_MouseDown)等。以上鼠标事件过程的参数,含义如下:(1)Button有值1、2和4,分别表示按下左键、右键和中建;(2)Shift表示Shift、Ctrl和Alt键的状态,其值分别是1、2和4;(3)X,Y表示鼠标光标的坐标位置★弹出式菜单(菜单和鼠标事件的结合使用)PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,_YAsSingle)IfButton=1Then‘按下鼠标左键PopUpmenuFile‘通过PopUpmenu方法弹出菜单EndIf‘File是一级菜单的名称EndSub运行效果:2、公共对话框(又称通用对话框)★通用对话框是我们考试中唯一一个控件箱中没有的控件,需要我们自己添加的,添加的方法是在“工程〞菜单的“部件〞项中选择“MicrosoftCommonDialogControl6.0〞后,才会在控件箱中出现通用对话框图标。★通用对话框图形根据以上图形,相应的程序代码如下:注意:CommonDialog.FilterIndex=索引(索引是从1开始)知识点12:1、文件文件包括三种:顺序文件、随机文件和二进制文件顺序访问:文件中数据是以ASCII码存储的。随机访问:文件长度记录是固定不变的,数据类型可以不同,数据以二进制方式存储在文件中,可以任意时候,任意地方访问。二进制访问:必须知道数据是如何写入文件的。★如果源文件是字符类型,那么读写文件如下所示:a.读文件的格式:OpenApp.Path&"\文件名(In.txt)"ForInputAs#文件号(#1)DowhileNotEOF(文件号)Input#文件号,变量…LoopClose#文件号或:OpenApp.Path&"\文件名(In.txt)"ForInputAs#文件号(#1)DowhileNotEOF(文件号)LineInput#文件号,变量…LoopClose#文件号b.写文件格式:OpenApp.Path&"\文件名(Out.txt)"ForOutput/AppendAs#文件号(#1)Print#文件号,变量Close#文件号注意:当写文件以Output方式时,原来的文件内容将被覆盖;当写文件以Append方式时,新的文件内容将被添加到文件尾部;★如果源文件是数值类型,那么读写文件如下所示:a.读文件格式:一维数组:Dima(10)AsIntegerOpenApp.Path&"\文件名(In.txt)"ForInputAs#文件号(#1)Fori=1To10Input#文件号,a(i)…NextiClose#文件号二维数组:Dima(10,5)AsIntegerOpenApp.Path&"\文件名(In.txt)"ForInputAs#文件号(#1)Fori=1To10Forj=1To5Input#文件号,a(i,j)…NextjNextiClose#文件号b.写文件格式:一维数组:OpenApp.Path&"\文件名(Out.txt)"ForOutput/AppendAs#文件号(#1)Fori=1To10Print#文件号,a(i)NextiClose#文件号二维数组:OpenApp.Path&"\文件名(Out.txt)"ForOutput/AppendAs#文件号(#1)Fori=1To10Forj=1To5Print#文件号,a(i,j)NextjNextiClose#文件号例题:(1)在考生文件夹下有文件in5.txt,文件中有字符串"0&1%$s#2&3!45u6ydf7ff@8|{9er"。请在Forml的窗体上画一个文本框,名称为Text1,能显示多行;再画一个命令按钮,名称为Cl,标题为“存盘〞。编写适当的事件过程,使得在加载窗体时,把in5.txt文件的内容中数字字符显示在文本框里。然后单击“存盘〞按钮,把文本框中的内容存到文件out5.txt中。如下图:根据题目要求,所编写程序如下:(2)在考生文件下有文件in.txt,文件有10个数据:123521362821400300710990120500.请在Forml的窗体上画一个文本框,名称为Text1,能显示多行;再画一个命令按钮,名称为Cl,标题为“存盘〞。编写适当的事件过程,使得在加载窗体时,把in5.txt文件的内容显示在文本框里,然后统计10个数的最大数、最小数和它们的和,并把最大数、最小数和它们的和写到“out.txt〞文件中。如下图:根据题目要求,所编写程序如下:

VisualBasic程序设计根底知识要点(程序设计篇)全国计算机等级考试中常用的程序编程局部:九大问题具体例子分析:一、求最大数、最小数、求和以及求平均数例题:随机产生10个两位整数,并存入数据a中,然后分别求10个元素中的最大数、最小数、求10个元素之和以及它们的平均数。PrivateSubCommand1_Click()Dima(10)AsInteger,iAsInteger,MaxAsInteger,MinAsIntegerDimSumasInteger,AvgAsSingleSum=0Fori=1To10a(i)=Int(Rnd*90)+10’产生10—99之间的随机整数NextiMax=a(1):Min=a(1)’假设最大数和最小数Fori=1To10IfMax<a(i)Then’求最大数Max=a(i)EndIfIfMin>a(i)Then’求最小数Min=a(i)EndifSum=Sum+a(i)’求和NextiAvg=Sum/10’求平均数Print“最大数:〞;Max;“最小数:〞;Min;“和:〞;Sum;“平均数:〞;AvgEndSub二、求阶乘例题:求10!.PrivateSubCommand1_Click()DimSumAsLong,iAsIntegerSum=1Fori=1To10Sum=Sum*iNextiPrint“10!=〞;SumEndSub三、求最大公约数例题:求M和N两个数的最大公约数。PrivateSubCommand1_Click()DimMAsInteger,NAsInteger,RAsIntegerM=36:N=24DoR=MModNM=NN=RLoopWhileR<>0’或LoopUntilR=0Print"M和N的最大公约数为:";MEndSub四、求素数例题:求100—200之间的所有素数,并按每行5个元素格式输入所有素数。PrivateSubCommand1_Click()DimnAsInteger,iAsIntegerjAsIntegerForn=100To200Fori=2Ton-1’n-1可以是n/2,也可以是Sqr(n)形式IfnModi=0ThenExitForNextiIfi>n-1Thenj=j+1’统计素数个数Printn;IfjMod5=0ThenPrint’输出5个数换行EndIfNextnEndSub判断素数的函数过程:FunctionPrime(xAsInteger)AsBooleanDimIAsIntegerForI=2ToSqr(x)IfxModI=0ThenPrime=FalseEndIfNextIPrime=TrueEndFunction五、求水仙花数(拆数法)例题:求100—999之间的所有水仙花数,并将所有水仙花数在文本框中显示。所谓水仙花数:即153=1^3+5^3+3^3条件成立。方法1:(数值型:使用运算符Mod和\)PrivateSubCommand1_Click()DimiAsInteger,aAsInteger,bAsInteger,cAsIntegerFori=100To999a=i\100’取百位数b=i\10Mod10’取十位数c=iMod10’取个位数Ifi=a^3+b^3+c^3ThenText1.Text=Text1.Text&i&Space(2)EndIfNextiEndSub方法2:(字符型:使用函数Mid、Val和CStr)PrivateSubCommand1_Click()DimiAsInteger,aAsInteger,bAsInteger,cAsIntegerFori=100To999a=Val(Mid(CStr(i),1,1))’取百位数b=Val(Mid(CStr(i),2,1))’取十位数c=Val(Mid(CStr(i),3,1))’取个位数Ifi=a^3+b^3+c^3ThenText1.Text=Text1.Text&i&Space(2)EndIfNextiEndSub六、排序问题例题:随机产生10个两位整数,并存入数据a中,然后将这10个元素从小到大排序(或从大到小),并将排序号的数组显示在文本框中。方法1:选择排序PrivateSubCommand1_Click()Dima(10)AsInteger,iAsInteger,jAsInteger,tempAsIntegerFori=1To10a(i)=Int(Rnd*90)+10’产生10—99之间的随机整数NextiFori=1To9’比拟n-1轮Forj=i+1To10’每一轮比拟几次Ifa(i)>a(j)Then’从大到小:a(i)<a(j)temp=a(i)a(i)=a(j)a(j)=tempEndIfNextjNextiFori=1To10Text1.Text=Text1.Text&a(i)&space(2)NextiEndSub方法2:直接插入排序PrivateSubCommand1_Click()Dima(10)AsInteger,iAsInteger,jAsInteger,tempAsIntegerDimPointerAsIntegerFori=1To10a(i)=Int(Rnd*90)+10’产生10—99之间的随机整数NextiFori=1To9’比拟n-1轮Pointer=iForj=i+1To10’每一轮比拟几次Ifa(Pointer)>a(j)ThenPointer=jNextjIfi<>PointerThentemp=a(i)a(i)=a(Pointer)a(Pointer)=tempEndIfNextiFori=1To10Text1.Text=Text1.Text&a(i)&space(2)NextiEndSub方法3:冒泡排序PrivateSubCommand1_Click()Dima(10)AsInteger,iAsInteger,jAsInteger,tempAsIntegerFori=1To10a(i)=Int(Rnd*90)+10’产生10—99之间的随机整数NextiFori=1To9’比拟n-1轮Forj=1To10-i’每一轮比拟几次Ifa(j)>a(j+1)Then’从大到小:a(i)<a(j)temp=a(j)a(j)=a(j+1)a(j+1)=tempEndIfNextjNextiFori=1To10Text1.Text=Text1.Text&a(i)&space(2)NextiEndSub七、字符操作1、字符串取反例题:在文本框中输入一个字符串,比方:ABCDEFGH,然后反向输出,结果为:HGFEDCBA。PrivateSubCommand1_Click()DimsAsString,nAsInteger,iAsIntegern=Len(Text1.Text)Fori=nTo1Step-1'Fori=1Tons=s+Mid(Text1.Text,i,1)'s=Mid(Text1.Text,i,1)+sNextiPrintsEndSub2、判断字符串中的某个字符是否为字母例题:在文本框中输入一个字符串,比方:A$4Ch&*Fiy%41H,输出字符串中的所有字母,结果为:AChFiyH。PrivateSubCommand1_Click()DimsAsString,nAsInteger,iAsInteger,cAsStringn=Len(Text1.Text)Fori=1Tonc=Mid(Text1.Text,i,1)Ifc>="A"Andc<="Z"Orc>="a"Andc<="z"Thens=s+cEndIfNextiPrintsEndSub3、统计每类字符的个数例题:在文本框中输入一个字符串,比方:A$m4Ch&*F13iy%p41H,请分别统计出大写字母、小写字母、数字字符和其他字符的个数。PrivateSubCommand1_Click()DimnAsInteger,iAsInteger,cAsStringDimn1AsInteger,n2AsInteger,n3AsInteger,n4AsIntegern=Len(Text1.Text)Fori=1Tonc=Mid(Text1.Text,i,1)SelectCasecCase"A"To"Z"n1=n1+1Case"a"To"z"n2=n2+1Case"0"To"9"n3=n3+1CaseElsen4=n4+1EndSelectNextiPrint"大写字母个数:";n1;"小写字母个数:";n2;"数字字符个数:";n3;"其他字符个数:";n4EndSub八、矩阵(二维数组)比照图比照图四种矩阵的算法:(图形表示)图①图②图③图④例题:有一个4行4列二维数组,现随机生成16个两位整数,并将它们存入到二维数组中,现根据以上四种图形分别求主对角线、副对角线、外圈数据以及内圈数据之和。第一种矩阵算法:(主对角线)PrivateSubCommand1_Click()Dima(4,4)AsInteger,iAsInteger,jAsIntegerDimsumAsIntegerFori=1To4Forj=1To4a(i,j)=Int(Rnd*90)+10Nextj NextiFori=1To4Forj=1To4Ifi=jThen'行下标和列下标相同sum=sum+a(i,j)EndIfNextj NextiPrint"主对角线数据之和";sumEndSub第二种矩阵算法:(副对角线)PrivateSubCommand1_Click()Dima(4,4)AsInteger,iAsInteger,jAsIntegerDimsumAsIntegerFori=1To4Forj=1To4a(i,j)=Int(Rnd*90)+10Nextj NextiFori=1To4Forj=1To4Ifi+j=5Then'行下标和列下标之和是一个定数sum=sum+a(i,j)EndIfNextj NextiPrint"副对角线数据之和";sumEndSub第三种矩阵算法:(外圈数据)PrivateSubCommand1_Click()Dima(4,4)AsInteger,iAsInteger,jAsIntegerDimsumAsIntegerFori=1To4Forj=1To4a(i,j)=Int(Rnd*90)+10Nextj NextiFori=1To4Forj=1To4Ifi=1Ori=4thensum1=sum1+a(i,j)Elseifj=1Orj=4Thensum1=sum1+a(i,j)EndifNextj NextiPrint"外围数据之和";sumEndSub第四种矩阵算法:(内圈数据)PrivateSubCommand1_Click()Dima(4,4)AsInteger,iAsInteger,jAsIntegerDimsum1AsInteger,sum2AsInteger,sumAsIntegerFori=1To4Forj=1To4a(i,j)=Int(Rnd*90)+10Nextj NextiFori=1To4Forj=1To4Ifi=1Ori=4thensum1=sum1+a(i,j)Elseifj=1Orj=4Thensum1=sum1+a(i,j)Endif'上句为求周边元素和。sum=sum+a(i,j)'数组所有元素之和。Nextj NextiPrint"内围数据之和";sum-sum1EndSub九、文件读写操作1、字符型读写数据见概念分析篇的知识点12有详细说明。2、数值型读写数据见概念分析篇的知识点12有详细说明。3、综合例题:a.通用对话框和读写文件结合使用在考生文件夹下有一个工程文件sjt5.vbp,其窗体上有一个文本框,名称为Textl,可以多行显示;有一个名称为CD1的通用对话框;还有三个命令按钮,名称分别为C1、C2、C3,标题分别“翻开文件〞、“转换〞、“存盘〞,如图2-5所示。命令按钮的功能是:“翻开文件〞——弹出翻开文件对话框,默认翻开文件的类型“文本文件〞。选择考生文件夹下的in5.txt文件后,该文件中的内容显示在Text1中;“转换〞——把Text1中的所有小写英文字母装换成大写;“存盘〞——把Text1中的内容存入考生文件夹下的out5.dat文件中。在窗体中已经给出了局部程序,要求:1)请去掉程序中的注释符,把程序中的?改为正确的内容。但不能修改程序中的其他局部,也不能修改控件的属性。2)编写“转换〞按钮的Click事件过程。最后把修改后的文件按原文件名存盘。注意:不得修改已有的程序和控件的属性,必须对考生文件夹下的in5.txt文件进行转换,并把转换结果通过“存盘〞按钮存入考生文件夹下的out5.dat文件中。图2-5运行界面已有程序代码如下:PrivateSubC1_Click()DimaAsStringCD1.Filter="所有文件|*.*|文本文件|*.txt|Word文件|*.doc"CD1.FilterIndex=2CD1.Action=1'翻开通用对话框,此句也可以为:CD1.ShowOpenOpenCD1.FileNameForInputAs#1'CD1.FileName是文件路径Input#1,aClose#1Text1.Text=aEndSubPrivateSubC3_Click()CD1.FileName="out5.dat"CD1.Action=2'保存通用对话框,此句也可以为:CD1.ShowSaveOpenCD1.FileNameForOutputAs#1Print#1,Text1.TextClose#1EndSub考生需编写的代码:PrivateSubC2_Click()Text1.Text=Ucase(Text1.Text)'小写字母转换成大写字母的过程EndSubb.输入数据、计算与存盘在考生文件夹下有一个工程文件sjt5.vbp,请先装入该工程文件,然后完成以下操作:在名称为Form1的窗体上画三个命令按钮,其名称分别为C1、C2和C3,标题分别为“读入数据〞、“计算〞和“存盘〞(如图16-5)所示。程序运行后,如果单击“读入数据〞按钮,那么调用题目已提供的ReadData1和ReadData2过程读入datain1.txt和datain2.txt文件中的各20个整数,分别放入Arr1和Arr2两个数组中;如果单击“计算〞按钮,那么把两个数组中对应下标的元素除以10并截尾取整后相乘,其结果放入第三个数组中(即:把第一个数组的第n个元素除以10并截尾取整,再把第二个数组的第n个元素除以10并截尾取整,两者相乘后的结果作为第三个数组的第n个元素,这里的n为1、2、3……20),最后计算第三个数组中各元素之和,并把所求得的和在窗体上显示出来;如果单击“存盘〞按钮,那么调用题目中给出的WriteData过程将所求得的和存入考生文件夹的dataout.txt文件中。注意:考生不得修改窗体文件中已经存在的程序,必须把求得的结果用“存盘〞按钮存入考生文件夹下的dataout.txt文件中。最后把修改后的文件以原来的文件名存盘。图16-5运行界面已有程序代码如下:OptionBase1DimArr1(20)AsIntegerDimArr2(20)AsIntegerSubReadData1()OpenApp.Path&"\"&"datain1.txt"ForInputAs#1Fori=1To20Input#1,Arr1(i)NextiClose#1EndSubSubReadData2()OpenApp.Path&"\"&"datain2.txt"ForInputAs#1Fori=1To20Input#1,Arr2(i)NextiClose#1EndSubSubWriteData(FilenameAsString,NumAsInteger)OpenApp.Path&"\"&FilenameForOutputAs#1Print#1,NumClose#1EndSub考生需编写的程序代码:DimsumAsIntegerPrivateSubC1_Click()ReadData1ReadData2EndSubPrivateSubC2_Click()DimiAsInteger,Arr3(20)AsIntegerFori=1To20Arr3(i)=Int(Arr1(i)/10)*Int(Arr2(i)/10)sum=sum+Arr3(i)NextiPrintsumEndSubPrivateSubC3_Click()WriteData"dataout.txt",sumEndSub注意:此题中的sum为模块级变量。c.英文字母出现次数统计在考生文件夹下有一个工程文件sjt5.vbp,窗体上有二个标题分别为“读数据〞和“统计〞的命令按钮和初始值为空、名称分别为Text1和Text2的二个文本框,如图12-5所示。程序功能如下:1)单击“读数据〞按钮,那么将考生文件夹下in5.dat文件的内容(该文件中仅含有字母和空格)显示在Text1文本框中(此过程已给出);2)在Text1文本框中选中内容后,单击“统计〞按钮,那么统计选中文本中出现次数最多的字母(不区分大小写),以大写形式在Text2文本框中显示这些出现次数最多的字母。请将“统计〞按钮Click事件过程中的注释符去掉,把?改为正确的内容,以实现上述程序功能。注意:不得修改窗体文件中已经存在的控件和程序,最后将程序按原文件名存盘。已有程序代码如下:OptionBase1DimxAsString,max_nAsIntegerPrivateSubCommand1_Click()OpenApp.Path&"\in5.dat"ForInputAs#1s=Input(LOF(1),#1)Close#1Text1.Text=sEndSubPrivateSubCommand2_Click()Dima(26)AsIntegersl=Text1.SelLengthst=Text1.SelTextText2=""Ifsl=0ThenMsgBox"请先选择文本"ElseFori=1Toslc=Mid(st,i,1)Ifc<>""Thenn=Asc(UCase(c))-Asc("A")+1'出现某字母的编号a(n)=a(n)+1'出现某字母的次数EndIfNextimax_n=a(1):n=1'先设"A"与"a"字母的次数a(1)为最多Forj=2To26Ifmax_n<a(j)Thenmax_n=a(j)EndIfNextjFori=1To26Ifmax_n=a(i)ThenText2.Text=Text2.Text+""+Chr(Asc("A")+i-1)EndIfNextiEndIfEndSub注:本例中n=Asc(UCase(c))-Asc("A")+1是用来计算所取字母的编号,"A"与"a"均为1;"B"与"b"均为2;"C"与"c"均为3;其余类推。2023年3月全国计算机等级考试二级笔试试卷VisualBasic语言程序设计一、选择题(1)以下表达中正确的选项是

A)栈是“先进先出〞的线性表

B)队列是“先进先出〞的线性表

C)循环队列是非线性结构

D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构

(2)支持子程序调用的数据结构是

A)栈B)树C)队列D)二叉树

(3)某二叉树有5个度为2的结点,那么该二叉树中的叶子结点数是

A)10B)8C)6D)4

(4)以下排序方法中,最坏情况下比拟次数最少的是

A)冒泡排序B)简单项选择择排序C)直接插入排序D)堆排序

(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是

A)编译软件B)操作系统C)教务管理系统D)汇编程序

(6)下面表达中错误的选项是

A)软件测试的目的是发现错误并改正错误

B)对被调试的程序进行“错误定位〞是程序调试的必要步骤

C)程序调试通常也称为Debug

D)软件测试应严格执行测试方案,排除测试的随意性

(7)耦合性和内聚性是对模块独立性度量的两个标准。以下表达中正确的选项是

A)提高耦合性降低内聚性有利于提高模块的独立性

B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度

D)内聚性是指模块间互相连接的紧密程度

(8)数据库应用系统中的核心问题是

A)数据库设计B)数据库系统设计

C)数据库维护D)数据库管理员培训

(9)有两个关系R,S如下:

RSABCa32b01c21ABa3b0c2由关系R通过运算得到关系S,那么所使用的运算为

A)选择B)投影C)插入D)

温馨提示

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

评论

0/150

提交评论