一、单项选择题
1、与传统的程序设计语言相比,Visual Basic最突出的特点是(C)。
A、结构化程序设计 B、程序开发环境
C、事件驱动编程机制 D、程序调试技术
2、赋值语句:a=123& MID("123456",3,2)执行后,a变量中的值是(C)。
A、"12334" B、123 C、12334 D、157
3、保存一个工程至少应保存两个文件,这两个文件分别是(B)。
A、文本文件和工程文件 B、窗体文件和工程文件
C、窗体文件和标准模块文件 D、类模块文件和工程文件
4、以下能在窗体Form1的标题栏中显示"VisualBasic窗体"的语句是(C)。
A、Form1.Name="VisualBasic窗体"
B、Form1.Title="VisualBasic窗体"
C、Form1.Caption="VisualBasic窗体"
D、Form1.Text="VisualBasic窗体"
5、为了装入一个VisualBasic应用程序,应当(D)
A、只装入窗体文件(.frm)
B、只装入工程文件(.vbp)
C、分别装入工程文件和标准模块文件(.bas)
D、分别装入工程文件、窗体文件和标准模块文件
6、赋给一个数组的数据类型一定要(A)。
A、相同 B、不相同 C、两可 D、都不对
7、下面正确的赋值语句是(C)。
A、x+y=30 B、y=π*r*r C、y=x+30 D、3y=x
8、VisualBasic 6.0集成环境的主窗口中不包括(C)。
A、标题栏 B、菜单栏 C、状态栏 D、工具栏
9、以下叙述中错误的是(C)。
A、Visual Basic 是事件驱动型可视化编程工具
B、Visual Basic应用程序不具有明显的开始和结束语句
C、Visual Basic工具箱中的所有控件都具有宽度(Width)和高度(Height)属性(计时器)
D、Visual Basic中控件的某些属性只能在运行时设置
10、要使Print方法在Form_Load事件中起作用,要对窗体的(C)属性进行设置。
A、Backcolor B、ForeColor
C、AutoRedraw D、BackStyle
11、若要使命令按钮不可操作,要对(A)属性进行设制。
A、Enabled B、Visible
C、BackColor D、Caption
12、以下叙述中错误的是(B)。
A、一个工程中可以包含多个窗体文件
B、在一个窗体文件中用Private定义的通用过程能被其他窗体调用
C、在设计VB程序时,窗体、标准模块、类模块等需要分别保存为不同类型的磁盘文件。
D、一个工程默认的启动对象是Form1
13、Cls方法可以清除窗体或图片框中的(C)内容。
A、在设计阶段使用Picture设置的背景位图
B、在设计阶段放置的控件
C、在运行阶段产生的图形和文字
D、以上均可
14、设x=3,y=5,则以下表达式值为真的是 (C)
A、(-3+5>x) And (y>0) B、(x<0) Eqv (y>0)
C、(x>y) Or (y>0) D、x>=y And y>10
15、为了防止用户随意将光标置于控件之上,应将进行(D)设置。
A、将控件的TabIndex属性设置为0
B、将控件的TabStop属性设置为True
C、将控件的TabStop属性设置为False
D、将控件的Enabled属性设置为False
16、要判断在文本框是否按了Enter键,应在文本框的(D)事件中判断。
A、Change B、KeyDown C、Click D、KeyPress
17、以下关于焦点的叙述中,错误的是(A)。
A、如果文本框的TabStop属性为False,则不能接收从键盘上输入的数据
B、当文本框失去焦点时,触发LostFocus事件
C、当文本框的Enabled属性为False时,其Tab顺序不起作用
D、可以用TabIndex属性改变Tab顺序
18、如果文本框的Enabled属性设为False,则(A)。
A、文本框的文本将变成灰色,并且此时用户不能将光标置于文本框上。
B、文本框的文本将变成灰色,用户仍然能将光标置于文本框上,但是不能改变文本框中的内容。
C、文本框的文本将变成灰色,用户仍然能改变文本框中的内容。
D、文本框的文本正常显示,用户能将光标置于文本框上,但是不能改变文本框中的内容。
19、程序运行后,在窗体上单击鼠标,此时窗体不会接收到的事件是(C)。
A、MouseDown B、MouseUp
C、Load D、Click
20、图像框有一个属性,可以自动调整图形的大小,以适应图像框的尺寸,这个属性是(B)。
A、Autosize B、Stretch
C、AutoRedraw D、Appearance
21、为了防止用户随意将光标置于控件之上,应设置的属性是(D)。
A、将控件的TabIndex属性设置为0
B、将控件的TabStop属性设置为True
C、将控件的TabStop属性设置为False
D、将控件的Enabled属性设置为False
22、不论何控件,共同具有的是(B)属性。
A、Text B、Name
C、ForeColor D、Caption
23、以下关于窗体的描述中,错误的是(A)。
A、执行Unload Form1语句后,窗体Form1消失,但仍在内存中
B、窗体的Load事件在加载窗体时发生
C、当窗体的Enabled属性为False时,通过鼠标和键盘对窗体的操作都被禁止
D、窗体的Height、Width属性用于设置窗体的高和宽
24、当运行程序时,系统自动执行窗体的(A)事件过程。
A、Load B、Click
C、Unload D、GotFocus
25、窗体设计器是用来设计(B)。
A、应用程序的代码段 B、应用程序的界面
C、对象的属性 D、对象的事件
26、VisualBasic是一种面向对象的可视化程序设计语言,采取了(A)的编程机制。
A、事件驱动 B、按过程顺序执行
C、从主程序开始执行 D、按模块顺序执行
27、确定一个控件在窗体上的位置的属性是(D)。
A、Width或Height B、Width和Height
C、Top或Left D、Top和 Left
28、如果要改变窗体的标题,则需要设置的属性是(A)。
A、Caption B、Name
C、BackColor D、BorderStyle
29、以下叙述中错误的是(C)。
A、打开一个工程文件时,系统自动装入与该工程有关的窗体、标准模块等文件
B、保存Visual Basic程序时,应分别保存窗体文件及工程文件
C、Visual Basic应用程序只能以解释方式执行
D、事件可以由用户引发,也可以由系统引发
30、以下叙述中错误的是(B)。
A、双击鼠标可以触发DblClick事件
B、窗体或控件的事件的名称可以由编程人员确定
C、移动鼠标时,会触发MouseMove事件
D、控件的名称可以由编程人员设定
31、在VisualBasic中最基本的对象是(C)。它是应用程序的基石,是其他控件的容器。
A、文本框 B、命令按钮
C、窗体 D、标签
32、以下叙述中正确的是(A)。
A、窗体的Name属性指定窗体的名称,用来标识一个窗体
B、窗体的Name属性的值是显示在窗体标题栏中的文本
C、可以在运行期间改变对象的Name属性的值
D、对象的Name属性值可以为空
33、在设计阶段,当双击窗体上的某个控件时,所打开的窗口是(C)。
A、工程资源管理器窗口 B、工具箱窗口
C、代码窗口 D、属性窗口
34、VisualBasic是一种面向对象的可视化程序设计语言,采取了的编程机制是(A)。
A、事件驱动 B、按过程顺序执行
C、从主程序开始执行 D、按模块顺序执行
35、用来设置粗体字的属性是(C)。
A、FontItalic B、FontName
C、FontBold D、FontSize
36、如果一个工程含有多个窗体及标准模块,则以下叙述中错误的是(A)。
A、如果工程中含有Sub Main过程,则程序一定首先执行该过程
B、不能把标准模块设置为启动模块
C、用Hide方法只是隐藏一个窗体,不能从内存中清除该窗体
D、任何时刻最多只有一个窗体是活动窗体
37、为了把焦点移到文本框,所使用的方法是(A)。
A、SetFocus B、Visible
C、Refresh D、GetFocus
38、INT(100*RND)产生的随机整数的闭区间是(A)。
A、[0,99] B、[1,100]
C、[0,100] D、[1,99]
39、如果要在命令按钮上显示图形文件,应设置命令按钮的(B)。
A、Style属性和Graphics属性B、Style属性和Picture属性
C、Caption属性 D、Graphics属性
40、若要使命令按钮不可操作,要对(A)属性进行设制。
A、Enabled B、Visible
C、BackColor D、Caption
41、假定窗体的名称为Form1,则把窗体的标题设置为“VB_Test”的语句为(B)。
A、Form1=“VB_Test” B、Form1.Caption=“VB_Test”
C、Form1.Text=“VB_Test” D、Form1.name=“VB_Test”
42、以下叙述中错误的是(A)。
A、在工程资源管理器窗口中只能包含一个工程文件及属于该工程的其他文件
B、以.BAS为扩展名的文件是标准模块文件
C、窗体文件包含该窗体及其控件的属性
D、一个工程中可以含有多个标准模块文件
43、要使文本框获得输入焦点,则应采用文本框控件的哪个方法(A)。
A、GotFocus B、LostFocus
C、KeyPress D、SetFocus
44、以下不能在“工程资源管理器”窗口中列出的文件类型是(B)。
A、.bas B、.res C、.frm D、.ocx
45、刚建立一个新的标准EXE工程后,不在工具箱中出现的控件是(C)。
A、单选按钮 B、图片框 C、通用对话框 D、文本框
46、以下叙述中错误的是(B)。
A、双击鼠标可以触发DblClick事件
B、窗体或控件的事件的名称可以由编程人员确定
C、移动鼠标时,会触发MouseMove事件
D、控件的名称可以由编程人员设定
47、以下能够触发文本框Change事件的操作是(D)。
A、文本框失去焦点 B、文本框获得焦点
C、设置文本框的焦点 D、改变文本框的内容
48、以下叙述中错误的是(C)。
A、一个工程中只能有一个Sub Main过程
B、窗体的Show方法的作用是将指定的窗体装入内存并显示该窗体
C、窗体的Hide方法和Unload方法的作用完全相同
D、若工程文件中有多个窗体,可以根据需要指定一个窗体为启动窗体
49、语句PrintAbs(-6^2)+Int(-6^2)的输出结果是(A)。
A、0 B、1 C、-1 D、-72
50、如果将布尔常量值TRUE赋值给一个整型变量,则整型变量的值为(B)。
A、0 B、-1 C、TRUE D、FALSE
51、函数String(n,"str")的功能是(B)。
A、把数值型数据转换为字符串
B、返回由n个字符组成的字符串
C、从字符串中取出n个字符
D、从字符串中第n个字符的位置开始取子字符串
52、语句PrintFormat(“Hello World”,“>”)的输出结果是(C)。
A、hello WORLD B、hello world
C、HELLO WORLD D、HELLO world
53、声明符号常量应该用关键字(B)。
A、Static B、Const C、Private D、Variant
54、要强制显示声明变量,可在窗体模块或标准模块的声明段中加入语句(B)。
A、Option Base 0 B、Option Explicit
C、Option Base 1 D、Option Compare
55、下列可作为VisualBasic变量名的是(D)。
A、A#A B、4A C、?xy D、constA
56、设a=10,b=5,c=1,执行语句Printa > b > c后,窗体上显示的是(B)。
A、True B、False C、1 D、出错信息
57、执行x$=String(6,"124abc")后,x的值是(B)。
A、124abc B、111111 C、124 D、abc
58、设a=6,则执行x=IIf(a>5,-1,0)后,x 的值为(D)
A、5 B、6 C、0 D、-1
59、执行语句:c$=“Glad”& Mid$(“Nice to meet you”,5,3),则变量c$的值为(C)。
A、Nice to meet you B、Glad Nice to meet you
C、Glad to D、Glad
60、下面(D)是合法的字符常数。
A、ABC$ B、" ABC" C、' ABC' D、ABC
61、对于语句Ifx=1 Then y=1,下列说法正确的是(C)。
A、x=1 和 y=1 均为赋值语句
B、x=1 和 y=1 均为关系表达式
C、x=1 为关系表达式, y=1 为赋值语句
D、x=1 为赋值语句, y=1 为关系表达式
62、设有声明:DimX As Integer,如果Sgn(X) 的值为-1,则X的值是(D)。
A、任何整数 B、0 C、等于0的整数 D、小于0的数
63、在一行内写多条语句时,每个语句之间用(B)符号分隔。
A、, B、: C、、 D、;
64、从键盘上输入两个字符串,分别保存在变量str1、str2中。确定第二个字符串在第一个字符串中起始位置的函数是(D)。
A、Left B、Mid C、String D、Instr
65、设S="中华人民共和国",表达式Left(S,1)+Right(S,1)+Mid(S,3,2)的值为(B)
A、"中华民国" B、"中国人民"
C、"中共人民" D、"人民共和"
66、下列可作为Visual Basic中的变量名的是(A)。
A、Filename B、A(A+B) C、254D D、Print
67、下面(A)是合法的变量名。
A、X_yz B、123abc C、Integer D、X-Y
68、以下变量命名非法的是(C)。
A、xyz123 B、printaa C、boolean D、Bernald
69、设有变量声明:DimTestDate As Date,为变量TestDate正确赋值的表达方式是(A)。
A、TextDate=#1/1/2002#
B、TestDate=#“1/1/2002”#
C、TextDate=date(“1/1/2002”)
D、TestDate=Format(“m/d/yy”,“1/1/2002”)
70、设a=2,b=3,c=4,d=5,表达式a>bAND c<=d的值是(B)。
A、True B、False C、-1 D、1
71、表达式6*8Mod 9的值是(B)。
A、4 B、3 C、6 D、7
72、假设变量bool_x是一个布尔型(逻辑型)的变量,则下面正确的赋值语句是(D)
A、bool_x = "False" B、bool_x = .False.
C、bool_x = #False# D、bool_x = False
73、设a=“VisualBasic”,下面使b=“Basic”的语句是(B)。
A、b=Left(a,8,12) B、b=Mid(a,8,5)
C、b=Rigth(a,5,5) D、b=Left(a,8,5)
74、语句PrintFormat$(32548.5,“###,###.###”)的输出结果是(B)。
A、32548.5 B、32,548.5 C、032,548.50 D、32,548.50
75、以下声明语句中错误的是(D)。
A、Const var1=123 B、Dim var2 = 'ABC'
C、Dim x_y_z% D、Static var3 As Integer
76、可以同时删除字符串前导和尾部空白的函数是(C)。
A、Ltrim B、Rtrim C、Trim D、Mid
77、下列可为合法变量名的是(D)。
A、Integer B、False C、public D、thanksgiving
78、变量未赋值时,数值型变量的值为( A)。
A、0 B、空 C、1 D、无任何值
79、表达式16/4-2^5*8/4 Mod 52的值为(B)。
A、14 B、4 C、20 D、2
确的80、下面If语句统计满足性别为男、职称为副教授以上、年龄小于40岁条件的人数,不正语句是(D)。
A、If sex="男"And age<40 And (duty="教授"Or duty="副教授") Then n=n+1
B、If sex="男"And age<40 And InStr(duty,"教授")>0 Then n=n+1
C、If sex="男"And age<40 And Right(duty,2)= "教授" Then n=n+1
D、If sex="男"And age<40 And duty="教授"And duty="副教授" Then n=n+1
81、设a=3,b=5,则以下表达式值为真的是(B)。
A、a>=b And b>10
B、(a>b)Or(b>0)
C、(a<0)or(b<0)
D、(-3+5>a)And(b>0)
82、执行语句a=InputBox("Today","Tomorrow","Yesterday",,,"Daybefore yesterday",5), 将显示一个输入对话框,在对话框的输入区中显示的信息是(A)。
A、Today
B、Tomorrow
C、Yesterday
D、Day before Yesterday
83、VB提供了结构化程序设计的3种基本结构,这3种基本结构是(B)。
A、递归结构,分支结构,循环结构
B、选择结构,过程结构,顺序结构
C、过程结构,输入、输出结构,转向结构
D、分支结构,循环结构,顺序结构
84、下面If语句统计满足性别为男、职称为副教授以上、年龄小于40岁条件的人数,不正确的语句是(D)。
A、If sex=“男”And age<40 And InStr(duty,“教授”)>0 Then n=n+1
B、If sex=“男”And age<40 And (duty=“教授”Or duty=“副教授”) Then n=n+1
C、If sex=“男”And age<40 And Right(duty,2)= “教授” Then n=n+1
D、If sex=“男”And age<40 And duty=“教授”And duty=“副教授” Then n=n+1
85、当语句w=IIf(4>10,”Red”,“Green”)执行后,变量w中的值是(C)。
A、Null
B、“Red”
C、“Green”
D、-1
86、赋值语句:a=123+MID(“123456”,3,2)执行后,a变量中的值是(D)。
A、“12334”
B、123
C、12334
D、157
87、设有语句x=InputBox(“AAAA”,“BBBB”,“”),程序运行后,所产生的对话框的标题应为(C)。
A、AAAA
B、空
C、BBBB
D、出错,不能产生对话框
88、下面正确的赋值语句是(C)。
A、x+y=30
B、y=π*r*r
C、y=x+30
D、3y=x
89、VB提供了结构化程序设计的三种基本结构,三种基本结构是(D)。
A、递归结构、选择结构、循环结构
B、选择结构、过程结构、顺序结构
C、过程结构、输入输出结构、转向结构
D、选择结构、循环结构、顺序结构
90、下面程序段求两个数中的大数,不正确的是(D)。
A、Max=IIf(x>y,x,y)
B、If x>y Then Max=xElse Max=y
C、Max=x:If y>=x Then Max=y
D、If y>x Then Max=y :Max=x
91、下列程序段:Dim x If x Then Print x Else Print x+1 运行后,显示的结果是(A)。
A、1
B、0
C、-1
D、出错
92、以下不属于vb的三种基本结构的是(C)?
A、顺序结构
B、选择结构
C、递归结构
D、循环结构
93、语句Ifx=1 Then y=1,下列说法正确的是(C)。
A、x=1和y=1均为赋值语句
B、x=1和y=1均为关系表达式
C、x=1为关系表达式,y=1为赋值语句
D、x=1为赋值语句, y=1为关系表达式
94、赋值语句:a=123& MID(“123456”,3,2)执行后,a变量中的值是(C)。
A、“12334”
B、123
C、12334
D、157
95、下面程序段显示的结果是(A)。
Dim x
x=Int(Rnd)+5
Select Case x
Case 5
“优秀”
Case 4
Print“良好”
Case3
Print“通过”
Case Else
Print“不通过”
EndSelect
A、优秀
B、良好
C、通过
D、不通过
96、为了给x,y,z这3个变量赋初值1,下面正确的赋值语句是(A)。
A、x=1:y=1:z=1
B、x=1,y=1,z=1
C、x=y=z=1
D、xyz=1
97、下列语句正确的是(C)
A、If A≠B Then Print"A不等于B"
B、If A<>B Then Printf A不等于B
C、If A<>B Then Print "A不等于B"
D、If A≠B Print"A不等于B"
98、设有语句x$=InputBox(“输入数值”,“0”,“示例”),程序运行后,如果从键盘上输入数值10并按回车键,则下列叙述中正确的是(D)。
A、变量X的值是数值10
B、在InputBox对话框标题栏中显示的是“示例”
C、0是默认值
D、变量X的值是字符串“10”
99、运行下列程序段后,显示的结果为(B) J1=4: J2=9 If J1<J2 Then Print J2 Else PrintJ1
A、4
B、9
C、13
D、49
100、InputBox函数返回值的类型为(B)。
A、数值
B、字符串
C、变体
D、数值或字符串(视输入的数据而定)
101、一个数组说明为Dima(0 to 5,1 to 5) As Integer,则该数组共有(C) 个元素。
A、25
B、36
C、30
D、不确定
102、数组声明语句Dima(2 to 3, -2 to 2,3 to 5)中,数组a包含元素的个数为(C)。
A、120
B、75
C、30
D、13
103、如果在上题语句前加入 Option Base 1,则该数组共有(D) 个元素。
A、15
B、16
C、13
D、不确定
104、如果有声明Dim a(15) As Integer,则该数组共有(B)个元素。
A、15
B、16
C、13
D、不确定
105、一个数组说明为Dima(5,1 to 5) As Integer,则该数组共有(C) 个元素。
A、25
B、36
C、30
D、不确定
106、在VB中,默认的数组下标的下界从0开始,要想在通用声明段界定下界,则应使用(A)。
A、Option Base
B、Option Explicit
C、Explicit
D、Low Base
107、如下数组声明语句,正确的是(B)。
A、Dim a[3, 4] as Integer
B、Dim a(3, 4) as Integer
C、Dim a(n, n) as Integer
D、Dim a[3][4) as Integer
108、赋给一个数组的数据的值的类型一定要(A)。
A、相同
B、不相同
C、两可
D、都不对
109、数组的下标可取的变量类型是(A)。
A、数值型
B、字符型
C、日期型
D、可变型
110、数组声明语句Dima(0 to 3, -2 to 2,0 to 5)中,数组a包含元素的个数为(A)。
A、120
B、75
C、60
D、13
111、假定有如下的Sub过程: SubS (x As Single, y As Single) t = x x = t / y y = t Mod y End Sub 在窗体上添加一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim a As Single Dim b As Singlea = 5: b = 4 S a, b Print a, b End Sub 程序运行时,单击命令按钮得到的结果(D)。
A、5 4
B、1 1
C、1.25 4
D、1.25 1
112、用以下方式声明的变量,(B)可以在整个程序中通用?
A、在窗体模块用Dim进行声明
B、在窗体模块用Public进行声明
C、在窗体模块用Private进行声明
D、在窗体模块用Static进行声明
113、在窗体上添加一个命令按钮和三个标签,编写事件过程: Private x As Integer Private Sub Command1_Click() Static yAs Integer Dim z As Integer N=10: z=N+z: y=y+z: x=x+z Label1.Caption = xLabel2.Caption = y Label3.Caption = z End Sub 程序运行后,连续三次单击命令按钮,则三个标签中显示的内容分别是(A)。
A、10 10 10
B、30 30 30
C、30 30 10
D、10 30 30
114、以下叙述中错误的是(D)。
A、如果过程被定义为Static类型,则该过程中的局部变量都是Static类型
B、Sub过程中不能嵌套定义Sub过程
C、Sub过程中可以嵌套调用Sub过程
D、事件过程可以像通用过程一样由用户定义过程名
115、在在窗体上添加一个命令按钮Command1和一个文本框Text1,然后编写如 下事件过程:
Private Sub Command1_Click()
Dim x As Integer, y As Integer, z AsInteger
x = 5
y = 7
z = 0
Text1.Text =""
Call p1(x, y, z)
Text1.Text = Str(z)
End Sub Private Subp1(ByVal a As Integer, ByVal b As Integer, c As Integer)
c = a + b
End Sub
程序运行后,单击命令按钮得到的结果是(A)。
A、12
B、0
C、Str(z)
D、没有显示结果
116、如果在程序中要将a定义为静态变量,且为整型数,则应使用的语句是:(B)
A、Redim a As Integer
B、Static a As Integer
C、Public a As Integer
D、Dim a As Integer
117、以下程序的运行结果是(C)
Subs1(b() As Integer)
For i = 1 To 4
b(i) = 2 * i
Next i
End Sub
Private Sub Command1_Click()
Dim a(1 To 4) As Integer
For i = 1 To 4
a(i) = i + 5
Next i
s1 a()
For i = 1 To 4
Print a(i)
Nexti
EndSub
A、12 14 16 18
B、6 7 8 9
C、2 4 6 8
D、1 2 3 4
118、以下程序的运行结果是(D)。 Function f(m As Integer) As Integer b = 1 Staticc As Integer b = b + 1 c = c + 1 f = m * b * c End Function Private SubCommand1_Click() Dim a As Integer a = 2 Sum = 0 For i = 1 To 3 Sum = Sum + f(a)Next i Print Sum End Sub
A、12
B、28
C、32
D、24
119、下列程序输出结果(C)。
Private Sub Command1_Click()
For i = 1 To 10
GetValue i
Next i
Print GetValue(i)
End Sub
Private FunctionGetValue(ByVal a As Integer) Static S As Integer S = S + a
GetValue = S
End Function
A、10
B、65
C、66
D、11
120、在过程定义的变量,若希望在离开该过程后,还能保存过程中局部变量的值,则应使用(D)关键字在过程中定义局部变量。
A、Dim
B、Private
C、Public
D、Static
121、在过程定义中用(C)表示形参的传值。
A、Var
B、ByDef
C、ByVal
D、Value
122、在在窗体上添加一个命令按钮Command1和两个名称分别为Label1和 Label2的标签,然后编写如下事件过程: Private X AsInteger Private SubCommand1_Click() X = 5: y = 3 Call proc(X, y) Label1.Caption = X Label2.Caption = y End Sub Sub proc(ByVal a As Integer, ByVal bAs Integer) X = a * a y = b + b End Sub 程序运行后,单击命令按钮,则两个标签label1和label2中显示的内容分别是(B)。
A、25,3
B、25,6
C、5,3
D、5,6
123、以下程序的运行结果是(C)。 Dim x As Integer, y As Integer, z As Integer Subs1(a As Integer, b As Integer)
Dim c As Integer
a = 2 * a b = b + 2 c = a+ b
End Sub
Sub s2(a As Integer, ByValb As Integer)
Dim c As Integer
a = 2 * a
b = b + 2
c = a + b
End Sub
Private Sub Command1_Click()
x = 4:y = :4 z = 6
Call s1(x, y)
Print x + y + z
Call s2(x, y)
Print x + y + z
End Sub
A、24 28
B、20 28
C、20 18
D、20 20
124、以下关于过程及过程参数的描述中,错误的是(C)。
A、过程的参数可以是控件名称
B、用数组作为过程的参数时,使用的是“传地址”方式
C、只有函数过程能够将过程中处理的信息传回到调用的程序中
D、窗体可以作为过程的参数
125、以下属于VisualBasic合法的数组元素是(C)
A、x8
B、x[8]
C、s(0)
D、v[8]
126、下列叙述中正确的是(C)。
A、在窗体的Form_Load事件过程中定义的变量是全局变量
B、局部变量的作用域可以超出所定义的过程
C、在某个Sub过程中定义的局部变量可以与其它事件过程中定义的局部变量同名,但其作用域只限于该过程
D、在调用过程时,所有局部变量被系统初始化为0或空字符串
127、假定有以下函数过程: Function Fun(S As String) As String Dim s1 As String For i =1 To Len(S) s1 = UCase(Mid(S, i, 1)) + s1 Next i Fun = s1 End Function 在窗体上添加一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim str1 As String, str2 As String str1 = InputBox("请输入一个字符串") str2 = Fun(str1) Print str2 End Sub 程序运行后,单击命令按钮,如果在输入对话框中输入字符串“abcdefg”,单击"确定"按钮后程序在窗体上输出结果(D)。
A、abcdefg
B、gfedcba
C、GFEDCBA
D、ABCDEFG
128、若已编写了一个Sort子过程,在该工程中有多个窗体,为了方便的调用Sort子过程,应该将该过程放在(B)。
A、窗体模块
B、标准模块
C、类模块
D、工程
129、下面子过程语句说明合法的是(D)
A、Sub f1(ByVal n() AsInteger)
B、Function f1(f1 As Integer) As Integer
C、Sub f1(n() AsInteger)As Integer
D、Function f1(ByVal n As Integer)As Integer
130、在过程定义的变量,若希望在离开该过程后,还能保存过程中局部变量的值,则应使用(D)关键字在过程中定义局部变量。
A、Dim
B、Private
C、Public
D、Static
131、在窗体上画三个单选按钮,组成一个名为chkOption的控件数组。用于标识各个控件数组元素的参数是(D)。
A、Tag
B、Index
C、ListIndex
D、Name
132、假如列表框(List1)有四个数据项,那么把数据项“China”添加到列表框的最后,应使用(D)语句。
A、List1.AddItem 3, "China"
B、List1.AddItem "China", List1.List1Count-1
C、List1.AddItem "China", 3
D、List1.AddItem "China"
133、如果列表框(List1)中没有被选定的项目,则执行List1.RemoveItem List1.ListIndex语句的结果是(D)。
A、移去第一项
B、移去最后一项
C、移去最后加入列表的一项
D、以上都不对
134、以下叙述中错误的是(C)。
A、在KeyUp和KeyDown事件过程中,从键盘上输入A或a被视作相同的字母(即具有相同的KeyCode)
B、在KeyUp和KeyDown事件过程中,将键盘上的“1”和右侧小键盘上的“1”视作不同的数字(具有不同的KeyCode)
C、KeyPress事件中不能识别键盘上某个键的按下与释放
D、KeyPress事件中可以识别键盘上某个键的按下与释放
135、设组合框Combo1中有3个项目,则以下能删除最后一项的语句是(B)。
A、Combo1.RemoveItem Text
B、Combo1.RemoveItem 2
C、Combo1.RemoveItem 3
D、Combo1.RemoveItem Combo1.Listcount
136、下列控件中,没有Caption属性的是(B)。
A、框架
B、列表框
C、复选框
D、单选按钮
137、引用列表框(List1)最后一个数据项应使用的表达式是(C)
A、List1.List(List1.ListCount)
B、List1.List(ListCount)
C、List1.List(List1.ListCount-1)
D、List1.List(ListCount-1)
138、窗体的MouseDown事件过程Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)有4个参数,关于这些参数,正确的描述是(A)。
A、通过Button参数判定当前按下的是哪一个鼠标键
B、Shift参数只能用来确定是否按下Shift键
C、Shift参数只能用来确定是否按下Alt和Ctrl键
D、参数x,y用来设置鼠标当前位置的坐标
139、复选框的Value属性为1时,表示(B)。
A、复选框未被选中
B、复选框被选中
C、复选框内有灰色的勾
D、复选框操作有错误。
140、引用列表框的最后一项应使用(A)。
A、List1.List(List1.ListCount-1)
B、List1.List(List1.ListCount)
C、List1.List(ListCount)
D、List1.List(ListCount-1)
141、设窗体上有一个列表框控件List1,且其中含有若干列表项。则以下能表示当前被选中的列表项内容的是(D)。
A、List1.List
B、List1.ListIndex
C、List1.Index
D、List1.Text
142、表示滚动条控件取值范围最大值的属性是(A)。
A、Max
B、LargeChange
C、Value
D、Max-Min
143、为了在按下Esc键时执行某个命令按钮的Click事件过程,需要把该命令按钮的一个属性设置为True,这个属性是(D)。
A、Value
B、Default
C、Cancel
D、Enabled
144、假如列表框(List1)有四个数据项,那么把数据项“China”添加到列表框的最后,应使用语句(D)。
A、List1.AddItem 3, "China"
B、List1.AddItem "China", List1.List1Count-1
C、List1.AddItem "China", 3
D、List1.AddItem "China", List1.List1Count
145、复选框的Value属性为2时,表示(C)。
A、复选框未被选中
B、复选框被选中
C、复选框内有灰色的勾
D、复选框操作有错误。
146、为了在按下回车键时执行某个命令按钮的事件过程,需要把该命令按钮的一个属性设置为True,这个属性是(A)。
A、Value
B、Default
C、Cancel
D、Caption
147、下面说法不正确的是(D)?
A、层菜单不允许设置快捷键
B、使菜单项中的文字具有下画线,可在标题文字前加&符号
C、一菜单项名为MenuTerm,则语句MenuTerm.Enable = Flase 将使该菜单项失效
D、希望在菜单中显示"&"符号,则在标题栏中输入"&"符号
148、以下叙述中错误的是(C)。
A、在程序运行时,通用对话框控件是不可见的
B、在同一个程序中,用不同的方法(如ShowOpen或ShowSave等)打开的通用对话框具有不同的作用
C、调用通用对话框控件的ShowOpen方法,可以直接打开在该通用对话框中指定的文件
D、调用通用对话框控件的ShowColor方法,可以打开颜色对话框
149、菜单编辑器中,输入哪一个选项(A)会在菜单栏上显示文本
A、标题
B、名称
C、索引
D、访问键
150、菜单控件只有一个事件(B)
A、MouseUp
B、Click
C、DBClick
D、KeyPress
151、在用通用对话框控件建立“打开”或“保存”文件对话框时,如果需要指定文件列表框所列出的文件类型是文本文件(即.txt文件),则正确的描述格式是(A)。
A、“text (.txt)|(*.txt)”
B、“文本文件( .txt) | (.txt)”
C、“text(.txt)||(*.txt)”
D、“text(.txt)(*.txt)”
152、下面哪个属性可以控制菜单项可见或不可见(C)
A、Hide
B、Checked
C、Visible
D、Enabled
153、下面说法不正确的是(D)
A、层菜单不允许设置快捷键
B、使菜单项中的文字具有下画线,可在标题文字前加&符号。
C、一菜单项名为MenuTerm,则语句MenuTerm.Enabled = Flase 将使该菜单项失效。
D、希望在菜单中显示“&”符号,则在标题栏中输入“&”符号。
154、下面哪个属性可以控制菜单项可见或不可见(C)?
A、Hide
B、Checked
C、Visible
D、Enabled
155、改变驱动器列表框的Drive属性将激活(A)事件。
A、Change
B、Scroll
C、KeyDown
D、KeyUp
156、在窗体上建立通用对话框需要添加的控件是(C)
A、Data控件
B、Form控件
C、CommonDialog控件
D、VBComboBox控件
157、下面几个关键字均表示文件的打开方式,只能进行读不能写的是(A)。
A、Input
B、Output
C、Random
D、Append
158、为建一个随机文件,其中每一条记录由多个不同数据类型的数据项组成,应使用(A)。
A、记录类型
B、数组
C、字符串类型
D、变体类型
159、下列说法错误的是(B)。
A、当用Write # 语句写顺序文件时,文件必须以Output或Append方式打开
B、用Open语句打开一个文件时,对同一个文件可以用几个不同的文件号打开
C、用Output和Append方式打开文件时,不用将文件关闭,就能重新打开文件
D、用Append方式打开文件时,进行写操作,写入文件的数据附加到原来文件的后面
160、执行语句Open"Sample.dat" For Random As #1 Len = 50 后,对文件"Sample.dat"中的数据能够进行的操作是(C)。
A、只能写不能读
B、只能读不能写
C、即可以读,也可以写
D、不能读,也不能写
1,下面程序对已知数组a,删除数组中数组元素中某个元素
Private Sub Command1_Click()
Dim a(), key%, i%, j%
a = Array(1, 6, 8, 3, 5, 9, 10, 2, 7, 4)
key = Val(InputBox("输入要删除的值"))
For i = 0 To UBound(a)
If key = a(i) Then
Forj = i + 1 To UBound(a)
a(j - 1) = a(j)
Nextj
ReDim Preserve a(UBound(a) - 1)
MsgBox ("删除完成")
ExitSub
End If
Next i
MsgBox ("找不到要删除的元素")
End Sub
2,下列程序表示将输入的一个数插入到按递减的有序数列中,插入后使该序列仍有序
Private Sub Form_Click()
Dim a, i%, n%, m%
a = Array(19, 17, 15, 13, 11, 9, 7, 5, 3,1)
n = UBound(a)
ReDim Preserve a(n + 1)
m = Val(InputBox("输入欲插入的数"))
For i = UBound(a) - 1 To 0 Step -1
If m >= a(i) Then
a(i + 1) = a(i)
If i = 0 Then a(i) = m
Else
a(i + 1) = m
Exit For
End If
Next i
For i = 0 To UBound(a)
Print a(i)
Next i
End Sub
3,下列程序在1000~9999之间查找满足如下条件的整数:该整数,逆向排列得到的
另一个四位数是它自身的倍数(2倍以上)。查找结果和逆向排列数分别显示在对应
的列表框
Private Sub Command1_Click()
Dim n As Integer
Dim m As Integer
Dim i As Integer
For i = 1000 To 9999
m= 0
n = i
DoWhile n > 0
m = m * 10 + n Mod 10
n = n 10
Loop
If m Mod i=0And m i > 1 Then
list1.AddItem i
list2.AddItem m & "=" & i& "*" & m i
End If
Next i
End Sub
4,将100~150之间的偶数,拆分成两个素数之和,最后输出格式如图。其中,prime函数判断
参数x是否为质数
Private Function prime(ByVal x As Integer)As Boolean
prime = ture
For i = 2 To Sqr(x)
If x Mod i = 0 Then
prime = False
Exit Function
End If
Next i
End Function
Private Sub Form_Load()
i = 1
For n = 100 To150
For k = 3 To n / 2
Ifprime(k) And prime(n - k) Then
Print i; ":"; "="; k; "+"; n - k
Exit For
End If
Next k
i = i + 1
Next n
End Sub
10,
子过程F(N,M,T)对一个四位数n整整数判断:已知该整数n,逆向排列获得另一个4位数m是特自身的倍数,则t为true
表示满足上述条件。。。
Private Sub Command1_Click()
Dim t As Boolean, i%, k%
text1 = ""
text2 = ""
For i = 1000 To 9999
Call f(i, k, t)
Ift Then
text1 = text1 & i & vbCrLf
text2 = text2 & k & "=" & i & "*"& k i & vbCrLf
EndIf
Next i
End Sub
Sub f(ByVal n%, ByRef m%, byreyftag AsBoolean)
Dim i%
Tag = False
m = 0
i = n
Do While i > 0
m = m * 10 + i Mod 10
i = i 10
Loop
If m Mod n = 0 And m n > 1 Then
Tag = True
End If
End Sub
6.8.子过程MoveStr()是把字符组移动m个位置,
当Tag为Ture是左移,则前m个字符一道字符数组尾
,例如,“abcdefghij”左移3个位置后,结果为
“defghijabc”;。。。。。
Public Sub MoveStr(a $(),m%,Tag As Boolean)
Dimi%, j%, t$
If Tag Then
For i = 1 To m
c = a(0)
For j = 0 To UBound(a) - 1
a(j) = a(j + 1)
Next j
a (UBound(a)) - 1
Next i
Else
For i = 1 To m
c = a(UBound(a))
For j = UBound(a) To 1 Step -1
a(j) = a(j - 1)
Next j
a(0) = c
Next i
EndIf
End Sub
6.9.子过程CountN用来统计字符串中各数字
字符(0-9)出现的个数;主调程序对在textbox1
框输入的文本,每次单击“统计”按钮,调用该子
过程,在Label1框显示结果。
Private Sub Command1_Click()
Dim n(9) As Integer, i%
Call CountN(n(), text1.Text)
list1.Clear
For i = 0 To 9
If n(i) Then list1.AddItem "字符" & i & "出现的次数为" & n(i)
Next
End Sub
Sub CountN(ByRefnum%(), ByVal s As String)
Dim c As String * 1, i%, m%, j%
For i = 0 To 9
num(i) = 0
Next i
m= Len(s)
For i = 1 To m
c = Mid(s, i, 1)
If c >= "0" And c <= "9" Then
j = Val(c)
num(j) = num(j) + 1
End If
Next i
End Sub
6.11.下列程序中的子过程myplit。。用于实现split函数的功能,即将数字字符
s鞍分隔符“,”分离到sArry数组中,分离的个数为n。。。。
Private Sub Text1_KeyPress(KeyAscii AsInteger)
Dim strl As String, num(100) As Integer, n%, i%
If KeyAscii = 13 Then
str1 = Trim(Text1.Text)
Call MySplit(str1, num, n)
list1.Text = ""
For i = 1 To n
list1.AddItem num(i)
Next
End If
End Sub
Sub MySplit(ByVal str1 As String, ByRefsn() As Integer, ByRef n As Integer)
Dim i%, j%, ch$
i= 0
j= InStr(Str, ",")
Do While j > 0
sn(i) = Val(Mid(str1, 1, j - 1))
str1 = Mid(str1, j + 1)
i = i + 1
j = InStr(str1, ",")
Loop
sn(i) = Val(str1)
n= i
End Sub
1工程中有两个窗体form1和form2,一个标准模块module1,设在form1中定义了过程aa,在module1中定义了过程bb。
Sub aa(x, y, z)
z= x * x + y * y
End Sub
Sub bb(x, y, z)
z =x ^ 3 + y ^ 3
End Sub
当在form1中单击命令按钮时,调用以上过程计算两个数的平方和和立方和,并分别将计算结果显示在文本框text3和text4中,请填空完成调用语句。
Private Sub Command1_Click()
a =Val(Text1.Text)
b =Val(Text2.Text)
Call [aa(a,b,c1) ]
Text3.Text = c1
bb[a,b,c2 ]
Text4.Text = c2
End Sub
――――――――――――――――――
2下面的程序用于根据文本框X中输入的内容进行以下处理:若X为2、4、6,则打印"X的值为2、4、6";若X在11到15之间,则打印"X的值为大于等于11小于等于15";若X大于20,则打印"X的值大于20";否则,打印"X不在范围内"。
Private Sub Command1_Click()
Select Case Val(X.Text)
Case [2,4,6 ]
Print "X的值为2,4,6"
Case [11to 15 ]
Print "X的值为大于等于11小于等于15"
Case Is >20
Print "X的值大于20"
Case Else
Print "X不在范围内"
EndSelect
End Sub
――――――――――――――
3下面的程序是使用冒泡法对数组进行排序,请将程序补充完整。
Option Base 1
Private Sub Command1_Click()
Dim iA(0 To 10)
n = 6
iA(0) = 8: iA(1) = 6: iA(2) = 9: iA(3) = 3: iA(4) = 2: iA(5) = 7
For i= 1 To n - 1 ' 进行n-1遍比较
' 对第i遍比较时,大数沉底
For [j=1 to n-i ] ' 在数组 i~n个元素中选最小元素的下标
If [ iA(j) > iA(j+1) ] Then
t = iA(j)
iA(j) = iA(j + 1)
iA(j + 1) = t
End If
Next j
End Sub
――――――――――――
4 程序的功能是使用辗转相除法求两个数的最大公约数。
Private Sub Command1_Click()
Dimm%, n%
m =Int(InputBox("input an integer"))
n =Int(InputBox("input another integer"))
Print gcd(m, n)
End Sub
Public Function gcd%(m%, n%)
Dimt%
If[ m<n ]Then t = m: m = n: n = t
Do
r= m Mod n
If r = 0 Then Exit Do
m= n
[ n=r ]
Loop
gcd= n
End Function
―――――――――
5、输入任意长度的字符串,要求将字符顺序倒置,例如,将输入的“ABCDEF”变换成“FEDCBA”。请将程序补充完整。
Private Sub Command1_Click()
Dima$, i%, c$, n% 'n存放字符串的长度
a =InputBox("input a string")
n =[Len(a) ]
Fori = 1 To Int(n / 2)
c= Mid(a, i, 1)
Mid(a, i, 1) = [ Mid(a,n-i+1,1) ]
Mid(a, n - i + 1, 1) = c
Next i
End Sub
――――――――――
6、下面的程序允许用户按Enter(回车)键后,将组合框中没有的项目添加到组合框。请将程序补充完整。
Private Sub Combo1_KeyPress(KeyAscii AsInteger)
Dim flag As Boolean
If KeyAscii = 13 Then
flag = False
For i = 0 To Combo1.ListCount - 1 '查找项目是否已存在
If [ combo1.text=combo1.list(i) ] Then
flag = True
Exit For
End If
Next i
If flag = False Then '不存在则添加
[ combo1.AddItem combo1.Text ]
End If
End If
End Sub
―――――――――
7、下面的程序是使用选择法对数组进行升序排列,请将程序补充完整。
Option Base 1
Private Sub Command1_Click()
Dim iA(1 To 10)
n = 6
iA(1) = 8: iA(2) = 6: iA(3) = 9: iA(4) = 3: iA(5) = 2: iA(6) = 7
For i = 1 To n - 1 ' 进行n-1遍比较
iMin = i ' 对第i遍比较时,初始假定第i个元素最小
For [ j=i+1 to n ] ' 在数组 i~n个元素中选最小元素的下标
If [a(j)<a(imin) ] Then iMin = j
Next j
t = iA(i) 'i~n个元素中选出的最小元素与第i个元素交换
iA(i) = iA(iMin)
iA(iMin) = t
Next i
End Sub
―――――――――――
8、找出被3、5、7除,余数均为1的最小的5个正整数。
Private Sub Command1_Click()
Dimcountn%, n%
n =1: countn = 0
Do
n= n + 1
If [ n mod 3=1 And n mod 5=1 And n mod 7=1 ]Then
Print n
countn = countn + 1
End If
Loop [ until count n=5 ]
End Sub
――――――――――――――
9、下面程序段是检查输入的算术表达式中圆括号是否配对,并显示相应的结果。本程序在文本框输入表达式,
边输入,边统计,以输入回车键作为表达式输入结束,然后显示结果。
Dim count1%
Private Sub Text1_KeyPress(KeyAscii AsInteger)
If[ chr(keyAscii) ] = "(" Then
count1 = count1 + 1
ElseIf Chr(KeyAscii) = ")" Then
[ count1=count1+1 ]
EndIf
IfKeyAscii = 13 Then
If count1 = 0 Then
Print "左右括号配对"
ElseIf count1 > 0 Then
Print "左括号多于右括号"; count1; "个"
Else
Print "右括号多于左括号"; -count1; "个"
End If
EndIf
End Sub
――――――――――――
10、顺序文件的建立。建立文件名为“c:stud1.txt”的顺序文件,内容来自文本框,
每按Enter键写入一条记录,然后清除文本框的内容,直到文本框内输入“END”字符串。
Private Sub Form_Load()
Open“c:stud1.txt” For Output As #1
Text1.Text=“”
End Sub
Private Sub Text1_KeyPress(keyAscii AsInteger)
IfkeyAscii=13 Then
If[ Ucase(Text1)="END" ] Then
Close #1
End
Else
[Print #1,Text1 ]
Text1.Text=“”
End If
EndIf
End Sub
―――――――――――――
11、输入若干字符,统计有多少个元音字母、有多少个其他字母,不区分大小写,并显示结果。其中,CountY中放元音字母个数,CountC中放其他字符数。
Private Sub Command1_Click()
DimCountY%, CountC%, i%
DimC$, B$
c=Text1.Text
Fori = 1 To Len(C)
B=UCase(Mid(C, i, 1))
If [ "A"<=B And B<="Z" ] Then
Select Case B
Case "A","E","I","O","U"
CountY = CountY + 1
Case [ Else ]
CountC = CountC + 1
End Select
End If
Next i
Print "元音字母有"; CountY; "个"
Print "其它字母有"; CountC; "个"
End Sub
――――――――
12、将C盘根目录下的一个文本文件old.dat复制到新文件new.dat中,并利用文件操作语句
将old.dat文件从磁盘上删除。
Private Sub Command1_Click()
Dimstr1 $
Open “c:old.dat” For Input As #1
Open “c:new.dat” [For output As #2 ]
DoWhile[ NotEoF(1) ]
Line Input #1,str1
Print #2,str1
Loop
Close #1,#2
KILL “c:old.dat”
End Sub
―――――――――
<PIXTEL_MMI_EBOOK_2005>6
13、产生[10,37]之间的随机整数的Visual Basic表达式是[<int(Rnd*28+10)>]。
判断s字符变量是大写字母字符的逻辑表达式为[<s>="A"And s<="Z">]。
表示x是5的倍数或9的倍数的逻辑表达式是[<xMod 5=0 Or x Mod 9=0>]
Len("vb程序设计")的值是[<6>]。
表示字符变量s是字母字符(不区分大小写)的VB表达式是[<Lcase(s)>="a"And Lcase(s)<="z"或者Ucase(s)>="A"And Ucase(s)<="Z">]。
将一个两位数x的个位数与十位数交换位置,组成另一个两位数,则对应的表达式是[<(x Mod 10)+x10>]。
随机产生一个“C”~“L”范围内的大写字符,则对应的VB表达式是[<Chr(Int(Rnd*10+68))>]。
Round(-3.5)的值是[<-4>]。
Int(3.5)的值是[<3>]。
下面程序段运行后的输出结果是[<2 20 3 21 4 22 5 23>]。
For i = 0 To 3
Print Tab(5 * i + 1); "2" + i; "2" & i;
Next i
循环语句For i=-3to 20 Step 0 的循环次数是[<无数次>]。
在过程中定义的局部变量,如果希望过程结束后还保存变量的值,则应使用[<Static>]关键字进行声明。
由Array函数建立的数组,其变量必须是[<Variant>]。
要使循环语句循环执行20次,For k=____ to -5 Step -2,则k=[<33>]。
循环语句For i=-3.5to 5.5 Step 0.5的循环次数是[<19>]。
下列程序段中,第41句共执行了[<12>]次。
30 For j = 1 To 12 Step 3
40 For k = 6 To 2 Step -2
41 Print j, k
42 Next k
43 Next j
循环语句For i=-3to 20 Step 4的循环次数是[<6>]。
下面程序运行后的输出结果是[<**$$$****$$$$$>]。
a = "*": b = "$"
For i = 1 To 4
If i Mod 2 = 0 Then
x$ = String(Len(a) + i, b)
Else
x$ = String(Len(a) + i, a)
End If
Print x$;
Next i
下面程序的运行结果是[<22 484>]。
x = 242: y = 44
z = x * y
Do Until nx = y
If x > y Then x = x - y Else y = y - x
Loop
Print x, z / x
下列程序段中,第40句共执行了[<4>]次。
30 For j = 1 To 12 Step 3
40 For k = 6 To 2 Step -2
41 Print j, k
42 Next k
43 Next j
如果在建立菜单时在标题文本框中输入一个[<下划线或者“_”>],那么菜单显示时形成一个分隔线
如果菜单标题的某个字母前输入一个[<&>]符号,那么该字母就成了热键字母。
[<Clear>]方法可以清除列表框中的所有内容。
列表框中的[<List>]和Selected两个属性均为数组。
[<Style>]属性设置为1,单选按钮和复选框以图形方式显示。
当用户单击滚动条的空白处时,滑块移动的增量由[<Largechange>]属性决定。
当用户单击鼠标右键时,MouseDown、MouseUp和MouseMove事件过程中的Button参数值为[<2>]。
列表框中项目的序号是从[<0>]开始的。
Visual Basic中有一种控件组合了文本框和列表框的特性,这种控件是[<组合框>]。
如果窗体的[<KeyPreview>]属性设置为True,则控件的KeyPress事件过程可以接收到在窗体的KeyPress过程中修改过的值。
复选框的[<Value>]属性设置为2-Grayed时,变成灰色,禁止用户选择。
复选框的[<value>]属性设置为2-Grayed时,复选框变成灰色,禁止用户选择。
滚动条产生Change事件是因为它的[<Value>]属性值改变了。
如果要每隔15秒产生一个Timer事件,则Interval属性应设置为[<15000>]。
当用户单击滚动条两端的箭头时,滑块移动的增量由[<Smallchange>]属性决定。
[<List1.Listcount-1>]表示列表框(List1)中最后一项的序号。
Visual Basic提供的对数据文件的三种访问方式为顺序访问方式、[<二进制访问方式>]和随机访问方式。
一、单项选择题
1、与传统的程序设计语言相比,Visual Basic最突出的特点是(C)。
1 产生1-100以内的素数
Private Sub Command1_Click()
Dim i%, j%, tag As Boolean
For j = 1 To 100
tag = True
For i = 2 To j - 1
If j Mod i = 0 Then tag = False
Next i
If tag Then Print j;
Next j
End Sub
2、从键盘输入任意长度的字符串,要求将字符顺序倒置,例如,将输入的“ABCDEFG”变换成“GFEDCBA”。
PrivateSub Form_Click()
Dimi, a, b, n As String
n= InputBox("输入字符")
i= Len(n)
Fora = 1 To i / 2
b= Mid(n, a, 1)
Mid(n, a, 1) = Mid(n, i + 1 - a, 1)
Mid(n, i + 1 - a, 1) = b
Next a
Print n
EndSub
3.0到200被5 或11整除的数的和
Private Sub Command1_Click()
Dim i%
For i = 0 To 200
If i Mod 11 = 0 Or i Mod 5 = 0 Then
Sum = Sum + i
End If
Next i
Print "总和是";Sum
End Sub
4输入一年份,判断他是否为闰年,并现实是否是闰年的有关信息。
Private Sub Command1_Click()
Dim y%
y = Val(Text1)
If y Mod 4 = 0 And y Mod 100 <> 0 Or y Mod 400 = 0 Then
MsgBox (y & "年是闰年")
Else
MsgBox (y & "年是平年")
End If
End Sub
5、已知x,y,z 3个变量中存放了3个不同的数,比较它们的大小并进行调整,使得x<y<z。
PrivateSub Command1_Click()
Dimx!, y!, z!
x= InputBox("input x")
y= InputBox("input y")
z= InputBox("input z")
PrintTab(8); " "; "x"; " y"; " z"
Print"排序前:"; x; " "; y;" "; z
Ifx < y Then t = x: x = y: y = t:
Ifx < z Then t = x: x = z: z = t:
Ify < y Then t = y: y = z: z = t:
Print"排序后:"; ""; x; " "; y; " "; z
EndSub
6、求s=a+aa+aaa+...aaaaa(n个a),其中a和n的值随机产生,a的范围是[1,9]的整数,n的范围是[5,10]。如a=3,n=6,则s=3+33+333+3333+33333+333333。编程确定n和a的值,并计算s。
Private Sub Form_click()
Dim s!, t!, i!, a%, n%
a = Int(Rnd * 9 + 1)
n = Int(Rnd * 6 + 5)
t = 0: s = 0
Print Tab(9); "a="; a,"n="; n
For i = 1 To n
t = t * 10 + a
s = s + t
Print Tab(9); t
Next i
Print Tab(9); "s="; s
End Sub
7、计算100~300之间所有能被3和7整除的数之和。
PrivateSub Command1_Click()
Dims%, i%
s= 0
Fori = 100 To 300
Ifi Mod 3 = 0 Or i Mod 7 = 0 Then
s= s + i
EndIf
Nexti
Print"s=" & s
EndSub
8、编程求200--400范围内5的倍数或7的倍数之和。(一个数如果同时是7和5的倍数,则只能加一次。)
Private Sub Command1_Click()
Dims1%, s2%, s3%, i%
s1= 0
s2= 0
Fori = 200 To 400
Ifi Mod 5 = 0 Or i Mod 7 = 0 Then
s1= s1 + i
EndIf
Nexti
Fori = 200 To 400
Ifi Mod 5 = 0 And i Mod 7 = 0 Then
s2= s2 + i
EndIf
Nexti
s3= s1 - s2
Prints3
EndSub
9找出被3、5、7除,余数均为1的最小的5个正整数。
Private Sub Command1_Click()
Dim countN%, n%
countN = 0
n = 1
Do
n = n + 1
If n Mod 3 = 1 And n Mod 5 = 1 And n Mod 7 = 1 Then
Print n
countN = countN + 1
End If
Loop Until countN = 5
End Sub
10、某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。
Private Sub Form_Click()
Dim a(6) As Integer, i%, t%, s!, max%, min%, imin%,imax%
Randomize
For i = 0 To 6
a(i) = InputBox("输入评委所打的分数") 或者'也可以用随机数产生 'a(i)= Int(Rnd * 31 + 70)
Next i
For i = 0 To 6
Print a(i);
Next i
imax = 0: max = a(0)
For i = 1 To 6
If a(i) >= max Then max = a(i): imax = i
Next i
t = a(0): a(0) = a(imax): a(imax) = t
imin = 6: min = a(6)
For i = 0 To 5
If a(i) <= min Then min = a(i): imin = i
Next i
t = a(6): a(6) = a(imin): a(imin) = t
Print "除去最高分和最低分之后的分数"
For i = 1 To 5
Print a(i);
Next i
For i = 1 To 5
s = s + a(i)
Next i
Print "该参赛者的平均得分为";s / 5
End Sub
11、编程显示100~500之间所有的水仙花数之和。(水仙花数是3位数,其各位数之和等于该数本身)
Private SubForm_Click()
Print"100~500之间所有的水仙花数为:"
Dim x%, a%, b%, c%
Forx = 100 To 500
a= x Mod 10
b= (x Mod 100) 10
c= x 100
Ifx = a ^ 3 + b ^ 3 + c ^ 3 Then Print x
Nextx
EndSub
12、随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。
Private Sub Command1_Click()
Text1 = Int(Rnd * 900 + 100)
End Sub
Private Sub Command2_Click()
Dim x%, x1%, x2%, x3%
x = Val(Text1)
x1 = x Mod 10
x2 = (x Mod 100) 10
x3 = x 100
Text2 = x1 * 100 + x2 * 10 + x3
End Sub
否构成三角13、从键盘输入三角形的三条边a,b,c的值,根据其数值,判断能形。
Private SubCommand1_Click()
Dim a%, b%, c%
a = Val(InputBox("inputa"))
b = Val(InputBox("inputb"))
c = Val(InputBox("inputc"))
If a + b > c And b + c > a And a +c > b Then
MsgBox ("能构成三角形")
Else
MsgBox ("不能构成三角形")
End If
End Sub
14、已知数组a(),编程删除a中第5个元素。数组a中的元素分别为{12,6,4,89,75,63,100,20,31}。
Private Sub Form_Click()
Dim a(), i%, n%
a = Array(12, 6, 4, 89, 75, 63, 100, 20, 31)
n = UBound(a)
For i = 0 To n
Print a(i);
Next i
For i = 5 To n
a(i - 1) = a(i)
Next i
n = n - 1
ReDim Preserve a(n)
For i = 0 To n
Print a(i);
Next i
End Sub
14、已知数组a(),编程删除a中第5个元素。数组a中的元素分别为{12,6,4,89,75,63,100,20,31}。
PrivateSub Form_Click()
Dima(), i%, n%
a =Array(12, 6, 4, 89, 75, 63, 100, 20, 31)
n =UBound(a)
For i= 0 To n
Printa(i);
Next i
For i= 5 To n
a(i -1) = a(i)
Next i
n = n- 1
ReDimPreserve a(n)
For i= 0 To n
Printa(i);
Next i
EndSub
15、随机生成一个整型的二维数组,范围在[10,20]之间,以上三角形式输出该数组。(下三角、全部元素)
Dima%(4, 4), i%, j%
PrivateSub Form_load()
For i= 0 To 4
For j= 0 To 4
a(i,j) = Int(Rnd * 11 + 10)
Next j
Next i
EndSub
PrivateSub Command1_Click()
Picture1.Cls
For i= 0 To 4
For j= 0 To 4
Picture1.Printa(i, j); "";
Next j
Picture1.Print
Next i
EndSub
PrivateSub Command2_Click()
Picture2.Cls
For i= 0 To 4
For j= i To 4
Picture2.Printa(i, j); "";
Next j
Picture2.Print
Next i
EndSub
PrivateSub Command3_Click()
Picture3.Cls
For i= 0 To 4
For j= 0 To i
Picture3.Printa(i, j); "";
Next j
Picture3.Print
Next i
EndSub
16、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,输出每行中的最大值和下标。
Dima%(3, 3), i%, j%, imax%
PrivateSub Command1_Click()
Fori = 0 To 3
Forj = 0 To 3
a(i,j) = Int(Rnd * 31 + 20)
Picture1.Printa(i, j); "";
Nextj
Picture1.Print
Nexti
imax =0
Fori = 0 To 3
Forj = 0 To 3
Ifa(i, imax) < a(i, j) Then
imax= j
EndIf
Nextj
Picture2.Print"第"; i + 1; "行"; "最大值为"; a(i, imax); "下标为"; "("; i; imax;")"
Nexti
EndSub
17、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[40,80]内的整数,求它的最大值及所对应的下标。
Private Sub Form_Click()
Dim a(3, 3), max%, imax%
For i = 0 To 3
For j = 0 To 3
a(i, j) = Int(Rnd * 41 +40)
Next j
Next i
For i = 0 To 3
For j = 0 To 3
Print a(i, j);
Next j
Next i
For i = 0 To 3
For j = 0 To 3
If max < a(i, j) Then max = a(i, j): imax= i & j
Next j
Next i
Print "max="; max;"imax="; imax
End Sub
18、输入一系列字符串,编程求出长度最大的字符串并输出其所对应的次序
Private Sub Form_Click()
Dim a(5) As String, b(4)As Integer, t%, max%, imax%
For i = 1 To 5
a(i) = InputBox("a")
Next i
For i = 0 To 4
b(i) = Len(Trim(a(i)))
Next i
max = 1
For i = 0 To 4
If max < b(i) Then max = b(i): imax = i
Next i
Print "max="; a(i)
Print "cixu="; imax + 1
End Sub
19、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,输出该矩阵所有数据之和
Private Sub Form_Click()
Dim a(3, 3), sum%
For i = 0 To 3
For j = 0 To 3
a(i, j) = Int(Rnd * 31 +20)
Next j
Next i
For i = 0 To 3
For j = 0 To 3
Print a(i, j);
Next j
Next i
For i = 0 To 3
For j = 0 To 3
sum = sum + a(i, j)
Next j
Next i
Print "sum="; sum
End Sub
20、输入一系列字符串,将字符串按递减次序排列。请编程实现
Dima() As String, n%, i%, j%
PrivateSub Command1_Click()
n= Val(Text1)
ReDima(n) As String
Fori = LBound(a) To UBound(a)
a(i)= InputBox("请输入字符串")
Picture1.Printa(i); Spc(1);
Nexti
EndSub
PrivateSub Command2_Click()
Fori = 0 To n
Forj = 0 To n - 1
Ifa(j) < a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t
Nextj
Nexti
Fori = 0 To n
Picture2.PrintTab(3); a(i); Spc(1)
Nexti
EndSub
21.随机产生30~100(包括30、100)中的十个正整数,求最大值、最小值、平均值,并显示整个数组的值和结果。
PrivateSub Form_Click()
Dima(1 To 10) As Integer, i%, maxa%, mina%, avera!
For i =1 To 10
a(i) =Int(Rnd * 71 + 30)
Next i
mina =a(1)
maxa =a(1)
avera= a(1)
For i= 2 To 10
Ifa(i) > maxa Then maxa = a(i)
Ifa(i) < mina Then mina = a(i)
avera= avera + a(i)
Next i
For i= 1 To 10
Printa(i);
Next i
Print"max="; maxa, "min="; mina, "aver="; avera / 10
EndSub
22、、定义三个4×4的二维数组A,B,C,A和B中的元素均随机生成,数组A的范围是1~20,数组B的范围是100~200,数组C是A和B相乘得到的。请编程生成并输出A,B,C。
Private SubForm_Click()
Dima%(1 To 4, 1 To 4), b%(1 To 4, 1 To 4), c%(1 To 4, 1 To 4)
Print"数组A"
For i = 1 To 4
For j = 1 To 4
a(i, j) = Int(Rnd * 20 + 1)
PrintTab(j * 4); a(i, j);
Next j
Nexti
Print"数组B"
For i = 1 To 4
For j = 1 To 4
b(i, j) = Int(Rnd * 100 + 100)
PrintTab(j * 6); b(i, j);
Next j
Nexti
'Print"数组C";
'For i = 1 To 4
'For j = 1 To 4
'c(i, j) = b(i, j) * a(i, j)
'PrintTab(j * 4); c(i, j);
'Next j
'Nexti
Print"数组C";
For i = 1 To 4
For j = 1 To 4
c(i, j) = b(i, j) * a(i, j)
PrintTab(j * 6); c(i, j);
Next j
Nexti
EndSub
23、随机产生15个小写字母,放在字符串中。(提示:c=chr(int(rnd*26+97)))
PrivateSub Form_Click()
Dima$(1 To 15), i%
Print"字符数组为a(i):"
Fori = 1 To 15
a(i)= Chr(Int(Rnd * 26 + 97))
Printa(i); Spc(1);
Next i
EndSub
PrivateSub Form_Load()
FontSize= "10"
EndSub
24、随机产生10个[30,100]内的整数,求最大值及所对应的下标
PrivateSub Form_Click()
Dima(9), max%, imax%
For i= 0 To 9
a(i) =Int(Rnd * 71 + 30)
Printa(i);
Next i
max =a(0)
For i= 1 To 9
If max < a(i) Then max = a(i): imax = i
Next i
Print"max="; max
Print"imax="; imax
EndSub
25、定义三个4×4的二维数组A,B,C,A和B中的元素均随机生成,数组A的范围是1~20,数组B的范围是100~200,数组C是A和B相加得到的。请编程生成并输出A,B,C。
PrivateSub Command1_Click()
Dima(3, 3), b(3, 3), c(3, 3), t%, m%
For i= 0 To 3
For j = 0 To 3
a(i, j) = Int(Rnd * 20 + 1)
Picture1.Print a(i, j);
Next j
Next i
Picture1.Print
For i= 0 To 3
For j = 0 To 3
b(i,j) = Int(Rnd * 101 + 100)
Picture1.Print b(i, j);
Next j
Next i
Picture1.Print
For i = 0 To 3
For j = 0 To 3
c(i, j) = a(i, j) + b(i, j)
Picture1.Print c(i, j);
Next j
Next i
26.、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,求它的两条对角线上元素之和。
PrivateSub Command1_Click()
Dima%(3, 3), i%, j%, sum%
For i= 0 To 3
Forj = 0 To 3
a(i,j) = Int(Rnd * 31 + 20)
Picture1.Printa(i, j); "";
Nextj
Picture1.Print
Nexti
sum =0
For i= 0 To 3
sum =sum + a(i, i) + a(i, 3 - i)
Next i
Text1= sum
EndSub
.27、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[40,80]内的整数,求它的最小值及所对应的下标。
Dima%(3, 3), i%, j%, imin%
PrivateSub Command1_Click()
Fori = 0 To 3
Forj = 0 To 3
a(i,j) = Int(Rnd * 21 + 40)
Picture1.Printa(i, j); "";
Nextj
Picture1.Print
Nexti
imax= 0
Fori = 0 To 3
Forj = 0 To 3
Ifa(i, imin) > a(i, j) Then
imin= j
EndIf
Nextj
Picture2.Print"第"; i + 1; "行"; "最小值为"; a(i, imin); "下标为"; "("; i; imin;")"
Nexti
EndSub
28、随机生成一个整型的二维数组,范围在[10,20]之间,以下三角形式输出该数组。
Private Sub Form_Click()
Dima(4, 4) As Integer
For i= 0 To 4
For j = 0 To 4
a(i, j) = Int(Rnd * 11 + 10)
Next j
Next i
For i= 0 To 4
For j = 0 To i
Print a(i, j);
Next j
Next i
End Sub
29、有10个评委对歌手进行打分(分数存放在A数组中)要求编程计算歌手平均得分(按去掉一个最高分和一个最低分的计算办法计算)。
Private Sub Form_Click()
Dim a(), max%, min%,imax%, imin%, s!
a = Array(98, 97, 95,91, 90, 99, 93, 94, 93, 96)
n = UBound(a)
For i = 0 To n
Print a(i);
Next i
min = a(0): imin = 0
For i = 0 To n
If a(i) < min Then min = a(i): imin = i
Next i
Print "min="; min;"imin="; imin
For i = imin + 1 To n
a(i - 1) = a(i)
Next i
ReDim Preserve a(n - 1)
For i = 0 To n - 1
Print a(i);
Next i
For i = 0 To n - 1
If a(i) > max Thenmax = a(i): imax = i
Next i
Print "max=";max; "imax="; imax
ReDim Preserve a(n - 2)
s = 0
For i = 0 To n - 2
s = s + a(i)
Print a(i);
Next i
Print "avr="; s / (n - 1)
End Sub
30.已知一维数组a中元素已排序,分别为{12,15,21,25,27,35,36,39,48,52},编程将30插入数组,使a仍保持有序。
PrivateSub Form_load()
Dima(), i%, k%, x%, n%
a =Array(1, 4, 7, 9, 12, 14, 23, 56)
n =UBound(a)
For i= 0 To n
List1.AddItema(i)
Next i
EndSub
PrivateSub command1_Click()
x =Val(Text1)
For k= 0 To List1.ListCount - 1
If x< Val(List1.List(k)) Then Exit For
Next k
List1.AddItemx, k
EndSub
31、声明一个整型的二维数组a(1 to 4,1 to 4),用随机函数产生各元素,范围介于[1,20]之间,编程将第1行和第3行对应元素交换。
PrivateSub Form_Click()
Dima%(1 To 4, 1 To 4), i%, j%
Print"排序前"
For i= 1 To 4
Forj = 1 To 4
a(i,j) = Int(Rnd * 20 + 1)
PrintTab(j * 4); a(i, j);
Nextj
Next i
Print"排序后"
For j= 1 To 4
t =a(1, j): a(1, j) = a(3, j): a(3, j) = t
Next j
For i= 1 To 4
Forj = 1 To 4
PrintTab(j * 4); a(i, j);
Nextj
Next i
EndSub
32、随机产生15个大写字母,放在字符数组中。提示:c=chr(int(rnd*26+65))
Private Sub Form_Click()
Dim a(1 To 15) As String
For i = 1 To 15
a(i) = Chr(Int(Rnd * 26+ 65))
Print Tab(i * 2); a(i);
Next i
End Sub
33.编写一个过程计算并输出区间[100,1000]内所有素数的和(要求判断素数使用过程(函数或子过程)来实现)。调用该过程。(提示:只能被1 和自身整除的自然数成为素数)
Functionsushu%(ByVal x%)
Dimm%, Tag As Boolean, i%
m= Val(x)
Tag= True
Fori = 2 To m - 1
If(m Mod i) = 0 Then Tag = False
Nexti
IfTag Then sushu = x
EndFunction
PrivateSub Command1_Click()
Dimi%, k%
For i= 100 To 1000
Ifsushu(i) Then List1.AddItem i
Next i
Sum =0
Fork = 0 To List1.ListCount - 1
Sum= Sum + Val(List1.List(k))
Nextk
Label1 = "[100,1000]内所有素数和为:"& Sum
EndSub
34、随机产生10个1~100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。
Private Sub Form_Click()
Dim a(1 To 10) AsInteger, i%, maxa%, mina%, suma%
For i = 1 To 10
a(i) = Int(Rnd * 71 +30)
Next i
mina = a(1)
maxa = a(1)
suma = a(1)
For i = 2 To 10
If a(i) > maxa Thenmaxa = a(i)
If a(i) < mina Thenmina = a(i)
suma = suma + a(i)
Next i
For i = 1 To 10
Print a(i);
Next i
Print "max=";maxa, "min="; mina, "aver="; suma / 10
End Sub
35.编程输出n行杨辉三角形图,n由键盘输入。
PrivateSub Command1_Click()
Dimn%, i%, j%
n =Val(Text1)
Dima%(1 To 1000, 1 To 1000)
For i= 1 To n
a(i,1) = 1
Next i
For i= 1 To n
a(i,i) = 1
Next i
For j= 2 To i - 1
For i= 3 To n
a(i,j) = a(i - 1, j - 1) + a(i - 1, j)
Next i
Picture1.Print;
Next j
Picture1.PrintTab(j * n); a(i, j)
For i= 1 To n
For j= 1 To i
Picture1.Printa(i, j); "";
Next j
Picture1.Print
Next i
EndSub
37、声明一个整型的二维数组a(1 to 4,1 to 4),用随机函数产生各元素,范围介于[1,20]之间,编程将第2行和第4行对应元素交换。
PrivateSub Form_Click()
Dima(0 To 3, 0 To 3), i%, j%, t
For i= 0 To 3
For j = 0 To 3
a(i, j) = Int(Rnd * 21 + 1)
Print Tab(j * 5); a(i, j);
Next j
Next i
For j = 0 To 3
t =a(1, j): a(1, j) = a(3, j): a(3, j) = t
Next j
For i= 0 To 3
For j = 0 To 3
PrintTab(j * 5); a(i, j);
Next j
Next i
EndSub
38、随机产生10个[30,100]内的整数,求最小值及所对应的下标。
PrivateSub Form_click()
Dima(1 To 10) As Integer, zb%, mina%, i%
For i= 1 To 10
a(i) =Int(Rnd * 71 + 30)
Printa(i);
Next i
zb = 1
mina = a(1)
For i= 2 To 10
Ifmina > a(i) Then mina = a(i): zb = i
Next i
Print"min="; mina, "zb="; zb
EndSub
39、编写一个判断素数的通用过程(函数或子程序)。调用该过程,计算并输出区间[1000,1100]内所有素数的和。(提示:只能被1和自身整除的自然数称为素数。)
PrivateSub Picture1_Click()
Dimi%, avera
avera= 0
For i= 1000 To 1100
If ss(i)<> 0 Then Print ss(i)
avera= avera + ss(i)
Next i
Picture1.Printavera
EndSub
Functionss(n) As Integer
Dimi%, tag As Boolean
tag =True
For i= 3 To n / 2
If (nMod i) = 0 Then tag = False
Next i
If tagThen ss = n
EndFunction
40.编一子过程Procmin(a(),amin),求一维数组中a的最小值amin.
(随机产生10个200-400之间的数,并显示数组各元素;调用子函数,显示最小值)
PrivateSub Form_Click()
Dima(1 To 10), amin, i%
For i= 1 To 10
a(i) =Int(Rnd * 200 + 200)
Printa(i);
Next i
Calls(a(), amin)
Print"min="; amin
EndSub
Subs(b(), min)
Dim i%
min =b(LBound(b))
For i= LBound(b) + 1 To UBound(b)
Ifb(i) < min Then min = b(i)
Next i
EndSub
41:.编一冒泡程序,对已知整数按递减次序排列,用子过程
Subsort(a())
Dimimin%, i%, j%
For i= 0 To UBound(a) - 1
Forj = 0 To UBound(a) - 1 - i
Ifa(j+1) > a(j ) Then
t= a(j): a(j) = a(j + 1): a(j + 1) = t
EndIf
Nextj
Nexti
EndSub
PrivateSub Form_Click()
Dimb(), i%
b =Array(8, 9, 4, 2, 6)
Callsort(b())
Fori = 0 To UBound(b)
Printb(i);
Nexti
EndSub
43.用选择排序法子过程对已知的若干整数按递增次序排列
Subsort(a())
Dimimin%, i%, j%
For i= 0 To UBound(a) - 1
imin =i
For j= i + 1 To UBound(a)
Ifa(j) < a(imin) Then imin = j
Next j
t =a(i): a(i) = a(imin): a(imin) = t
Next i
EndSub
PrivateSub Form_Click()
Dimb(), i%
b =Array(8, 9, 4, 2, 6)
Callsort(b())
For i = 0 To UBound(b)
Print b(i);
Next i
EndSub
45.编一冒泡程序,对已知整数按递增次序排列,用子过程
Subsort(a())
Dimimin%, i%, j%
For i= 0 To UBound(a) - 1
Forj = 0 To UBound(a) - 1 - i
Ifa(j) > a(j + 1) Then
t= a(j): a(j) = a(j + 1): a(j + 1) = t
EndIf
Nextj
Next i
EndSub
PrivateSub Form_Click()
Dimb(), i%
b =Array(8, 9, 4, 2, 6)
Callsort(b())
Fori = 0 To UBound(b)
Printb(i);
Nexti
EndSub
还没有评论,来说两句吧...