vb试卷答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<一>界面设计
1、以下有关对象属性的说法中正确的是D 。
A、对象所有的属性都罗列在属性窗口列表中B、不同对象不可能有同名属性
C、不同对象的同名属性取值一定相同
D、对象的某些属性即可在属性窗口设置,也可以通过属性代码设置或改变
2、有程序代码:Text1.Text=”Visual Basic”其中的Text1、Text和”Visual Basic”分别代表
C 。
A、对象、值、属性
B、对象、方法、属性
C、对象、属性、值
D、属性、对象、值
3、一个对象可以执行的动作与可被对象识别的动作分别称为B 。
A、事件,方法B、方法,事件C、属性,方法D、过程,事件
4、Visual Basic是一种面向D 的程序设计语言。
A、过程
B、用户
C、方法
D、对象5、一只白色的足球踢进球门,则白色、足球、踢、进球门是B 。
A、属性、对象、方法、事件B、属性、对象、事件、方法C、对象、属性、方法、事件D、对象、属性、事件、方法6、Visual Basic是用于开发B 环境下的应用程序的工具。
A、DOS B、Windows C、DOS和Windows D、UNIX
7、一个可执行的Visual Basic中应用程序至少要包括一个C 。
A、标准模块B、类模块C、窗体模块D、辅助模块8、在Visual Basic
最基本的对象是B ,它是应用程序的基石。
A、标签B、窗体C、文本框D、命令按钮
9、如果要在两个菜单命令项之间加一条分隔线,可在标题文本框中键入A 。
A、- B、+ C、& D、#
10、在使用菜单编辑器创建菜单时,可在菜单名称中某字母前插入B 符号,那么在运行程序时按Alt键和该字母键就可打开该命令菜单。
A、下划线
B、&
C、$
D、@
11、在窗体Form1的Click事件过程中有以下语句:
Label1.Caption=”visual basic”
若本语句执行前,标签控件的名称属性和Caption属性取缺省值,则标签控件的名称属性和Caption 属性在执行本语句前的取值分别为 C 。
A、Label, Label B 、Label, Caption C、Label1, Label1 D、Caption, Label 12、同上题,该语句执行后,标签控件的名称属性和caption属性取值分别为B 。
A、Label, visual basic
B、Label1, visual basic
C、Label1, caption
D、Label1, label1
13、如果在窗体上有命令按钮OK,在代码编辑窗口有与之对应的CmdOK_Click()事件,则命令按钮控件的名称属性和Caption属性分别
为C 。
A、OK、Cmd
B、Cmd、OK
C、CmdOK、OK
D、OK、CmdOK
14、窗体Form1的名称属性是frm,它的Load事件过程名是A 。
A、Form_Load
B、Form1_Load
C、frm_Load
D、Me_Load 15、
用窗体的C__属性来设置窗体的标题。
第1页
A、Style
B、Text
C、Caption
D、Name
16、多窗体程序有多个窗体组成。
在缺省情况下,VB在执行程序时,总是把B 指定为启动窗体。
A、不包含任何控件的窗体
B、设计时的第一个窗体
C、命名为Frm1的窗体
D、包含控件最多的窗体17、Visual Basic程序设计时常用的Print、Cls属于C 。
A、属性B、打印字库C、方法D、事件
18、单选按钮(OptionButton)用于一组互斥的选项中。
若一个应用程序包含多组互斥条件,可在不同的D 中安排适当的单选按钮,即可实现。
A、框架控件(Frame)或图象控件(Image) B、组合框(ComboBox)或图象控件(Image)
C、组合框(ComboBox)或图片框(PictureBox)
D、框架控件(Frame)或图片框(PictureBox)
19、在程序中可以通过复选框和单选按钮的B 属性值来判断它们的当前状态它。
A、Caption B、Value C、Checked D、Selected 20、使用B 方法可将新的列表项添加到一个列表框中。
A、Print
B、AddItem
C、Clear
D、RemoveItem 21、在以下有关对象属性的叙述中,不正确的是C 。
A、一个对象的属性可分为外观、行为等若干类。
B、不同属性可能具有不同的数据类型。
C、一个对象的所有属性都可在属性窗口的列表中进行设置。
D、属性窗口中的属性列表既可按字母序也可按类别排列。
22、下列语句中,不能正确执行的是D 。
A、If Option1.Value Then
B、If Option1.Value = True Then
C、Check1.Value = 0
D、Check1.Value = True
23、在以下有关对象属性的叙述中错误的是D 。
A、所有对象都
具有Name 属性。
B、只能在执行时设置或改变的属性为执行时属性。
C、对象的某些属性只能在设计时设定,不能使用代码改变。
D、Enabled属性值设为False的控件对象在窗体上将不可见。
24、以下使用方法的语句中,正确的是A 。
A、List1.Clear
B、Form1.Clear
C、Combo1.Cls
D、Picture1.Clear 25、以下所列的7个控件中,具有Caption属性的有A 个。
PictureBox Frame OptionButton ListBox TextBox Form DriveListBox A、3 B、4 C、2 D、5 26、以下使用方法的代码中,正确的是C 。
A、Label1.SetFocus B、Form1.Clear C、Text1.SetFocus D、Combo1.Cls
27、放置控件到窗体中的最迅速的方法是___A_____ A、双击工具箱中的控件B、单击工具箱中的控件
C、拖动鼠标
D、单击工具箱中的控件并拖动鼠标28、Image 控件加载图片后的尺寸____D_______A、比图片大B、比图片小C、与图片大小不同D、与图片大小相同29、设有一个命令按钮,若要实现按回车键等同按此键,应设置其___C______
A、Cancel属性设为True
B、Cancel属性设为False
C、Default属性设为True
D、Default属性设为False 30、下列___C_____ 不是列表框的方法
A、AddItem
B、Clear
C、Print
D、RemoveItem
31、要想在一个文本框中显示多行内容,应在界面设计时对下列哪一个属性进行设置C 。
A、Text B、Font C、Multiline D、Alignment 32、不论何种控件都具有的属性是A
A、Name
B、Caption
C、Text
D、Forecolor 33、程序运行时,系统自动执行启动的是窗体的A 事件。
A、Load
B、Unload
C、Click
D、Gotfocus 34、在VB集成环境中创建VB应用程序时,除了工具箱窗口、属性窗口、窗体中的窗口外,还有是必不可少的。
A、窗体布局窗口
B、立即窗口
C、代码窗口
D、监视窗口35、当移动控件,重新设定其尺寸时,C 属性会自动改变。
A、Click Change
B、Name Caption
C、Top Left
D、Cancel Default
36、当用户单击命令按钮时,B 属性可以使得命令按钮对激发事件无效。
A、Name
B、Enable
C、Default
D、Cancel
37、如果单击一个当前没有被选中的复选框,其他已被选中的复选框会处于D 状态。
A、不选中
B、不显示
C、禁止
D、选中38、计时器控件每次经历一个固定的时间间隔就会B 。
A、修改属性
B、触发事件
C、建立窗体
D、显示图片39、菜单编辑器通过A 来确定某个菜单栏选项的子菜单。
A、缩进
B、编号
C、复选框
D、下箭头40、在菜单过程中使用的事件是利用鼠标C 菜单条来实现的。
A、拖动
B、双击
C、单击
D、移动
41、当一个PictureBox控件的AutoSize属性为True时,在该控件中载入一个比控件的高度与宽度都大的图片时,图片的大小与控件的大小相比是C 。
A、大B、小C、相等D、未知42、以下四个说法中不正确的是B 。
A、可以通过双击工具箱中的控件,将控件加入窗体上
B、VB的所有基本控件都可以改变大小
C、控件的工具箱中可以添加新的控件
D、在窗体上选中控件,按[DEL]键可以删除该控件
43、若要将水平滚动条的最小值设为0,最大值设为255,应对其D 属性进行设置。
A、Left 和Top B、Width 和Height C、SmallChange 和LargeChange D、Min 和Max
44、当某一按钮的B 属性设置为False时,该按钮为灰白显示。
A、Visible B、Enable C、BackColor D、Default 45、在下列控件中,D 控件不能改变大小。
A、TextBox
B、Label
C、Frame
D、Timer 二、填空题:
第2页
1、复选框为灰色,代表不可用,其Value值为2
2、窗体Form1的名称属性是frm,它的Load事件过程名是
Form_Load 3、要改变一个窗体的标题,应设置其Caption 属性为相应的值
4、计时器控件可以设置时间间隔,具体应设置Inteval 属性值,其计数单位为毫秒。
5、计时器控件没有(有或没有)方法,可以响应的事件仅有Timer事件。
6、列表框的ListIndex属性值为最后选中的列表项序号,第一个列表项的序号为0 ,如
果未选任何项目,则其值为-1 。
7、List1.Text代表的是名称为List1的列表框的列表项正文,其值为当前选项中的文本,它
与
List1.List(List1.ListIndex) 相同。
8、在对列表框进行列表项的添加时,使用AddItem 方法,其中可以指定要插入的位置序
号,若不指定插入位置,则插入到列表最后。
9、Cls方法适用于窗体和图片框的清除,若是对列表框和组合框进行清空则使用
Clear 方法。
10、若在程序运行时想直接按回车键或者按[ESC]键等同于单击命令按钮,则应该设置命令
按钮的Default 或Cancel 属性为TRUE 。
11、在程序代码中,使用方法Hide 和Show 可以隐藏或显示窗体。
<二>程序设计基础
一、选择题
1、表达式2*3^2+2*8/4+3^2的值为B 。
A、35 B、31 C、49 D、41
2、如果x是一个正实数,对x的第3位小数四舍五入的表达式是B
A、0.01*Int(x+0.005)
B、0.01*Int(100*(x+0.005))
C、
0.01*Int(100*(x+0.05)) D、0.01*Int(x+0.05) 3、数学式子sin30°写成VB表达式是D
A、Sin30
B、Sin(30)
C、SIN(30°)
D、Sin(30*3.14/180) 4、下列哪个符号不能作为VB中的变量名?C
A、ABCabc
B、b1234
C、28wed
D、Cmd
5、要强制显示声明变量,可在窗模块或标准模块的声明段中加入语句B A、Option Base0 B、Option Explicit C、Option Base1 D、Option Compare
6、下面D 不是字符串常量A、“你好” B、“ ” C、“True”
D、#False# 7、表达式Int(8*Sqr(48)*10^(-2)*10+0.5)/10的值是B A、.48 B、.6 C、.5 D、.05 8、表达式Val(“.123E2CD”)的值是B
A、.123
B、12.3
C、0
D、.123E2CD
9、Visual Basic逻辑运算符Xor ,Or,Eqv,And中,级别最高的运算符是D A、Xor B、Or C、Eqv D、And 10、表达试X+1>X是D
A、算术表达式
B、非法表达式
C、字符串表达式
D、关系表达
11、下列符号常量的声明中,C 是不合法的。
A、Const a As single =1.1
B、Const a As Integer =″12″
C、Const a As Double =Sin(1)
D、Const a =″OK″ 12、下列叙述中不正确的是C A、变量名的第一个字符必须是字母B、变量名的长度不超过255个字符
C、变量名可以包含小数点或者内嵌的类型声明字符
D、变量名不能使用关键字13、不能正确表示条件“两个整型变量A和B之一为0,但不能同时为0”的布尔表达式是
25、函数UCase(MID(“visual basic”,8,8))的值为D A、Visual B、basic
C、VISUAL
D、BASIC 26、表达式25.28 Mod 6.99的值是C C、1 B、
5 C、4 D、出错27、下面表达式中,A 的运算结果与其他三个不同。
A、Exp(-3.5)
B、Int(-3.5)+0.5
C、- Abs(-3.5)
D、Sgn(-3.5)-2.5 28、Int(100*Rnd(1))产生的随机整数的闭区间是A A、[0,99] B [1,100] C[0,100] D[1 ,99] 29、将任意一个正的两位数N的个位数与十位数对换的表达式为A D A、A*B=0 And A<>B B、(A=0 Or B=0) And A<>B
C、A=0 And b<>0 Or A<>0 And B=0
D、(A=0 Or B=0) Or (A<>0 Or B<>0) 14、在一个语句行内写多条语句时,语句之间应该用D 分隔。
A、逗号
B、分号
C、顿号
D、冒号15、表达式Str(Len(“123”))+Str(77.7)的值为B (∪表示空格)A、377.7 B、∪3∪77.7 C、80.7 D、12377.7
16、表达式(-1)*Sgn(-100+Int(Rnd*100))的值是B
A、0
B、1
C、-1
D、随机数17、\、/、Mod、*四个算术运算符号中,优先级最低的是__________ A、\ B、/ C、Mod D、* 18、下列C 是日期型常量。
A、“2/1/01” B、2/1/02 C、#2/1/02# D、{2/1/02} 19、代数式
a对应的Visual Basic表达式是D
c b
d
A、a/b+c/d
B、a/(b+c)/d
c、(a/b+c)/d D、a/(b+c/d)
220、代数式
t)3-πsin(
B⨯对应的Visual Basic表达式是C A
A、(Sin(3.14159-t)^(2/3)/(A*B)
B、Sin(pi-t)^(2/3)/A*B
C、
Sin(3.14159-t)^(2/3)/(A*B) D、(Sin(π-t)^(2/3)/(A*B)
21、代数式exSin(300
)2x/(x+y)lnx对应的Visual Basic的表达式是C A、
E^X*Sin(30*3.14/180)*2*X/X+Y*Log(X) B、
Exp(X)*Sin(30)*2*X/(X+Y)*Ln(X)
C、Exp(X)*Sin(30*3.14/180)*2*X/(X+Y)*Log(X)
D、
Exp(X)*Sin(30*3.14/180)*2*X/(X+Y)*Ln(X) 22、函数
Len(Str(Val(“123.4”)))的值为C A、11 B、5 C、6 D、8 23、设
A=“12345678”,则表达式Val(Left(A,4)+Mid(A,4,2))的值为B A、123456 B、123445 C、8 D、6 24、函数InStr(“VB程序设计教程”,”程序”)的值为C A、1 B、2 C、3 D、4
A、(N-Int(N/10)*10)*10+Int(n/10)
B、N-Int(N)/10*10+Int(N)/10
C、Int(N/10)+(N-Int(N/10))
D、(N-Int(N/10))*10+Int(N/10+Int(N/10)) 30、产生[10,37]之间的随机整数Visual Basic表达是B A、Int(27*Rnd(1))+10 B、
Int(28*Rnd(1))+10 C、Int(27*Rnd(1))+11 D、Int(28*Rnd(1))+11
17、设C=“A”,写出下列布尔表达式的值。
(1)C>=”0”And C<”9” Or C>=”A”And C<=”Z” TRUE (2)
C<=”0”And C>=”9”Or C>=”A”And C<=”Z” TRUE (3)C>=”0”And
C=”9”And C>=”A”AndC<=”Z” FALSE (4)C>=”0”Or C<=”9”And
C>=”A” Or C<=”Z” TRUE 18、设A=2,B=3,C=4,D=5,写出下列布尔表达式的值。
(1)A>B And C<=D Or 2*A>C FALSE
(2)3>2*B Or A=C And B<>C Or C>D FALSE (3)Not A<=C Or 4*C=B^2 And B<>A+C FALSE
19、若A=20,B=80,C=70,D=30,则表达式A+B>160 Or(B*C>200 And Not D>60)的值是TRUE 20、设A=2,B=-2,则表达式A/2+1>B+5 Or
B*(-2)+6的值是10 21、写出下面Format函数的值:
(1)Format(5459.4,”# #,# # 0.00”)值为:”5,459.40” (2)Format(334.9,“####“)值为:“335” (3)Format(0.6725,“0.00”)值为:“0.67” (4)Format(0.6725,“#.00”)值为:“.67”
<三>分支结构习题
一、选择题
1、有如下程序:
Private Sub Command1_Click() x = -5
s = InputBox("input value") Select Case x
Case Is > 0 y = x + 1
Case Is = 0 y = x + 2 Case Else y = x + 3 End Select Print x; y End Sub 假设运行时从键盘上输入-5,输出结果是A
A、-5 -2
B、-5 -4
C、-5 -3
D、-5 -5 2、下列程序段的执行结果是B X = 2 Y = 1
If X * Y < 1 Then Y = Y - 1 Else Y = -1 Print Y - X > 0
A、True
B、False
C、-1
D、1
3、关于语句If x=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为关系表达式
4、Select case x 语句结构中,测试项可以有三种形式,以下使用正确的是:A A、Case 20>is B、Case x<=8 ,10 to 25 C、Case is>9 and is<25
D、Case is>x 二、填空题
1、读程序,单击窗体后,在窗体上显示的内容为Private Sub Form_Click() x = 1 t = 1
Select Case t Case Is > 0 y = x + 1 Case Is = 0 y = x + 2 Case Else y = x + 3 End Select Print x; y
End Sub
2、下面的程序输入X的值,按以下公式求Y的值。
-100≤X<0
0≤X≤100 400 100<X≤200
x = Val(text1.Text) Select Case x
Case Is<-100,Is>200 Print "x<-100 or x>200" Case Is<0 y = 100 - x
Case Is<=100 y = 100 + x Case Else y = 400 End Select text2.Text = y End Sub
3、有如下程序段,写出运行后的输出结果为16 Private Sub command1_click() a = 1: b = 2: c = 3
a= a + b: b = b + a: c = b + a If a <> 3 Or b <> 3 Then
a =
b - a: b =
c - a: c = b + a En
d If
Print a + b + c End Sub
4、判断某一年是否是闰年,闰年的条件是年份可以被4整除,却不可被100整除或可以被400
整除。
要求用户从键盘上任意输入一个年份,判断后用消息框显示结果,如输入1996,应在消息框中显示“1996是闰年”的提示。
程序如下:Private Sub Form_Click() Dim n As Integer
n = Val(InputBox(“请输入一个年份”)
If n Mod 4=0 And n Mod 100<>0 Or n Mod 400=0 Then MsgBox n & "是闰年" Else
MsgBox n & "不是闰年" End If End Sub
5、任意输入三个数,将其按从小到大的顺序输出。
提示:这一题的思路是对输入的三个数两两比较,比如将三个数分别保存在变量a,b,c中,将a和b、c分别进行比较,如果a比b或c大,则交换a和b或c的值,这样在a中就保存三个数中的最小数,再将b 和c进行比较,如果b>c,则交换b与c的值,让c中保存最大数,b 中保存较大数,a中保存最小数,最后,a、b和c的顺序就是从小到大的顺序。
所以这一题实际上是变量交换算法的应用。
程序如下:Private Sub Form_Click()
Dim a As Integer, b As Integer, c As Integer Dim temp As Integer ‘定义中间变量a = InputBox("输入第一个数")
b = InputBox("输入第二个数")
c = InputBox("输入第三个数")
Print “初始值:”;a; b; c If a > b Then
End If
If Then temp = a: a = c: c = temp End If
If Then temp = b: b = c: c = temp End If
Print “排序后:”;a; b; c End Sub
6、要产生如图1所示输入函数对话框的界面
图1 图2 请填空:x= InputBox(“输入检测的数据”,”数据检测”) 若希望在录入时自动显示初始值为1,则该语句应写成:
x= InputBox(“输入检测的数据”,”数据检测”,”1”) 7、填空,使程序运行时显示如图2所示的信息提示框:
Msgbox “恭喜你,登录成功!”,vbOkOnly+ vbExclamation,”登录信息”
8、运行下列程序后,单击窗体后在窗体上显示的结果是-3 3 。
Private Sub Form_Click()
Dim x As Integer ,y As Integer
x=5 y=-20
If Not x>0 Then x=y-3 Else
y=x+3 End If
Print x-y , y-x End sub
<四>循环结构
1、以下B 是正确的For…Next结构。
A、For x=1 To Step l0
B、For x=3 To -3 Step -3 … … Next x Next x
C、For 1 To 10
D、For x=3 To 10 Step 3 … … Next Next y
2、下列循环能正常结束循环的是C 。
A、i=5 B、i=1 Do Do
第5页
i=i+1 i=i+2
Loop Until i<0 Loop Until i=10 C、i=10 D、i=6 Do Do i=i+1 i=i-2 Loop Until i>0 Loop Until i=1 3、下面程序段的运行结果为C 。
For i=3 To 1 Step -1 Print Spc(5-i);For j=1 To 2*i-1 Print "*";Next j Print Next i
A、*
B、*****
C、*****
D、***** *** *** *** *** ***** * * *
4、下面__B___程序段不能分别正确显示1!、2!、3!、4!的值A、For i=1 To 4 B、For i=1 To 4 n=1 For j=1 To i For j=1 To i n=1 n=n*j n=n*j Next j
Next j Print n Print n Next i Next i C、n=1 D、n=l For j=1 To 4 j=1 n=n*j Do While j<=4 Print n n=n*j Next j Print n j=j+1 Loop 5、执行以下语句后,a的值为__C___ Dim a As Integer a = 1
Do Until a = 100 a = a + 2 Loop
A、99
B、100
C、溢出
D、101 6、代码For v=20 To 10 Step -2 print v Next v
的循环体将执行__B____次、
A、5次
B、6次
C、10次
D、0次
7、有程序段如下:
For i=1 to 3
For j=5 to 1 step –1 Print i*j Next j Next i
其中“Print i*j”语句执行的次数为:__A______ A、15 B、16 C、17
D、18
8、下面程序运行后,单击command1后屏幕显示是___A______。
i = 1
Do While i <= 100
If i Mod 10 <> 0 Then s = s + i i = i + 1 Else
i = i + 1 End If Loop Private sub command1_click() For I=1 to 4
If I>3 then exit for Next I
For j= 1 to 6 Next j Print I,j End sub
A、4 7
B、5 6
C、4 6 9、下列程序段的执行结果为:______B_____ a = "ABBACDDCBA" For i = 6 To 2 Step -2 x = Mid(a, i, i) y = Left(a, i) z = Right(a, i) z = x & y & z Next i Print z
A、ABA
B、BBABBA
C、AABAAB 10、下列程序段的执行结果为__D____ x = 6
For k = 1 To 10 Step -2 x = x + k Next k
Print k; x
A、-1 6
B、-1 16
C、11 31
D、1 6 11、运行如下程序后,输出结果为__B____ a = 0
For j = 1 To 20 Step 2 a = a + j \ 5 Next j Print a
A、12
B、16
C、40
D、100 12、运行如下程序后,输出结果为__D____ s = 0
D、5 7 D、ABBABA Print s
A、4050
B、5050
C、5000
D、4500
13、如果依次输入75,55,45,80,30,25,40,15,20,5,下列程序段的执行结果为__A___ Dim c As Integer, k As Integer, d As Integer c = 70 For k = 11 To 20
x = InputBox("输入X的数值:") If x < c Then
d = d + x: c = x Else
d = d + c End If Next k Print d
A、330
B、335
C、390
D、485 14、下列程序段的执行结果为__C___ For m = 1 To 4 a = 0
For j = 1 To 5 a = 1
For k = 1 To 6 a = a + 3 Next k Next j Next m Print a
A、18
B、91
C、19
D、432 15、下列程序段的执行结果为_B____ Dim a(3, 3) As Integer For j = 1 To 3 For k = 1 To 3
a(j, k) = (j - 1) * 3 + k Next k Next j
For j = 2 To 3
For k = 2 To 3 Print a(k, j); Next k Print Next j
A、2 5
B、5 8
C、4 7
D、5 9
3 6 6 9 5 8 6 8 16、下列程序段的执行结果为__D___ j = 0: n = 0 Do While n < 3
j = (j + 1) * (j + 2) n = n + 1 Loop
Print j; n
A、0 1
B、3 3
C、30 4
D、182 3 17、下列程序段的执行结果为__B___ n = 0
For i = 1 To 3
For j = 5 To 1 Step -1 n = n + 1 Next j Next i
Print n; j; i
A、12 0 4
B、15 0 4
C、15 3 1
D、12 3 1 18、下列程序段的执行结果为_A____ Dim a(-5 To 6)
For i = LBound(a, 1) To UBound(a, 1) a(i) = i Next i
Print a(LBound(a, 1)); a(UBound(a, 1))
A、-5 6
B、0 0
C、-5 0
D、0 6 19、有如下程序s = 0 i = 1
Do While i <= 100 s = s + i Loop Print s
运行后的输出结果为___C___
A、5050
B、505
C、死循环,无输出
D、无穷大的数20、有如下程序a = 100 Do
s = s + a
a = a + 1
Loop While a > 120 Print a
运行后的输出结果为__D____
A、100
B、120
C、121
D、101 21、下列程序段的执行结果为_B____ a = 3 b = 50
Do Until a * b < 500 b = b + 25 Loop
Print "b="; b
A、b= 45
B、b= 50
C、b= 55
D、b= 60
22、下述程序段中__C____与其他三个程序段的作用不同。
A、S = 0 i = 0 B、S = 0 Do While i <=100 S = S + i
Do While i < 100 i = i + 1
i = i + 1 Loop
S = S + i C、S = 0
Loop i = 1
Do While i < 100
i = 0 i = i + 1 Do Until i >= 100 S = S + i Loop
i = i + 1
S = S + i
Loop 23、单击命令按钮,下列程序段的执行结果是:_____D____ Private Sub command1_click() Dim a(4, 4) For i = 1 To 4 For j = 1 To 4 a(i, j) = (i - 1) * 3 + j Next j Next i
For i = 3 To 4 For j = 3 To 4 Print a(j, i); Next j Print Next i End Sub
A、6 9
B、7 10
C、8 11
D、9 12
7 10 8 11 9 12 10 13 24、下列程序段的执行结果是__A____ A = 0: B = 1 Do
A = A +
B B = B + 1
Loop While A < 10 Print A; B
A、10 5
B、0 1
C、10 30
D、10 10 二、填空题
1、执行下面的程序段,文本框Text1中显示的是9 Dim i As Integer, j As Integer i = 1 j = 0
Do While i < 20 j = i + j
i = i * (i + 1) Loop
Text1.Text = j
2、设窗体上有一个文本框Text1和命令按钮Command1,单击命令按钮后,文本框中最终显示的是19
Private Sub command1_click()
Dim a(2, 5) As Integer, b(5) As Integer Dim i As Integer Do While i <= 5
a(1, i) = a(1, i) + 2 * i - 1 a(2, i) = a(2, i) + 12 - 2 * i i = i + 1 Loop i = 1 Do While i <= 5
b(i) = a(1, i) + a(2, 6 - i) Text1.Text = b(i) i = i + 1 Loop End Sub
3、下列程序段的执行结果为:i= 7 a= 11
i = 4 a = 5 Do
i = i + 1 a = a + 2
Loop Until i >= 7
Print "i="; i; "a="; a
4、下列程序段的执行结果是:33 Dim a(10) As Integer, p(3) As Integer k = 5
For i = 1 To 10 a(i) = i Next i
For i = 1 To 3 p(i) = a(i * i) Next i
For i = 1 To 3
k = k + p(i) * 2 Next i Print k
5、下面的事件过程从文本框TxtInput中读入一个正整数,计算从1到该数之间(包括1与该数)所有正整数之和,结果在文本框TxtOutput 中显示,完善程序填空。
Private Sub Command1_Click() Dim i As Integer, x As Integer Dim s As Integer Do
x = Val(TxtInput.Text) If x <= 0 Then
MsgBox "必须是正整数" TxtInput.Text = "" TxtInput.SetFocus Exit Sub End If
Loop Until x > 0 i = 1 s = 0 Do
s = s + i i = i + 1
Loop Until i > x TxtOutput、Text = Str(s) End Sub
6、下面程序段中,k循环共执行3 次,在窗体上显示的结果为5 15 Private Sub Command1_Click() Dim b As Integer, k As Integer b = 1 For k = 1 To 5 b = b * k
If b >= 15 Then Exit For
Else
k = k + 1 End If Next k Print k, b End Sub
7、阅读下面程序,当单击窗体后,窗体上输出的是4 Private Sub Form_Click()
Dim i As Integer, j As Integer Dim k As Integer
For i = 1 To 10 Step 3 For j = 1 To 10
If j >= 5 Then i = i + 4: Exit For j = j + 1 k = k + 1 Next j
If i > 8 Then Exit For Next i Print k End Sub
8、本程序用于验证一个自然数N的立方等于N个连续的奇数之和。
其中最大的奇数P=N*(N+1)
3
-1。
例如:4=19+17+15+13,最大奇数等于19。
要求用户任意输入一个自然数,比如4,如满足定理,则在窗体上按如下格式输出:4的立方64=19+17+15+13,否则提示“定理不成立!”。
Private Sub Form_Click() Dim n As Integer, num As Long, p As Integer Dim s As Long, i As Integer, j As Integer
n = Val(InputBox("请输入一个自然数")) num = n * n * n p = n * (n + 1) - 1 For i = 1 To n s = s + p
p = p - 2 Next i
p = n * (n + 1) - 1 If s = num Then
Print n; "的立方"; num; "="; For j = 1 To n - 1 Print p; "+"; p = p - 2 Next j Print p Else
MsgBox "定理不成立!" End If
第9页
End Sub
9、随机产生20个1到100之间的正整数,去掉一个最大数和最小数,然后取其平均数。
Private Sub Form_Click()
Dim s As Integer, i As Integer
Dim k As Integer, max As Integer, min As Integer Randomize
k = Int(Rnd * 100) + 1 max = k: min = k s = k
For i = 1 To 19
k = Int(Rnd * 100) + 1 s = s + k
If k > max Then max = k If k < min Then min = k Next i
s = s - max - min Print "average="; s / 18 End Sub
10、输入正整数N,求最大的K,使1*1+2*2+……+K*K<N成立。
比如:输入5000,在窗体上输出1*1+2*2+……+K*K<5000的最大K值为24。
Private Sub Form_Click()
Dim k As Integer, n As Integer Dim sum As Integer
n = InputBox("输入正整数:")
If n <= 0 Or Not IsNumeric(n) Then MsgBox "必须输入正整数" Exit Sub End If k = 1
sum = 1 Do
k = k + 1
sum = sum + k * k Loop Until sum > n
Print "1*1+2*2+……+K*K<"; n; "的最大K值为"; k - 1 End Sub
11、输入10个1到1000之间的整数,并判断其是否为同构数。
所谓同构数是该数的平方数的最后几位与该数相等。
如25的平方为625,25是同构数。
Private Sub Form_Click()
Dim m As String, p As String Dim n As Integer, i As Integer For i = 1
To 10
m = InputBox("输入正整数:") n = Len(m)
p = CStr(Val(m) * Val(m)) If Right(P,Len(n))=m Then Print m & "是同构数" Else
Print m & "不是同构数" End If Next i End Sub
12、下面的程序是找出两个正整数a和b,使a<b、a+b=99、a和b 的最大公约数是3的倍数,并Print i, k End Sub
14、下面程序的功能是统计随机生成的十个两位正整数中偶数和奇数的个数,并求出偶数和奇数各自的总和。
Private Sub Form_click()
Dim x As Integer, s1 As Integer, s2 As Integer Dim n1 As Integer, n2 As Integer, i As Integer Randomize
For i = 1 To 10
统计满足条件数对的个数。
Private Sub Form_Click()
Dim a As Integer, b As Integer, c As Integer Dim n As Integer n = 0
For a = 1 To 49 b = 99 - a c = gcd(a, b)
If c Mod 3 = 0 Then n = n + 1 Print a, b, c End If Next a Print n End Sub Private Function gcd(ByVal a As Integer, ByVal b As Integer) As Integer Dim c As Integer Do
c = a Mo
d b a = b b = c
Loop Until c = 0 gcd = a End Function
13、给出下面程序段的输出结果是9 36 Private Sub
Command1_Click()
Dim i As Integer, j As Integer, k As Integer k = 0
For i = 0 To 10 Step 3 For j = 1 To 10
If j > 5 Then k = k + 4: Exit For k = k + 1 Next j
If i > 8 Then Exit For Next i
x = Int(Rnd * 90) + 10 Print x;
If x Mod 2 = 0 Then n2 = n2 + 1 :s2 = s2 + x Else
n1 = n1 + 1 s1 = s1 + x End If Next i Print
Print "奇数个数="; n1, "偶数个数="; n2 End Sub
15、在文本框Text1中输入十进制数,单击命令按钮后在文本框Text2中显示对应的十六进制数。
Private Sub Command1_Click() Dim m As Integer, str As String, r As Integer m = Val(Text1.Text) Do While m > 0 r = m Mod 16
If r < 10 Then str = r & str Else
str = Chr(Asc("A") + r - 10) & str End If
m = m \ 16 Loop
Text2 = str End Sub
17、在文本框Text1中输入十六进制数,单击命令按钮后在文本框Text2中显示对应的十进制数。
Private Sub Command1_Click()
Dim i As Integer, n As Integer, p As Integer Dim s As Integer, str1 As String, ch As String str1 = Text1.Text n = Len(str1)
p = 16 ^ (n - 1) For i = 1 To n
ch = Mid(str1, i, 1)
If ch >= "A" And ch <= "Z" Then
s = s + Val(Asc(ch) - Asc("A") + 10) * p Else
s = s + Val(ch) * p End If
p = p \ 16 Next i
Text2.Text = str(s) End Sub
<五>数组
一、选择题
1、执行以下Command1的Click事件过程在窗体上显示B Option Base 0
Private Sub Command1_Click( ) Dim a
a=Array("a","b","c","d","e","f","g") Print a⑴;a⑶;a⑸End Sub
A、abc
B、bdf
C、ace
D、出错2、使用语句Dim A As Integer声明数组A之后,以下说法正确的有A A、A数组中的所有元素为0 B、A 数组中的所有元素值不确定C、A数组中的所有元素值为Empty D、A 数组中的所有元素为1
3、在窗体上用复制、粘贴的方法建立了一个命令按钮数组,数组名为M1。
设窗体Form1标题为“myform1”,双击控件数组中的第三个按钮,打开代码编辑器,写下如下代码:Private Sub M1_Click(Index As Integer) Form1.Caption=”myform2” End Sub
运行时,单击按钮数组中的第一个按钮,窗体标题为___D_____ A、Form1 B、M1 C、myform1 D、myform2 4、设有数组声明语句:Option Base 1 Dim A(2,-1To1)
以上语句所定义的数组A为____二____维数组,共有____6____个元素,第一维下标从___1_____到___2_____,第二维下标从___-1_____到____1____。
5、设用复制粘贴的方法建立了一个命令按钮数组Command1,以下对该数组的说法错误的是
__B______
A、命令按钮的所有Caption属性都是Command1
B、在代码中访问任意一个命令按钮只需使用名称Command1
C、命令按钮的大小都相同
D、命令按钮共享相同的事件过程6、设有数组声明语句:
Option Basic 0
Dim B(-1To10,2 To 9,20)As Integer 则数组B中共有____C____个元素、
A、1800
B、1848
C、2016
D、2310 7、以下____D____是Visual Basic 合法的数组元素、
A、X[9]
B、X(1+1)
C、X(X(5))
D、X(6) 8、以下说法不正确的是__B______
A、使用ReDim语句可以改变数组的维数
B、使用ReDim语句可以改变数组的类型
C、使用ReDim语句可以改变数组每一维的大小
D、使用ReDim语句可以对数组中的所有元素进行初始化9、下列程序段的执行结果为___C_____ Dim M(2) For I=1 To 2 M(I)=0 Next I K=2
ForI=1 To K For J=1 TO K M(J)=M(I)+1 Print M(K); Next J Next I
A、1 2 2 3
B、1 2 3 4
C、0 2 2 3
D、0 1 2 3 10、下面的数组声明语句中____B____是正确的、
A、Dim A[3,4] As Integer
B、Dim A(3,4) As Integer
C、Dim A[3;4] As Integer
D、Dim A(3;4) As Integer 11、下列程序段的执行结果为
___A_____
Dim M(10) For I=0 To 10 M(I)=2*I Next I
Print M(M(3))
A、12
B、6
C、0
D、4
12、设执行以下程序段时依次输入1,3,5,执行结果为__D______
Dim a(4)As Integer,b(4)As Integer For k=1 to 3
a(K+1)=Val(InputBox(‘请输入数据’:)) b(3-K)=a(K+1) Next k Print
b(K)
A、1
B、3
C、5
D、0 13、下列程序段的执行结果为__C______
Dim M(10),N(10)
I=3
For T=1 To 5 M(T)=T
N(I)=2*I+T Next T
Print N(I);M(I)
A、3 11
B、3 15
C、11 3
D、15 3 14、下列程序段的执行结果为
_____B___________ Dim A(10,10) For I=2 To 4 FoR J=4 To 5 A(I,J)=I*J Next J Next I
Print A(2,5)+A(3,4)+A(4,5)
A、22
B、42
C、32 D15、下列程序段的执行结果为
________C________ Dim X(3,5) For I=1 To 3 For J=1 To 5 X(I, J)=X(I-1, J-1)+I+J Next J Next I
Print x(3,4)
A、2
B、12
C、15 D16、下列程序段的执行结果为_______C_________ Dim M (10) For K=1To 10 M(K)=11-K Next K X=6
Print M(2+M(X))
A、2
B、3
C、4 D17、下列程序段的执行结果为_____D___________ Dim A(10),B(5) For I=1 To 10 A(I)=I Next I
For J=1 To5 B(J)=J*20 Next J
A(5)=B(2)
Print ”A(5)=”;A(5)
、52 、18 、5 A、A(5)=5 B、A(5)=10 C、A(5)=20 D、
A(5)=40 二、填空题
1、定义动态数组需要分两步进行,首先在模块级或过程级定义一个没有下标的数组,然后
再使用Redim 语句定义数组在实际元素个数。
2、设某个程序中要用到一个二维数组,要求数组名为A,类型为字符串类型,第一维下标从1到5,第二维下标从-2到6,则相应的数组声明语句为__Dim A(1 to 5,-2 to 6)As String______________。
3、以下程序段首先按升序输入10个数到数组A中,又输入一个X,如果X在数组A中,则将其从数组中删除,删除后需将后面的数据依次向前移动一个位置。
如果X超过了数组的第1个数或第10个数,则显示“数据超出范围”,如果X不在数组中,则显示“数据没找到”。
Dim A(10) For I=1 To 10
A(I)=Val(InputBox(“请输入A(I):”)) Next i
X=Val(InputBox(“请输入X:”))
If X > A(10) Or X < A(1) Then MsgBox(“数据超出范围“) Else
For I=1 To 10
If X = A(i) Then exit for
Next I
If I<11 Then
For J=I+1 To 10 A(J-1)=A(J) Next K Print End If
4、在界面中,四门功课的成绩由文本框数组Texl1输入,“最高分”﹑“最低分”﹑“平均分”
和“总分”为一个命令按钮数组名为Command 1。
以下程序代码运行时,在输入成绩后,单击按钮数组Command1中的任意一个按钮将在Label5上显示相应的统计方式(最高分﹑最低分﹑平均分﹑总分),而在Text2中显示统计结果。
Private Sub Command1_Click(Index As Integer)
Labe5.Caption= Command1(Index).Caption Select Case Index
Case 0 ´计算最高分y=Val(Text1(0).Text) For I=1 To3
If Text(I).Text>y Then y=Val(Text1(I).Text) Next i
Case 1 ´计算最低分y=Val(TEXT1(0).Text) For I=1 To 3
If Text(I).Text<y Then y=Val(Text1(I).Text) Next I
Case 2ˊ计算平均分y=0
For I=0 To 3
y=y+ Text(I).Text Next I
y= y/4 Case 3ˊ计算总分y=0
For I=0 To3
y= y+ Text(I).Text Next I End Select
Text2.Text= Str(y) End Sub
5、以上程序段首先按降序输入10个数到数组Y的前10个元素中,又输入一个YO插入到数
组Y中,插入YO后Y中的数据仍按降序排列。
Dim Y(1 To 11) For I=1 To10
Y(I)=Val(InpuBox(“请输入Y:”)) Next I
YO=Val(InpuBox(“请输入YO:”)) For I=10 To 1 Step -1
If Y0<Y(I) Then Y(I+1)=YO :Exit For Y(I+1)=Y(I) Next I
Y (I+1) =YO
Text1.Text=” ” For I=1 To 11
Text1.Text= Text1.Text & Str(Y(I)) & ” ” Next I
6、设在窗体上有一个文本框Text1,一个标签数组Label1,共有10个标签,以下程序代实现
在单击任一个标签时将标签的内容添加到文本框现有内容之后。
Private Sub Label1_Click(Index As Integer)
Text1.Text= Text1.Text & Label1(Index).Caption End Sub
7、以下程序代码使用二维数组A表示矩阵,实现单击命令安钮Command1时使矩阵的两条对角
线上的元素值全为1,其余元素值全为0。
Private Sub Command _ Click ( ) Dim A (4,4) For I = 1 To 4 For J = 1 To 4
A ( I,J ) = 0 Next J
A ( I,I ) = 1 A ( I,5-I ) = 1 Next I
For I = 1 To 4 For j = 1 To 4 Print A (i,j); Next j Print Next I End Sub
8、以下程序代码将具有100个元素的数组A按每行10个数的形式赋值给二维数组B、即将A(1)
到A(10)依次赋值给B(1,10),将A(11) 、A(12)依次赋值给B(2,1)到B(2,10)、······,将A(91) 到B(1,10) 到B(10,10)、Private Sub Command1 _ Click ( )
Dim A(1 To 100) As Integer,B (1To10, 1To10) As Integer For I = 1 TO 100 _ A(I) = (Rnd * 5+1 ) Next I
For I = 1 To 10 For J = 1 To 10
B(I,J) = A((I-1)*10+J) Print B (I,J) Next J Print Next I End Sub End Sub
9、下面程序代码实现单击命令按纽Command1时输入如下结果:
1 -1 -1 1 1 -1 1 1 1
Private Sub Command1-Click( ) Dim X(3,3) For I=1 To 3
For J=1 To 3
If I>=J Then X(I,J)=1 If I<J Then X(I,J)=-1 Next J
Next I For I=1 To 3
For J=1 To 3 Print X(I,J); Next J
Print _ Next I End Sub
10、下面程序代码将任意一组数存入数组,从键盘接收一数据,将其插入数组中,插入的位置也
从键盘接收。
Dim A( )
Private Sub Form_Click( ) N=InputBox(”数据个数:”) N=N+1
Redim A(N)
For I=1 To N – 1
A (I)=Val (InputBox(“原数据:”)) Next I
D= Val(InputBox(“插入的数据:”)) P=Val(InputBox(“插入的位置:”)) Do While P>N Or P<1
MsgBox “位置越界!“
P=Val(InputBox(“插入的位置:”) Loop
For I=N To P+1 Step –1 A(I) =A(I –1) Next I
A(P) = D For I =1 To N
Text1.Text =Text1.Text & Str(A(1)) & “ ” NextI End Sub
11、下列程序代码读人N 个数,用比较交换法对这N个数按从大到小的顺序排列,并在文本框
Text1中输入排序结果、Dim A( )
Private Sub Command1 _ Click( ) N = Val(InputBox("请输入N:”)) Redim A(N)
For I=1 To N
A(I)= Val(InputBox("请输入A( 1) :”, , I) ) Next I
Text1.Text =”” For I = 1 To N – 1
For J = I+1 To N
If A( I) < A(J) Then T = A(I)
A(I) = A(J) A(J )= T End If Next J
Text1.Text =Text1.Text & Str(A)) & “ ” Next I
Text1.Text =Text1.Text & Str(A(N)) End Sub
12、以下程序代码将整型动态数组X声明为具有20个元素的数组,并给数组的所有元素赋值1。
Dim X() As Integer Private Sub Command1 _Click Redim X(20) For I = 1 To 20 X (I) = 1 Print X(I) Next I End Sub
13、以下程序段产生100个1~4 之间的随机整数,并进行统计。
数组元素S (I) (I=1,2,3,4)的值
表示等于I的随机数的个数,要求输出如下格式。
S(1)=… S(2)=…
S(3)=… S(4)=…
将程序补充完整。
Dim S(4) As Integer For I=1 to 100
X =Int(Rnd * 4 +1) S(X)=S(X)+1 Next I
For I=1 to 4
Print “S(”& I &”)=” & S(I) Next I
14、以下程序代码生成大小可变的正方形图案,最外圈是第一层,要求每层上用的数字与层数相
同。
Option Base 1
Dim a( ) As Integher
Private Sub Form_Click ( ) n=InputBox(“请输入行数:”)Redim a(n,n) For i = 1 to n ‘i为层数For j = i To n-i+1 For k = i To n-i+1
a(j,k)=i Next k Next j Next i
For i = 1 To n For j = 1 To n Print Tab(j*3);a(i,j); Next j
print Next i End Sub
15、以下程序代码实现单击命令按钮Command1时生成20个(0,100)之间的随机整数,存在数组中,打印数组中大于50的数,并求这些数的和。
Privant Sub Command1_Click()Dim arr(1To 20)For i =1 To 20。