1、Visual Basic程序设计教习题一一、选择题1.一个可执行的Visual Basic中应用程序至少要包括一1、(c)。A.标准模块 B.类模块 C.窗体模块 D.辅助模块2.Visual Basic中最基本的对象是(b),它是应用程序的基石。A.标签 B.窗体 C.文本框 D.命令按钮3.在设计阶段,当双击窗体上的某个控件时,所打开的窗1是(c)。A.工程资源管理器窗口 B.工具箱窗口C.代码窗口 D,属性窗口4.以下不属于Visual Basic系统的文件类型的是(b)。A.frm B.bat C.vbg D.vbp5.下列叙述中错误的是(c)oA.打开一个工程文件时,系统自动载入与该
2、工程有关的窗体、标准模块等文件B.保存Visual Basic程序时,应分别保存窗体文件和工程文件C.Visual Basic应用程序只能以解释方式执行D.事件可以由用户引发,也可以山系统引发6.从“文件”菜单中选择“保存工程”命令来结束本次创建应用程序的工作,Visual Basic 6.0将 提示保存(a)文件。A.窗体和工程 B.窗体和代码 C.工程和代码 D.代码和模块7.用户通过(c)模拟屏幕的小图像来布置应用程序界面。A.快捷菜单 B.窗体设计器 C.窗体布局窗口 D.立即窗口8.以下叙述中错误的是(a)。A.在工程资源管理器窗口中只能包含一个工程文件及属于该工程的其他文件B.以.
3、bas为扩展名的文件是标准模块文件C.窗体与代码窗口存在对应关系D.一个工程中可以含有多个标准模块文件9.下列叙述中不正确的是(b)。A.注释语句是非执行语句,仅对程序的有关内容起注释作用,它不被解释和编译B.注释语句可以放在程序代码中的任何位置C.注释语句可以单独写在一行D.向程序代码中加入注释语句的目的是提高程序的可读性二、填空题1.Visual Basic是一种面向 对象 的程序设计语言。2.在代码窗口,如果一条语句太长,无法在一行内写下,要换行书写,可以在行末使用 续 行符,它由一个空格加一个下划线 组成。3.Visual Basic 6.0的3种工作模式分别是 设计、运行 和 中断。
4、4.工程文件的扩展名是vbp,窗体文件的扩展名是f?m o5.Visual Basic窗体设计器的主要功能是 设计应用程序界面。三、问答题1.Visual Basic有哪几种版本?各有什么特点?书.P22.如何启动和退出Visual Basic系统?书.P23.Visual Basic系统集成环境包括哪几个窗口?各有什么功能?书 P3-P54.创建Visual Basic应用程序的步骤是什么?如何操作?书P65.一个工程可能包含哪些类型的文件?书P116.如何设置Visual Basic系统集成环境?书P15习题2一、选择题1.与传统的程序设计语言相比,Visual Basic 6.0最突出的
5、特点是(c)。A.结构化程序设计 B.程序开发环境C.事件驱动编程机制 D.程序调试技术2.以下可以构成语句的一项是(b)oA,对象名.属性名 B.对象名.方法名C.对象名.事件名 D.对象名.函数名3.如果要设置窗体的标题栏,应设置的属性是(c)oA.Name B.Title C.Caption D.Text4.标签所显示的内容,由(c)属性值决定。A.Text B.名称 C.Caption D.Alignment5.文本框的(a)属性用于设置或返回文本框中的文本内容。A.Text B.名称 C.Caption D.Name6.若要使命令按钮不可用,可设置其(d)属性为False来实现。A.
6、Value B.Cancel C.Default D.Enabled二、填空题1.Visual Basic程序的基本结构有 顺序 选择 循环。2.Visual Basic是一种面向对象 的可视化程序设计语言,采取了事件驱动的编程机制。3.要把窗体设置成没有标题条,应将窗体的borderstyle 属性设置为 0。4.设有窗体(名称为MyForm),事件过程如下:Private Sub Form_Click()MyForm.Caption=VB 示例Me.Caption=欢迎使用本系统”Caption=Hello!End Sub则响应该过程的事件名是 Form_Click()。程序运行时,窗体的
7、标题是form,单击窗体后窗体的标题是Hello!o5.程序界面上有一个标签(名为Labell),要使运行时单击标签实现下列功能:标签中心与窗体工作区域中心重合。标签的内容变为“标签被单击”文字。文字的颜色变为红色。请将下列程序补充完整。Private Sub Label l_Click()Label l.left=(form 1.scalewidth-label 1.width)/2Label 1.top=(fbrml.heigth-labell.heigth)/2Label 1.caption=标签被单击“Label 1.fontcolor=vbred三、程序设计题1.设计一个窗体,当在窗
8、体上双击鼠标时,能将窗体最大化,且窗体背景颜色设为蓝色。代码如下:Private Sub Form_DblClick()Forml.WindowState=2Forml.BackColor=vbBlueEnd Sub2.设计一个窗体,其中包含3个标签,如图2.18所示。当用鼠标单击任何一个标签时,其 他两个标签的标题文本互换。代码如下:Private Sub Label 1 Click()Dim t As Stringt=Label2.CaptionLabel2.Caption=Label3.CaptionLabel3.Caption=tEnd SubPrivate Sub Label2_Cl
9、ick()Dim t As Stringt=Label 1.CaptionLabel 1.Caption=Label3.CaptionLabel3.Caption=tEnd SubPrivate Sub Label3_Click()Dim t As Stringt=Label 1.CaptionLabel 1.Caption=Label2.CaptionLabel2.Caption=tEnd Sub3.设计一个窗体,如图2.19所示。当单击某个命令按钮时,对文本框中的文字完成相应的 设置,其中“增大”或“缩小”按钮将使文本框中的文字增大或缩小5磅,“下划线”按钮给文本 框中的文字加下划线,“粗
10、体”按钮将文本框中的文字加粗。当改变文本框的内容时,文本框 的背景将变成黄色。文本框格式控制Visual Basic在其编程系统中采用了 面向对象和事件驱 动的编程机制,提 供了一种所见即所 得的可视化程序设 计方法.-1 XId_xHirblofl/!63qoinPrivate Sub Command l_Click()Textl.Font.Size=Textl.Font.Size+5End SubPrivate Sub Command2_Click()Textl.Font.Size=Textl.Font.Size-5End SubPrivate Sub Command3_Click()If
11、 Text 1.Font.U nderline Then 判断当前状态,然后改变Text 1.Font.Under line=FalseElseText 1.Font.U nderline=TrueEnd IfEnd SubPrivate Sub Command4_Click()IfTextl.Font.BoldThen,判断当前状态,然后改变Textl.Font.Bold=FalseElseTextl.Font.Bold=TrueEnd IfEnd SubPrivate Sub Textl_Change()Text 1.BackColor=vb YellowEnd Sub4.设计一个程序,实
12、现加、减、乘、除运算,当单击“加法”命令按钮时,程序运行界面如 图2.20所示。同样,单击其他命令按钮时,实现其他运算,等式中的运算符号要相应变化。代码如下:Private Sub Command 1 _Click()Text3.Text=Val(Textl.Text)+Val(Text2.Text)End SubPrivate Sub Command2_Click()Text3.Text=Val(Textl.Text)-Val(Text2.Text)Label 1.Caption=End SubPrivate Sub Command3_Click()Text3.Text=Val(Textl.
13、Text)*Val(Text2.Text)Label 1.Caption=End SubPrivate Sub Command4_Click()Text3.Text=Val(Textl.Text)/Val(Text2.Text)Label 1.Caption=+End Sub习题三一、选择题1.Visual Basic的合法直接常量有(c)。A.n B.%100 C.True D.&H12ag2.Visual Basic的合法变量名有(d)。A.123_a B.Integer C.False D.sinx3.骰子是一个正六面体,用16这6个数分别代表这6面,掷一次骰子可能出现的数应表 示为(d
14、)oA.INT(RND(6)+1)C.INT(RND*7)B.INT(RND*6)D.INT(RND*6+1)4.Visual Basic 表达式 3 3*3/3 Mod 3 的值是(b)。A.-1 B.1 C.-3 D.35.下列表达式中,正确的Visual Basic逻辑表达式是(d)。A.xy And yzC.xy And z D.xy And yz6.在窗体上画一个文本框,然后编写如下事件过程:Private Sub Form_Click()x=InputBox(请输入一个整数”)Print x+Textl.TextEnd Sub程序运行时,在文本框中输入456,然后单击窗体,在输入对
15、话框中输入123,单击“确定”按钮后,在窗体上显示的内容是(d)oA.123 B.456 C.579 D.1234567.设a%=20,b$=30,则下列输出结果是2030的语句是(d)。A.Print str(a)B.Print a+b C.Print a+b D.Print a&b8.设a=10,b=5,c=L执行语句Printa=b=c后,窗体上显示的是(b)A.True B.False C.10 D.出错信息9.执行以下程序段后,变量c$的值为(d)。a$=Visual Basic Programing”b$=Quickc$=b$&UCase(Mid$(a$,7,6)&Right$(a
16、$,ll)A.Visual BASIC Programing B.Quick Basic ProgramingC.QUICK Basic Programing D.Quick BASIC Programing10.下列关于可变数据类型的叙述中正确的是(c)。A.可变数据类型是一种没有类型的数据B,给可变数据类型变量赋某一种类型数值后,就不能再赋另一种类型的数值C,一个变量没有定义就赋值,该变量即为可变数据类型D.可变数据类型的空值表示该可变数据类型变量值为0二、填空题1.表达式 123+23 modi 07+Asc(a)的值是 220。2.表示s字符变量是字母(不区分大小写)的逻辑表达式是(s
17、=/and s=A and s0 Then y=x+1 B.y=x+1y=x 1C.If x0If x0 Theny=x+1Elsey=x+1Elsey=x-1y=x-1End IfEnd If2.有如下程序段:xcase=1t=InputBox(“请输入一个数:”)Select Case tCase Is0Y=xcase+1Case Is=OY=xcase+2Case ElseY=xcase+3End SelectPrint xcase;Y若输入一1,输出结果为(a)oA.1 4 B.1 3 C.1 2 D.1 13.下列循环语句执行后,X的值等于(a)oX=5Fori=l To 20 St
18、ep 2X=X+i5Next iX=iA.21 B.22 C.23 D.244.执行以下程序段时,(c)ox=1Do While x0 x=x*xPrint x;LoopA.循环体将执行1次C.循环体将执行无限次B.循环体将执行。次D.系统将提示语法错误5.设窗体中包含一个命令按钮Command 1,一个标签Label 1,并有以下的事件过程。程序 运行后,单击Commandl按钮,标签中显示的内容是(c)。Private Sub Command l_Click()Dim i As Integer,n As Integer i=l:n=0Do While i 6Print num;num=nu
19、m+2.4LoopEnd Sub程序运行后,单击命令按钮,则窗体上显示的内容是(b)oA.1 3.4 5.8 B.1 3 5 C.1 4 7 D.无数据输出8.在窗体上画一个名称为Commandl的命令按钮,然后编写如下事件过程:Private Sub Command l_Click()Dim a As Integer,s As Integer a=8 s=1 Dos=s+a a=a-1 Loop While a=0 Print s;a End Sub程序运行后,单击命令按钮,则窗体上显示的内容是(C)oA.7 9 B.34 0 C.9 7 D.死循环 二、填空题 1.下面程序的功能是偶数、奇
20、数分别累加放入m、n中。Dim n%,m%Private Sub Text 1 Key Press(Key Asci i As Integer)If KeyAscii=13 ThenIf IsNumeric(Textl.Text)Then Select Case Text 1.Text Mod 2 Case 0 n=n+Textl.TextCase 1 m=m+Textl.TextEnd SelectEnd If Textl.Text=Textl.SetFocusEnd IfEnd Sub2.下面的程序是检查输入的算术表达式中圆括号是否配对,并显示相应的结果。本程序在 文本框输入表达式,边输入
21、边统计,以同车作为表达式输入结束。Dim Count 1%Private Sub Text 1 _KeyPress(KeyAscii As Integer)IfChr(KeyAscii)=(Then Count 1=Count 1+1Elself Chr(Key Ascii)=ThenCount 1=Count 1 1End IfIf Key Ascii=13 ThenIf Count 1=0 Then Print 左右括号配对Elself Count 1OThenPrint 左括号多于右括号”;Count 1;个 ElsePrint 右括号多于左括号;-Countl;个 End IfEnd
22、IfEnd Sub3.输入任意长度的字符串,要求将字符顺序倒置,例如“ABCDEFG”变换为“GFEDCBA”。Private Sub Command l_Click()Dim a$,n%,i%,c$a=InputBox(输入字符串”)n=Len(a)For i=1 To Int(n/2)c=Mid(a,i,1)Mid(a,i,l)=mid(a,n+1-1,1)mid(a,n+l-I,l)=cNext iPrint aEnd Sub三、阅读程序,写出程序运行结果 1.Dimx$,n%,a%n=20 Do while n0 a=n mod 2 n=n 2x=Chr(48+a)&xLoopPrin
23、t x 101002.a$=*”:b$=$”For i=1 to 4If i Mod 2=OThenx$=String(Len(a$)+i,b$)Elsex$=String(Len(a$)+i,a$)End IfPrint x$;Next I*$*$3.Fori=l To 9For j=1 To 2*i-lIf i Mod 2=0 Then Print Str$(i);Else Print cStr$(i);Next jPrintNext i结果:12223333344444445555555556666666666677777777777778888888888888889999999999
24、99999994.Dima%,i%,j%a=0For i=1 to 5For j=-2 to 2a=a+i+jNext jPrint a;Next iPrintPrint i,j,a结果:5 15 30 50 756 3 75四、程序设计题1.设计一个窗体,输入一个3位整数,将它反向输出。例如输入123,输出为321。321x(9ir.blog 163xxmPrivate Sub Command l_Click()Dim a$,n%,i%,c$a=InputBox(输入字符串”)n=Len(a)For i=1 To nc=Mid(a,i,1)+cNextFontSize=24Print cEn
25、d Sub2.从键盘输入任意一个实数,用Print方法在窗体上同一行显示其平方和平方根,要求每个 数保留3位小数。Private Sub Command l_Click()Dim a As Single,b As Single,c As Single a=InputBox(请输入一个实数”)b=a*a c=Sqr(a)FontSize=24Print a;的平方为:;Format(b,#.000),Print a;的平方根为:;Format(c,#.000)End Sub3.计算下列分段函数值:y=Private Sub Form_Click()Dim x As Single,y As Sin
26、glex=Val(InputBox(请输入一个数)If x -5 Theny=Sin(x)A 2+Cos(x)Elself x 5 Theny=x/2+(x*x+5)/2*xElself x 10 Theny=(3*x)A(1/3)Elself x=15 Theny=Log(x)Elsey=Sin(x)A 2+Cos(x)End IfFontSize=24Print y=;yEnd Sub4.某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用Price来表示):求所售商品的实际销售价格。Private Sub Form_Click()Dim price As Single,y As S
27、ingleprice=Vhl(InputBox(请输入一个数)Select Case priceCase Is 200y=priceCase Is 500y=price*(1-0.03)Case Is 1000y=price*(1-0.05)Case Is 2500y=price*(1-0.08)Case Is 5000y=price*(1-0.1)Case Elsey=price*(1-0.14)End SelectFontSize=24Print 价格为;price;商品,打折后实际价格为;yEnd Sub5.产生50个1100之间的随机整数,显示所有小于60的数。Private Sub
28、Form_Click()Dim n As Integer,m As Integer,k As IntegerFontSize=24For n=1 To 50Randomizem=Int(100*Rnd+1)产生1-100之间的操作数If m 60 ThenPrint m,k=k+1Ifk Mod 5=0 Then 每行输出5个数 PrintEnd IfEnd If Next End Sub6.由键盘输入一个正整数,找出大于或等于该数的第一个素数。Private Sub Form_Click()Dim n As Integer,m As Integer,i As Integer,k As Boo
29、lean n=Vhl(InputBox(请输入一个正整数)If n=0 ThenMsgBox(输入的不是正整数,请输入一个正整数!)End If m=n Do,判断m是否为素数i=2Do While m Mod i 0 And i 8FontSize=24Print s=;s,n=;nPrint s-l/n=;s-1/n,n-1-n-1PrintPrint s-8=;s-8Print 8-(s-l/n)=;8-(s-1/n)If Abs(s-8)90 Then Exit ForNextEnd Sub对于该事件过程,以下叙述中错误的是(a)oA.a数组中的数据是30个100以内的整数。B.语句F
30、or Each arrltem In a有语法错误。C.IfarrItemMod7=0语句的功能是输出数组中能够被7整除的数。D.If arrltem 90语句的作用是当数组元素的值大于90时退出For循环。二、填空题1.用下面语句定义的数组中,数组元素的个数分别为13、15、90 Dimarr(12)Dim arr(3 To 5,-2 To 2)Option Base 1Dim arr(3,3)2.下列程序用Array函数建立一个含有8个元素的数组,然后查找并输出该数组中元素的 最大值,请补全程序。Option Base 1Private Sub Form_Click()Dim arr(),
31、Max As Integerarr=Array(12,435,76,24,78,54,866,43)Max=arr(l)For i=1 To UBound(arr)If arr(i)Max Then Max=arr(i)Next iPrint最大值是:;MaxEnd Sub3.下列程序的功能是:产生10个个位数不相同的3位随机正整数,并存放其下标与其个位 数相同的数组元素中,例如395应存到a(5)中,请补全程序。Private Sub Form_Click()Dim a(9)As Integer,x As Integer,k As Integer,I As IntegerRandomizeD
32、o While I=9x=Int(Rnd*900+100)k=x mod 10If a(k)=0 Thena(k)=xI=i=i+lEnd IfLoopFor Each y In aPrint yNextEnd Sub4.控件数组的名字由name属性指定,而数组中的每个元素由index属性指定。三、阅读程序,写出程序运行结果1.Private Sub Command 1 _Click()Dim a(l To 10),p(l To 3),k As Integer,i As Integerk=5Fori=1 To 10a(i)=iNext iFor i=1 To 3P(i)=a(i*i)Next
33、iFori=1 To 3k=k+p(i)*2Next iPrint kEnd Sub332.Private Sub Form_Click()Dim a()As Variant,i%,Index As Integer,Key%a=Array(l,3,5,7,9,11,13,15)Key=11For i=LBound(a)To UBound(a)If Key=a(i)Then Index=i:Exit ForEnd IfNext iPrint IndexEnd Sub53.在窗体上添加一个名称为Labell的标签,然后编写如下事件过程:Private Sub Form_Click()Dim arr
34、(10,10)As IntegerDim i As Integer,j As Integer For i=2 To 4For j=2 To 4 arr(i,j)=i*j Next j Next iLabel 1.Caption=Str(arr(2,2)+arr(3,3)End Sub程序运行后,单击窗体,在标签中显示的内容是13 o4.Option Base 1Private Sub Command l_Click()Dim a(3,3)As Integer,i As IntegerDimj As Integer,n As Integer,k As IntegerFor k=1 To 5Ifk
35、 m Then m=n End If n=0Next iFontSize=24Print m=;mEnd Sub以三行三列的矩阵为例说明以上算法Private Sub Command 1 _Click()Dim b(3,3),i As Integer,j As IntegerDim n As Single,m As Single n=0:m=0 For i=1 To 3For j=1 To 3b(i,j)=i+j-3*ib(i,j)=i+jNext jNext iFontSize=24For i=1 To 3For j=1 To 3Print b(i,j),Next jPrintNext iF
36、or i=1 To 3For j=1 To 3 n=n+Abs(b(i,j)Next jIf n m Then m=nEnd If n=0Next iPrint m=;mEnd Sub5.编一程序,随机产生25个10,20范围内的整数,赋值给5x5的二维数组,求出其中最大 元素及它的行、列坐标,并将数组按行(矩阵形式)输出到窗体,最大元素及行、列下标输出 在数组的下方。Private Sub Form_Click()Dim a(5,5)As Integer,i As Integer,j As IntegerDim b As Integer,m As Integer,n As Integer,t
37、 As Integer FontSize=20 For i=1 To 5For j=1 To 5Randomizea(i,j)=lnt(ll*Rnd+10),产生 1020 的随机数Print a(i,j);Ifa(i,j)bThenb=a(i,j)m=i:n=j End If Next j Print PrintNext iPrint 最大元素 a(;m;n;bPrint 行标 i=;mPrint 列标 j=;nEnd Sub6.输入5x5矩阵a,完成下列要求:输出矩阵a。将第2行和第5行元素对调后,输出新的矩阵a。用对角线上的各元素分别去除各元素所在行,输出新的矩阵aoDim a(5,5)
38、As Integer,i As Integer,j As IntegerDimc(5,5),d(5,5)Dim b As Integer,m As Integer,n As Integer,t As Integer Private Sub Command l_Click(Indcx As Integer)If Index=0 ThenFontSize=15Print 原始矩阵For i=1 To 5For j=1 To 5Randomizea(i,j)=Int(90*Rnd+10)产生 10-99 的随机数Print a(i,j);Next jPrintPrintNext iElself In
39、dex=1 ThenPrint”第2行和第5行交换后的矩阵”For i=1 To 5For j=1 To 5If i=2 Thenc(i+3,j)=a(i,j)Elself i=5 Thenc(i-3,j)=a(i,j)Elsec(i,j)=a(i,j)End IfNext jNext iFor i=1 To 5For j=1 To 5Print c(i,j);Next jPrintPrintNext iElsePrint”对角线元素除各行元素所在行后的矩阵”For i=1 To 5For j=1 To 5d(i,j)=a(i,j)a(i,i)Print d(i,j);Next jPrintP
40、rintNext iEnd IfEnd Sub7.找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。没有鞍 点时一,输出“未找到鞍点”。Private Sub Form_Click()Dim a(5,5)As Integer,i As Integer,j As IntegerDim b As Integer,m As Integer,n As Integer,x As Integer,t As Integer,k As IntegerDim y As Integer,z As Integer,w As Integer,p As Integer,h As IntegerCis
41、FontSize=15Dim u(25)As Long产生10-99不重复的随机数For w=1 To 25Randomize1:u(w)=Int(90*Rnd*Rnd+10)For p=1 To w-1If u(p)=u(w)Then GoTo 1产生1099不重复的随机数Next pNext w将不重复的随机数赋值给二维数组For i=1 To 5For j=1 To 5h=h+1a(i,j)=u(h)Print a(i,j);Next jPrintNext iPrintk=0判断鞍点For i=1 To 5b=0For j=1 To 5If a(i,j)b Thenb=a(i,j),找每
42、行的最大值m=i:n=jEnd IfNext jPrint 第;i;行元素的最大值为:a(;m;n;a(m,n);,位于第;n;列下面判断该元素是否为所在列的最小值y=0 x=0t=0For y=1 To 5If y=1 Then x=a(y,n):t=y,将每n列的第一行元素赋值给x,随后其他行的元素与之对比If a(y,n)x Then x=a(y,n),找每列的最小值 t=y 将找到的最小值行标赋值给tEnd IfNext yPrint 第;n;列元素的最小值为:a(;t;n;x;,位于第;t;行If m=t Thenk=k+1Print”此数组有鞍点”;kPrint”鞍点处的元素 a(
43、;m;n;bPrint 行标 i=;mPrint 列标 j=;n PrintElsePrint 非鞍点 PrintEnd Ifm=(T清零后记录下一行的信息 n=0情零后记录下一行的信息 Next iIf k=0 ThenPrint 此数组无鞍点”ElsePrint 此数组有;k;个鞍点End IfPrintEnd Sub8.按如图5.8所示输出杨辉三角形。图 5.8 杨 辉 二 角 形Private Sub Form_Click()Dim a(10,10)As Integer For i=1 To 10 a(i,i)=1 a(i,1)=1Next iFor i=3 To 10For j=2
44、To i-1a(i,j)=a(i-1,j-l)+a(i-l,j)Next jNext iFor i=1 To 10Print Space(20-i)*2);For j=1 To iIf a(i,j)=10 And a(i,j)100 Then Print Space(l)&a(i,j)&Space(O);Next jPrintNext iEnd Sub习题6一、选择题1.下列叙述中正确的是(C)oA.在窗体的Form_Load事件过程中定义的变量是全局变量B.局部变量的作用域可以超出所定义的过程C.在某个Sub过程中定义的局部变量可以与其他事件过程中定义的局部变量同名,但其作 用域只限于该过程
45、D.在调用过程时,所有局部变量被系统初始化为。或空字符串2.以下关于变量作用域的叙述中,正确的是(d)oA.窗体中凡被声明为Private的变量只能在某个指定的过程中使用B.全局变量必须在标准模块中声明C.模块级变量只能用Private关键字声明D.Static类型变量的作用域是它所在的窗体或模块文件3.以下关于函数过程的叙述中,正确的是(a)oA.函数过程形参的类型与函数返回值的类型没有关系B.在函数过程中,过程的返回值可以有多个C.当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递D.如果不指明函数过程参数的类型,则该参数没有数据类型4.以下叙述中错误的是(b)0A.如果过
46、程被定义为Static类型,则该过程中的局部变量都是Static类型B.Sub过程中不能嵌套定义Sub过程C.Sub过程中可以嵌套调用Sub过程D.事件过程可以像通用过程一样由用户定义过程名5.以下叙述中错误的是(b/d)。A.一个工程中可以包含多个窗体文件B,在一个窗体文件中用Private定义的通用过程能被其他窗体调用C.在设计Visual Basic程序时,窗体、标准模块、类模块等需要分别保存为不同类型的磁 盘文件D.全局变量必须在标准模块中定义二、填空题1.本程序的功能是计算给定正整数序列中的奇数和y和偶数和x,最后输出x平方根与y 平方根的乘积,在画线处填上适当内容使程序完整。Pri
47、vate Sub Command 1 _Click()a=Array(3,8,6,11,64,13,24,9,42,35,22)y=fl(a)Print yEnd SubPrivate Function fl(B)x=0 y=0For k=0 To 10If B(k)mod 2=0 Thenx=x+B(k)Elsey=y+B(k)End IfNext k fl=Sqr(x)*Sqr(y)End Function2.本程序的功能是计算给定正整数的阶乘,在画线处填上适当内容使程序完整。Private Sub Command l_Click()Dim n As Integern=InputBox(请
48、输入一个正整数:”)Print Fac(n)End SubPrivate Function Fac(m)As LongFac=1For k=2 to n Fac=fac*k Next k End Function3.下列程序运行时要输出如下结果:1 11 12 21 22 2331 32 33 34在画线处填上适当内容使程序完整。Private Sub Command 1 _Click()Call PrintPic()End SubPrivate Sub PrintPic()For j=1 To 4For k=1 to j a=(j-l)*10+k Print Tab(k 1)*5+1);a;
49、Next kPrintNext j End Sub4.Visual Basic应用程序中标准模块文件的扩展名是bas。5.在通用过程中,要定义某一形参为可选参数,在形参前要加的关键字是optional;要定 义某一形参为可变参数,在形参前要加的关键字是Varianto6.在通用过程中,定义动态局部变量使用的关键字是dim,定义静态局部变量使用的关键 字是static。在Form2中给Form 1中定义的全局变量x赋值12,语句为 forml.x=12;在 For m2中给标准模块中定义的全局变量赋值12,语句为x=12。在For m2中调用Form 1中 定义的无参数全局Sub过程MySubl
50、。,调用的语句为call fbrml.mysubl();在Form2中调 用标准模块中定义的无参数全局Sub过 程MySub2(),调用的语句为call mysub2()。三、阅读程序,写出程序的运行结果1.下列程序运行后从键盘输入的数是20,写出程序的运行结果。Private Function countl(title)Iftitle a(j)Thent=a(i)a(i)=a(j)a(j)=tEnd IfNext jNext iEnd IfIfk=OThenFor i=1 To nFor j=i+1 To nIf a(i)a(j)Thent=a(i)a(i)=a(j)a(j)=tEnd If