VB等级考试复习题.pdf
.基本概念 1.工程文件的扩展名是VBP,一个工程可以包含多个窗体,最多可以包含 255 个窗体。2.窗体文件的扩展名是 FRM,一个窗体对应一个窗体文件;窗体的默认名称为 Form1,Form2,若窗体的 Name 属性设置为 Myfrm,则保存的窗体文件名为 Myfrm.frm 3.标准模块文件的扩展名是.bas。一个 Visual Basic 应用程序可以含有多个标准模块文件,但是标准模块文件(.bas)不属于任何一个窗体文件。4.Print 方法在窗体上打印数据,Cls 方法清除窗体上的显示内容。End 结束程序运行。5.VB 采用事件驱动的方式 6.Enabled 设置控件是否可用,是否处于激活状态 7.Visible 设置控件是否可见 8.Name 属性设置对象的名称,在程序运行时不能改变。Name 属性是所有控件都具有的属性。9.Caption 属性设置对象的标题 10.Option Explicit 表明程序中用到的变量都必须预先声明 11.Option Base 1 用来设置数组的下界从 1 开始,默认是从 0 开始 12.程序运行时,最先加载的是 Load 事件,Unload 用来从内存中清除窗体。13.清空文本框采用的方法是:Text1.Text=“”;若要使文本框不接受键盘输入,但能输出信息,应设置Enabled 属性为:Text1.Enabled=False;若要使文本框能输入或显示多行文本,应设置文本框的Multiline 属性为 True;若要使文本框的文本不可编辑,应设置 Locked 属性为 True。14.若要使计时器控件不可用,应设置其 Interval 属性为 0;若要使计时器控件每隔 0.5 秒触发一次计时器事件,应设置:Timer1.Interval=500 15.可以作为启动对象的是 Sub Main 过程或任何窗体 16.命令按钮默认的名称为 Command1等,若命令按钮的 Name 为 C1,则其 Click 事件过程名为C1_Click;17.对于 InputBox 函数,其返回值为字符串。A=InputBox(“第一个”)B=InputBox(“第二个”)Print A+B 运行时,第一个数为 20,第二个数为 50,则输出结果为:2050 若将处的代码改为:A=Val(InputBox(第一个),将处的代码改为:B=Val(InputBox(第二个),再次输入相同的数据,则输出结果为:70。若添加声明 Dim A As Integer,B As Integer,再次输入相同的数据,则输出结果为:70。18.IIf 函数的使用:变量=IIf(条件,True 部分,False 部分)。例如:设 a=5,b=3,则 X=IIf(ab,a,b),则 X 的值为:5 IIf 函数可以转换为 IfThenElse 结构:If ab Then X=a Else X=b 19.对于 Select。Case 语句的使用:Case 2,5,8 正确 Case“a”,“b”正确 Case 10 To 20,50 To 60 正确 Case“a”To“abc”正确 Case 3,5,Is10 正确 Case Is20 正确,但是 Case Is10 And Is20 是错误的 .20.对于列表框 ListBox:ListCount:列表框中的列表项数,ListIndex:某个列表项的索引,从 0 开始,ListIndex 的取值范围:0ListCount-1 AddItem 方法:添加项目到列表框,RemoveItem 每次只删除一个列表项,若要一次清除所有的列表项,应使用 Clear 方法。清空列表框中的所有列表项采用的方法:List1.Clear 21.循环结构:【例 5-13】打印下面图案的源程序,【实验 4-4】输出九九乘法表(包括下三角)22.数组:默认下标从 0 开始,所以若有定义 dim a(5),则数组共有 6 个元素;若有 dim b(2,3),则数组第一个元素为 b(0,0),最后一个元素为 b(2,3),共有 3=12 个元素。可以使用 Option Base 1 语句指定数组下标从 1 开始。引用数组元素,注意下标不能越界。Option Base 1 的作用是指定数组下标从 1 开始。使用数组处理 Fibonacci 数列。1,1,2,3,5,8,13,21,34,55,89,。【习题六13 题】使用数组处理杨辉三角形(P120)。23.过程:编写过程求 n!(习题七编程题第 1 小题,第 4 小题),判别 n 是否为素数(习题七编程题第 2 小题)(1)编程打印 100200 间的所有素数。每行输出 5 个,判断素数用 Function 过程,是素数返回 1,否,返回 0。Private Sub Command1_Click()k=0 For i=100 To 200 f=prime(i).If f=1 Then k=k+1 If k Mod 5=0 Then Print i Else Print i;End If Next i End Sub Private Function prime(n)prime=1 For i=2 To n-1 If n Mod i=0 Then prime=0:Exit For Next i End Function (2)编写 Function 过程计算 n!。Private Function fact(n)fact=1 For i=1 To n fact=fact*i Next i End Function 利用求 n!的过程计算下面的和:计算 Private Sub Command1_Click()s=0:t=0 For i=1 To 19 Step 3 t=t+fact(i)s=s+1/t Next i Print s=;s End Sub 简单的递归过程:(1)利用递归求累加,连乘(如 n!),Private Function fact(n)If n=1 Then fact=1 Else fact=n*fact(n-1)End If End Function .(2)求 Fibonacci 数列【实验书 笔试模拟试题 1 程序填空第 2 小题】。24.文件:顺序文件的打开、读写、关闭。LOF 函数返回被打开文件的大小。EOF 函数判断被打开文件是否到了文件末尾。文件控件(驱动器列表框、目录列表框、文件列表框)的同步操作。常用算法 1.累加连乘:(1)1+2+3+n,其中n用InputBox函数输入。【实验4-1】,以及引申:1*2*3*n(即n!),1+22+32+n2,1111.23n,(2)【实验书 笔试模拟试题 2 程序阅读第 1 题】(3)【例 5-8】计算自然对数 e 的近似值,(4)计算分数序列2 3 5 8 13 21,.1 2 3 5 8 13前 20 项之和。【实验书 笔试模拟试题 5 程序填空第一题】(5)【例 5-3】1!+2!+3!+n!,以及 2!+4!+6!+8!,或 3!+5!+7!+9!2.求最大值和最小值:产生一定范围的随机数,存入数组,找出其最大值及其所在的位置、最小值及其所在的位置 Option Base 1 Private Sub Command1_Click()Dim a(10)As Integer FontSize=18 For i=1 To 10 a(i)=Int(Rnd*100+1)Print a(i);Next i Print Max=a(1):Min=a(1)For i=2 To UBound(a)If Max a(i)Then Min=a(i)Min_j=i End If Next i Print 最大值为:;Max;第&Max_i&个数 Print 最小值为:;Min;第&Min_j&个数 End Sub .3.闰年的算法:【例 4-6】P66 x=Val(InputBox(输入年份)If x Mod 4=0 And x Mod 100 0 Or x Mod 400=0 Then Print x&是闰年 End If 4.最大公约数和最小公倍数(P89)【例 5-18】5.判别 n 是否素数的两种方法:法一:n=Val(InputBox()For i=2 To n-1 If n Mod i=0 Then Exit For Next i If i n-1 Then Print Yes 法二:n=Val(InputBox()flag=True For i=2 To n-1 If n Mod i=0 Then flag=False Exit For End If Next i If flag=True Then Print Yes 6.对存放在数组中的数据进行排序:(比较交换法【例 6-9】、选择法【例 6-10】、冒泡法【例 6-11】)、【实验书:笔试模拟试题 2:程序填空题第 2 题】、【实验书:笔试模拟试题 4:程序填空题第 3 题】、【实验书:笔试模拟试题 6:程序填空题第 2 题】、利用 Rnd 函数产生随机数:产生的 X 范围在 1100(含 1 和 100),X=Int(Rnd*100+1)。一般地,若要产生区间【a,b】(含 a 和 b)的方法是:Int(Rnd*(b-a+1)+a)产生一批随机数存入数组,并在列表框显示 对数组进行排序,排序结果在列表框显示【实验书 笔试模拟试题 2 程序填空第 2 题】将排序结果存入文件 7.查找(顺序、折半)【例 6-13】【例 6-14】8.矩阵转置【习题五编程题第 5 小题】、对称矩阵【实验书 笔试模拟试题 2 程序填空第 4 题】9.进制转换(十进制二进制)【实验书 笔试模拟试题 4 程序填空第 2 题】【习题六编程题第 10 小题】Private Sub Command1_Click()n=Val(Text1.Text)s=Do While n 0 s=(n Mod 2)&s n=n 2 Loop Text2.Text=s End Sub .一些练习题 第一章 VB 概述练习题 1.以下叙述中错误的是_。(A)一个工程可以包括多种类型的文件(B)Visual Basic 应用程序既能以编译方式执行,也能以解释方式执行(C)程序运行后,在内存中只能驻留一个窗体(错误:内存中可以驻留多个窗体,当前窗体只能有一个。)(D)对于事件驱动型应用程序,每次运行时的执行顺序可以不一样 2.Visual Basic 的窗体设计器主要是用来(建立用户界面)3.Visual Basic 是一种结构化高级程序设计语言,它采用的是(事件)驱动方式。4.Visual Basic 程序设计语言属于(面向对象的语言)。5.假定一个 Visual Basic 应用程序由一个窗体模块和一个标准模块构成。为了保存该应用程序,以下正确的操作是。(分别保存窗体模块、标准模块和工程文件)。原因:一个工程中可包含多个文件,当打开一个工程文件时会自动加载工程内所有文件。对程序保存需分别保存工程文件及窗体文件。参考答案为B。第二章 VB 基础练习题 1.可以正确定义 2 个整形变量和 1 个字符串变量的语句的是:Dim x%,y AS Integer,z AS String 2.设有如下语句:Dim a,b As Integer 则:a 被定义为 Integer 类型变量(错误)b 被定义为 Integer 类型变量(正确)3.执行以下程序后输出的是(FG)。Private Sub Command1_Click()Ch$=”AABCDEFGH”Print Mid(Right(ch$,6),Len(left(ch$,4),2)End Sub 4.设 a=4,b=3,c=2,d=l,表达式 a b+1 Or c d And b Mod c 的值是(0)。5.表达式 32*2+3 MOD 104 的值是(19)6.以下能从字符串”VisualBasic”中直接取出子字符串”Basi”的函数是(Mid)。7.变量名 k_name(合法)、k ame(不合法)、name(不合法)、k-name(不合法)8设 s$=“BeijingChina”,则语句 Mid(Text1.Text,8)的执行结果是(China)。9.设 a$=VisualBasic,则语句 Print String(3,a$)在窗体上显示的内容是(VVV)。10.执行语句 s=Len(Mid(VisualBasic,1,6)后,s 的值是(6)。11.设 a$=“abcdef”,则语句 Right(Trim(Text1.Text),3)的执行结果是(def)。12.设 a=2,b=3,c=4,表达式 Not a=c Or 4*a=b2 And ba+c 的值是(False)。13.执行以下程序段后,变量 c$的值为(Quick BASIC Programming)。a$=Visual Basic Programming b$=Quick c$=b$&UCase(Mid$(a$,7,6)&Right$(a$,12)14描述“X 是小于 100 的非负整数”的 Visual Basic 表达式是 x%=0 15a$=LCase(Hello),a$的值是(hello),b$=UCase(Hello),b$的值是(HELLO)。16.代数式|y|+e-3xln3x 的 Visual Basic 表达式为(abs(y)+exp(-3*x)*log(3*x)。.17.改正表达式(1)ts+cos(300)ts+cos(30*3.141593/180)(2)(x+y)(25s)(x+y)(25/s)(3)(X1+X2)*(X1-3)-6*7 (X1+X2)*(X1-3)-6)*7(4)(X-2)+sin(1.2+)(X/(-2)+sin(1.2+3.141593)18、数学公式转化为 VB 表达式(1)sin(a)cos(b)+1.5 sin(a)*(cos(b)+1.5)(2)(X1+4)5(e2-a)(X1+4)5*(exp(2)-a)(3)36(X1+)(X13.3)-B 36*(X1+3.141593)*(X1/3.3)-B)(4)X-2+5.8sin(3.5)X2+5.8*sin(3.5*3.141593)第三章 顺序结构练习题 1.设在名称为 Myform 的窗体上只有 1 个名称为 C1 的命令按钮,则命令按钮的 Click 事件过程名是(C1_Click)2.在 Visual Basic 工程中,可以作为启动对象的程序是(Sub Main 过程或任何窗体)3.新建一个工程将其窗体的 Name 属性设置为 Myfrm,则默认的窗体文件名为(Myfrm.frm)。4.将窗体的(Enabled)属性设置为 False 后,运行时窗体上的按钮、文本框就不会对用户的操作做出响应。5.一个窗体对应一个窗体文件,窗体文件的扩展名为.frm,VB 中的一个工程可以包括多个窗体,最多可以包含 255 个窗体文件。6.当运行程序时,系统自动执行启动窗体的某个事件过程。这个事件过程是(Load)。7.无论何控件,都具有一个共同属性。这个属性是(Name)。8.Print 方法可以在(窗体和图片框)对象上输出数据。9.能在窗体 Form1 的标题栏中显示“VisualBasic 窗体”的语句是:Form1.Caption=VisualBasic窗体 10.语句 a=InputBox(Today,Tomorrow,Yesterday,Day before yesterday,5)将显示一个对话框,在对话框的输入区中显示的信息是(Yesterday)。11.设窗体上有一个文本框,名称为 text1,程序运行后,要求该文本框不能接受键盘输入,但能输出信息,则设置正确的是:text1.Enabled=False 12.在窗体上画一个名称为 Timer1 的计时器控件,要求每隔 0.5 秒发生一次计时器事件,则设置语句是:Timer1.Interval=500 13.将文本框的(Multiline)属性设置为 True 时,文本框可以输入或显示多行文本,且会在输入的内容超出文本框的宽度时自动换行。14.在窗体上画一个文本框,其名称为 Text1。为了在程序运行后 Text1 中的文本不可编辑,应当使用的语句是:Text1.Locked=True 或 Text1.Enabled=False 15编写程序,在文本框中输入英文字符,单击“大写”按钮把英文字符转换为大写,单击“小写”按钮把英文字符转换为小写。Private Sub Command1_Click()Text1.Text=UCase$(Text1.Text)End Sub Private Sub Command2_Click()Text1.Text=LCase$(Text1.Text)End Sub .第四章、第五章(要考)的 goto、ongoto 不要求 第六章 数组 练习题(自定义数据类型不要求)1.九九乘法表 Option Base 1 Dim a(9,9)As Integer Private Sub Form_Click()FontSize=10 Print Print Tab(26);乘法九九表 For i=1 To 9 For j=1 To 9 a(i,j)=i*j Print Tab(6*j);a(i,j);Next j Print Next i 思考:如何打印下三角形状的九九乘法表?5.矩阵转置:Option Base 1 Dim a(3,3)As Integer,b(3,3)As Integer Private Sub Form_Click()FontSize=15 Print 矩阵 a 为:For i=1 To 3 For j=1 To 3 a(i,j)=Int(Rnd*9+1)Print Tab(6*j);a(i,j);Next j Next i Print Print 矩阵 b 为:For i=1 To 3 For j=1 To 3 b(i,j)=a(j,i)Print Tab(6*j);b(i,j);Next j Next i End Sub 9.打印杨辉三角形 Dim a()As Integer Private Sub Form_Click()n=Val(InputBox(输入 n 值:)ReDim a(n,n)As Integer FontSize=10:FontBold=True .For i=1 To n a(i,1)=1 a(i,i)=1 Next i For i=2 To n For j=2 To i a(i,j)=a(i-1,j-1)+a(i-1,j)Next j Next i Print 输出杨辉三角形:For i=1 To n For j=1 To i Print a(i,j);Next j Print Next i End Sub 第七章过程(注意:机电专业不要求)第八章 文件练习题 1、根据数据的存取方式和结构,文件可以分为(顺序文件和随机文件)。2、能判断是否到达文件尾的函数是(EOF )。3、能对顺序文件进行输出操作的语句是(write 和 print )。4、目录列表框的 Path 属性的作用是(返回或设置当前的工作目录 )。5、文件号最大可取的值为(511 )。6、PRINT#1,STR1$中的 PRINT 是(文件的写语句 )。7、要在一个顺序文件的末尾增加数据,则该文件的打开方式应为(append)。8、在 Visual Basic 中,用来返回用 Open 语句打开的文件的大小的函数是(LOF)。9、文件操作的一般步骤是打开(或建立)文件、进行读写操作和(关闭)。10、如果要在文件列表框中只显示后缀为 rar 和 zip 的压缩文件,则应该将文件列表框的某属性设置为*.rar;*.zip,这个属性是(pattern)。11、在窗体上建立一个文本框,其名称为 Text1,在属性窗口中把该文本框的 MultiLine 属性设置为 True,然后编写如下的事件过程:Private Sub Form_Click()Open d:testsmtext1.txt For Input As#1 Do While Not Line Input#1,aspect$whole$=whole$+aspect$+Chr$(13)+Chr$(10)Loop Text1.Text=whole$Close#1 Open d:testdmtext2.txt For Output As#1 Print#1,Close#1 End Sub 上述程序的功能是:把磁盘文件 smtext1.txt 的内容读到内存并在文本框中显示出来,然后把该文本框中的内容存入磁盘文件 smtext2.txt,请填空。:EOF(1):Text1.Text 或 Text1 或 whole 或 whole$.12、以下代码建立文件名为“c:stud1.txt”的顺序文件,内容来自文本框,每按一次回车键写入一条记录,然后清除文本框的内容,直到文本框内输入“END”字符串。(:UCase(Text1.Text)=”END”:Print#1,Text1.Text)Private Sub Form_Load()Openc:stud1.txtFor Output As#1 Text1=End Sub Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii=13 Then If Then Close#1 End Else Text1=End If End If End Sub