1、选考总复习 信息技术 必修3 第一章 算法及VB语言第一章算法及VB语言考试标准考试内容考试要求考试属性1.算法的基本概念及常用表示方法b加试2.面向对象程序设计的基本思想与方法b3.类、对象、属性、方法、事件和事件处理的概念及应用c4.VB应用程序的调试及运行c5.VB基本数据类型、常量、变量与数组c6.VB各类基本运算、表达式与常用的标准函数c7.常用VB语句c8.过程与自定义函数cVB应用程序是按模块化的方式组成的,一个程序模块是程序的一部分,每个模块负责解决整个应用问题的一部分任务。程序模块分为过程和函数两种。即Sub子过程和Function函数。一、引入过程和函数的目的1.依据结构化
2、程序设计的思想,实现模块化的程序设计。当需解决的问题规模较大、复杂时,可以按功能细分成一个一个小的功能模块,这样的小程序段,在VB中被称为过程。2.简化程序中多处重复出现处理相同功能的程序段的设计问题。二、过程和函数的特点是一段能完成一个或多个特定功能的独立的程序段,并可以被其他过程调用,主要特点是功能独立、可被调用。两者的区别在于:Sub子过程只执行程序而不返回值,而Function函数执行程序后会返回值。三、Sub子过程可以将程序划分成一个个较小的逻辑单元,这样每个逻辑单元可以构成一个过程。过程中的代码可以被重复调用,从而避免了不必要的代码的重复编制,减少了编程的工作量。Sub子过程分为事
3、件处理过程和通用事件过程(自定义过程)Sub子过程的格式:Sub过程名(参数表)语句块End Sub1.End Sub标志Sub过程执行结束,程序将返回调用该Sub过程的语句处继续执行。2.子过程的调用在其他过程或函数中,使用Call过程名语句调用该事件过程。3.子过程中可以使用Exit Sub语句中途跳出子过程。(一)事件处理过程1.事件处理过程名必须符合下面的规则:对象名_事件的标准名。VB的一些常用对象上的常见事件的标准名见下表:对象事件处理过程名说明文本框TextText_Click在文本框内单击鼠标Text_DblClick在文本框内双击鼠标Text_KeyPress文本框被激活后,
4、用户在键盘上按下了某个键命令按钮CommandCommand_Click在命令按钮上单击鼠标标签LabelLabel_Click在标签上单击鼠标窗体FormForm_Load窗体装载2.Form_Load事件在程序运行时,系统自动运行。3.其他控件事件处理过程,只有触发了该对象的相应事件,才执行子过程。4.在子过程或函数中,也可以使用Call事件处理过程名来调用事件处理过程。5.子过程调用自身,形成递归。(二)通过过程也称为自定义过程,是一个独立的程序段,不同的事件可能需要使用同一个程序段时,可以把这个程序段单独地建立成一个通用过程,供其他事件处理过程或其他通用过程调用。四、函数函数分为标准函
5、数和自定义函数,如Abs、Mid等称为系统的标准函数。自定义函数是类似于过程的另一种程序模块,不同之处是函数执行完成后,函数的计算结果被送到函数的调用点上,供程序的后继部分继续进行处理。自定义函数格式:Function函数名(参数表) As类型名语句块End Function函数名是为函数指定的名称,参数表是对一函数需要的原始数据类型一一地进行说明,As后的类型名,是说明函数的计算结果,即函数返回值的数据类型。自定义函数的语句块中至少要有一个形如“函数名表达式”的语句,这样,表达式的计算结果才能作为函数的返回值,被VB送到函数的调用点上。函数就是根据一些已知条件(参数),实现一定功能,返回一个
6、值(通过函数名)。1.Function过程以Function语句开头,以End Function结束;中间代码部分为函数体;2.函数中途可以利用Exit Function退出。3.函数名有返回值,其值类型由As数据类型指定;4.函数体内一般都会至少为函数名赋值一次;如果不赋值,函数返回值默认为0或空。【例1】在VB中,某程序代码窗口如下图所示。则下列说法正确的是()A.Form_Load事件是程序运行时,用户单击窗体执行的程序代码B.程序运行时,单击Cmd1,不能调用Command2_Click事件C.该程序代码窗口中,有3个事件处理过程和1个自定义函数D.程序运行时,单击Cmd1,在文本框T
7、ext1中显示数组a中最大的50个数解析Form_Load事件是程序运行时,装载该窗体时执行代码。在Cmd1_Click事件中,语句Call Command2_Click调用该过程。函数是实现大于x的数的个数。答案C变式1在VB中,有如下自定义函数Function Dmax(x As Integer,y As Integer)As IntegerIf xy Then Dmaxx Else DmaxyEnd Function求3个整数a,b,c的最大值,以下不能实现功能的表达式是()A.Dmax(a,Dmax(b,c)B.Dmax(b,Dmax(a,c)C.Dmax(a,b,c)D.Dmax(D
8、max(a,b),Dmax(a,c)解析该自定义函数的参数是两个,3个数的最大值是先找出2个数的最大值再与第3个数比较。答案C变式2下面VB程序的功能为:在文本框Text1和Text2中输入两个整数,单击按钮对象Command1,在标签对象Label1中显示这两个数差的绝对值。Function lsc(x As Integer,y As Integer)As IntegerIf xy ThenlscxyElselscyxEnd IfEnd FunctionPrivate Sub Command1_Click( )Dim a1 As Integer,a2 As Integera1Val(Text
9、1.Text)a2Val(Text2.Text)Label1.Caption_End Sub要实现上述功能,程序画线处应填入的语句为()A.lsc(x,y)B.lsc(Text1.Text,Text2.Text)C.lscD.lsc(a1,a2)解析自定义函数lsc用于求两个整数的差,由于输入的整数为a1、a2,因此画线处应填的语句为lsc(a1,a2),答案为D。答案D变式3某VB应用程序的两个事件过程如下:Private Function out(x As Integer,y As Integer,z As Integer) As IntegerDim temp As IntegerIf
10、xy Then tempy Else tempxIf tempz Then tempzouttempEnd FunctionPrivate Sub Command1_Click( )Dim a As Integer,b As Integer,c As Integera1b2c3Text1.Textout(a,b,c)End Sub程序运行时,单击命令按钮command1后,在文本框Text1中显示的内容是()A.0 B.1 C.2 D.3解析自定义函数out的功能是求三个数中的最小数,1、2、3三个数中的最小数为1,因此答案为B。答案B变式4小明在VB中定义了以下函数,功能是求a和b的最大公约
11、数。Function gcd(a As Integer,b As Integer) As IntegerDo While b0ca Mod babbcLoopEnd Function调试中发现计算结果一直是0。经过仔细观察与分析,发现错误的原因是()A.函数名有错B.变量c没有定义C.函数没有返回值D.b0应该改为b0解析A选项函数名的命名规则同变量名。VB中可以省略一些变量的定义,未定义的变量即为通用类型,即根据赋值变化数据类型,所以B选项局部变量c未定义,不影响程序运行。D选项把循环条件改成b0反而会使Do WhileLoop循环进入死循环。所以正确答案是C。答案C变式5在VB中,设已定义
12、函数过程f,Function f(x As Integer,y As Integer,z As Integer)As Integer代码略End Function若有a,b,c为整型变量,则下列能调用该函数的正确语句是()A.f B.f(ab,bc)C.f(ab,bc,ca) D.fab,bc,ca解析注意函数的格式。答案C【例2】有VB程序,实现如下功能:在文本框Text1中输入一个数字,单击“判断”按钮Command1,在文本框Text2中输出是否是回文数,回文数指正读反读都相同的数。请在画线处填入适当的语句或表达式。Private Sub Command1_Click()Dim s As
13、 String,flag As BooleansText1.Text_If flagTrue Then Text2.Texts“是回文数” Else Text2.Texts“不是回文数”End SubFunction hw(s As String)As BooleanDim i As Integer,n as Integer,s1 as string,s2 as stringhwTrue:nLen(s)For i1 To n2s1Mid(s,i,1)_If s1s2 Then_Exit FunctionEnd IfNext iEnd Function解析自定义函数的功能是:根据参数s的值,如果
14、s是回文数,则返回hw的值为True,否则返回False。从主程序的输入和输出语句来看,变量s是文本框Text1中输入的值,根据条件flagTrue来输出结论,因此flag调用该自定义函数,即判断是否为回文返回的值。在自定义函数内部,循环变量i从1到n/2,每要首尾判断。答案flaghw(s)s2Mid(s,n1i,1)hwFalse【例3】有VB程序,实现如下功能:在文本框Text1中输入一个数字,单击“判断”按钮Command1,在文本框Text2中输出是否是回文素数,回文素数指既是回文数,又是素数。请在画线处填入适当的语句或表达式。Private Sub Command1_Click()
15、Dim s As String,t As Long,flag As BooleansText1.TextflagFalseIf hw(s)ThentVal(s)if _ then flagTrueEnd IfIf flagTrue Then Text2.Texts“是回文素数”Else Text2.Texts“不是回文素数”End SubFunction hw (s As String) As Boolean同【例2】,代码略End FunctionFunction prime (a As Long) As BooleanDim j As LongprimeTruej2Do While _ And j0If x Mod 20 Then s“0” Else s“1”_xx2LoopEnd Function则划线处应填的语句是_。解析十进制数转换为二进制的方法是除2倒取余数,且通过函数名返回函数的值。变量s表示每次相除的余数。答案dTObsdTOb7.下列VB程序用于求2个正整数(均小于10000)的最大公约数:Private Sub Command1_Click()Dim x As IntegerDim y As IntegerDim z As Integerx
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1