VB程序设计复习题归类.docx
《VB程序设计复习题归类.docx》由会员分享,可在线阅读,更多相关《VB程序设计复习题归类.docx(33页珍藏版)》请在冰豆网上搜索。
![VB程序设计复习题归类.docx](https://file1.bdocx.com/fileroot1/2023-4/28/86f2c1d5-c9f9-4a29-8584-97b0196e994a/86f2c1d5-c9f9-4a29-8584-97b0196e994a1.gif)
VB程序设计复习题归类
《VB程序设计》综合复习资料
一、填空题:
(第一章VisualBasic程序设计概述)
1、VisualBasic是一种面向_对象_的可视化程序设计语言,采取了__事件驱动__的编程机制。
2、在VB中工程文件的扩展名是_Vbp,窗体文件的扩展名是frm_,标准模块文件的扩展名是_bas_。
3、执行“工程”菜单下的部件命令,可选择并添加ActiveX控件。
4、VisualBasic6.0用于开发_WINDOWS环境下的应用程序。
第二章简单的VB程序设计1、设置是否可以用Tab键来选取命令按钮,应该用_Tabstop___属性。
2、一个控件在窗体的位置由__Left___和_top___属性决定,其大小由__height_和_width_属性决定。
3、利用对象的属性setfocus可获得焦点,对于一个对象,只有其visible属性和_enabled__属性为true,才能接受焦点。
4、设置控件背景颜色的属性名称是_backcolor__。
5、所有控件都具有的共同属性是__name__属性。
6、一般情况下,控件有两个属性项的缺省值是相同的,这两个属性项是_name和caption。
7、VB中的每个对象(控件)都有一组特征,这组特征称为_属性_,我们通过修改它可以控制对象的外观和操作。
8、通常情况下,VB中一个工程主要包括如下四个文件:
窗体文件、工程文件、类模块文件和_标准模块文件_文件,后者的扩展名为.Bas,通常由Basic语言编写,是一个可共用的子程序。
9、VB有三种工作模式,分别是设计(Design)模式、_运行模式__和中断(Break)模式。
第三章1、一般可以使用____Const______关键字声明常量。
2、_Variant_类型也称变体类型,是一种通用的、可变的数据类型,它可表示或存储任何一种数据类型。
3、变量的声明分为两种方法:
_隐式声明__和__显示声明__。
、
4、在VB中,用_optionbase_语句设定数组的下界,用ubound_和_lbound语句分别返回数组的上、下界。
5、在代码模块中加入OptionExplicit的目的是_强制变量声明。
6、functionaa(a1asdate,optionala2asboolean)assingle,写出optional命令的作用表示a2是一个可选参数__。
7、在VB中,我们用一个简单的_End__语句就能实现退出程序。
8、生成消息框的命令是_Msgbox_,生成输入框的命令是Inputbox__。
9、通用对话框(commondialog)属activex控件,它可以显示多个标准对话框,包括打开/另存为、字体、打印等对话框,若要显示所有文件,则应设置其属性filter=_*.*__,若要使它显示为打印对话框,则应使用什么方法_、showprint__。
10、从字符串中任意位置截取字符的函数是_Mid()__。
11、语句Forj=3To20Step3使循环体执行了___6___次。
12、对于正在使用的动态数组Arraya(),要增加一个单元,但不能破坏数组内的数据,则应使用语句__redimpreservearraya(ubound(arraya())+1)__。
13、在VisualBasic中声明静态变量的关键字是___static___。
14、表达式10Mod6\4的值为___0___。
15、表达式chr(Asc("a")+5)的值为___f______。
16、VB中使用注释有2种方法,即__rem_和__’______。
17、VB中的数据以四种形式存储:
常量、_变量、数组和记录。
18、为了在VB中存储一个4行5列的二维矩阵,需要定义一个整型的数组,请把数组定义语句补充完整:
DimJuzhen(_1to4,1to5_)asInteger。
19、控件数组由一组相同类型的控件组成,这些控件共用一个相同的控件名,但是每个控件都有一个唯一的下标来区分,我们使用属性_Index__来设置下标。
20、在过程调用中,实现调用过程的实参和被调用过程的形参之间的数据传递有两种方式:
按值传递和_按地址__。
21、为了保证程序中必须对变量的强制性定义,需要在代码模块的声明部分加入_OptionExplicit__语句。
22、分析For……Next循环结构的实例:
Fori=5To30Step2中,循环体一共执行了_13_____次。
23、表达式Mid("UniversityOfPetroleum",8,4)的值为_ityo__。
24、常量分为普通常量和_符号_常量。
25、要将大写字母转换为小写字母,可使用_LCase__函数。
26、不管焦点在哪个控件上,按___ESC__键相当于按了取消按钮。
27、执行“工程”菜单下的_部件__命令,可选择并添加ActiveX控件。
28、断点_是程序中VB停止执行的地方。
29、逻辑常量为True或__False___。
30、使用了_OptionExplicit__的声明后,当程序中使用未经声明的变量时,程序运行时会报错。
31、要将小写字母转换为大写字母,可使用UCase__函数。
32、自字符串N1位开始向右取N2个字符,要使用_Mid__函数。
33、日期常量表示时,用符号___#___将日期型数据括起来。
34、局部变量只能在_过程_中声明和使用。
35、模块级变量的声明关键字是Dim或__private___。
36、函数Abs(x)的功能是_求x的绝对值____。
37、表达式3/6*5的值是_2.5___。
第四章1、向列表框控件添加新项目的方法是__AddItem__。
2、在VB中,最主要的两种对象是_窗体___和__控件___。
3、当窗体启动时可通过StartUpPostion__属性控制窗体位于所有者的中心位置。
4、若要将窗体Form1隐藏起来,则可通过执行代码__form1.hide__来实现。
5、要使装入到列表框中的数据项能自动按字母顺序排序,应设置该控件的___sorted______属性为___ture___。
6、窗体上放置了若干个文本框和命令按钮,当窗体装入后,要将焦点自动定位到文本框Text1上,则在设计时需要将__text1__控件的_tabindex__属性设置为__0____。
7、在标签控件中通过编程使文字换行用的代码是__chr(10)___。
8、设置计时器控件只能触发___timer____事件。
9、设置计时器对象触发事件的时间间隔用__interval___属性。
10、滚动条控件主要支持两个事件,它们是__scroll和change__事件。
11、要使鼠标停留在按钮上显示特殊的鼠标形状,应设置的属性值是_mousepointer_。
12、设某列表框共有10项,按题目要求补齐程序,完成相应的功能。
(1)按下命令按钮Command1时将列表框第8项的内容显示在窗体上:
PrivateSubCommand1_Click()
List.__selected__(7)=True
PrintList1._text_
EndSub
(2)单击列表框某一项时立即将该项打印在窗体上:
PrivateSubList1_Click()
Print___list1.text___
EndSub
(3)按下命令按钮Command1时在窗体上删除第1、3、5、7、9项:
PrivateSubCommand1_Click()
ForI=1To5
List1.__removeitem2*i-1__________
NextI
EndSub
(4)在列表框的每一项之后插入一个新的项:
PrivateSubCommand1_Click()
ForI=1to10
X=InputBox(“请输入插入的第”&I&“项内容”)
List1.AddItem__x,2*i-1__________
NextI
EndSub
13、设在界面上放置了一个滚动条Hscroll1和一个标签控件Label1,要使每次单击滚动条两端箭头时,或单击滚动条滑块与两端箭头之间的空白区域时,标签内容能够反映滚动条的值,补齐以下代码。
PrivateSubHscroll1.___change____()
Label1.Caption=Hscroll1.___value__
EndSub
要使拖动滚动条滑块时标签内容能够反映滚动条的值,补齐以下代码。
PrivateSubHscroll1.__scrol___()
Label1.Caption=Hscroll1.__value____
EndSub
14、列表框(ListBox)用于列出可供选择的项目的列表,用户可以选择一个或多个项目。
它具有几个非常重要的数组属性,其中__List__属性存放了列表框中所有项目的值。
15、菜单项一般由标题、访问键、快捷键和复选标志等构成,通过对相应的属性进行设置可以改变这些项目的状态,其中与复选标志相对应的属性是__Checked_。
16、keydown与keypress事件各有其参数,若需获得用户按下"a"还是"A"需用__keypress___事件。
17、控件组合框组合了文本框和列表框的功能,是VB中一种功能非常强大的选择类控件。
18、若需要将窗体Form2以模态窗口的形式显示出来,可通过执行代码_Form2.Show1__来实现。
19、菜单中的分隔条是一种菜单控件,不响应__Click(或鼠标单击)_事件,不能被选中。
第五章1、文件按存取方式及其组成结构可分为_顺序__文件、随机__文件和、二进制____文件。
2、为了使文件列表框List1和目录列表框Dir1之间能产生同步效果,必须在_dir1的chang__事件过程中加入语句_list1.path=dir1.path__。
3、文件系统控件的作用是向用户显示系统中的文件,方便用户选择,它是一组控件的组合,包括:
驱动器列表框、__目录列表框__和文件列表框。
第六章图形操作1、使用__print__方法可在窗体中进行文本的输出,用_circle__方法可画圆,用_line___方法可画直线。
2、用___loadpicture___函数可加载图形。
3、为了使一个Picture控件能自动根据装入的图片调整大小,应设置该控件的_autosize___属性为True。
第七章面向对象的编程1、类是具有相同性质的对象的__集合_______。
2、语句DIMTEMPASObject的作用是____定义了一个对象类型的变量TEMP_。
第三章VB基本语言
四、读程序题
1、分析以下程序,写出运行结果。
PrivateSubForm_Click()
score=Int(Rnd*10)+80
SelectCasescore
CaseIs<60
A$="F"
Case60To69
A$="D"
Case70To79
A$="C"
Case80To89
A$="B"
CaseElse
A$="A"
EndSelect
PrintA$
EndSub
结果如下:
B
2、读下面的程序,分析其功能,写出运行结果。
在窗体上有一个命令按钮,名称为Command1。
然后编写如下程序:
PrivateSubCommand1_Click()
ForI=1To4
ForJ=0ToI
PrintChr$(65+I);
NextJ
Print
NextI
EndSub
程序运行后,如果单击命令按钮,则在窗体上显示的内容是什么?
结果如下:
BB
CCC
DDDD
EEEEE
3、阅读下面的程序,分析并写出其功能。
Subinsert(a()AsSingle,ByValxAsSingle)
Dimmasinteger,nasinteger
n=1
DoWhilen<20Andx>a(n)
n=n+1
Loop
Form=20-1TonStep–1
a(m+1)=a(m)
Nextm
a(n)=x
EndSub
功能如下:
在20个由小到大排列的数据中插入一个数,插入数据后的数据仍按由小到大的顺序排列。
4、分析以下程序,写出运行结果。
SubsubP(b()AsInteger)
Fori=1To4
b(i)=2*i
Nexti
EndSub
PrivateSubCommandl_Click()
Dima(1To4)AsInteger
a
(1)=5
a
(2)=6
a(3)=7
a(4)=8
subPa()
Fori=1To4
Printa(i)
Nexti
EndSub
运行上面的程序,单击命令按钮,输出结果是什么?
输出结果为:
2
4
6
8
5、分析以下程序,写出运行结果。
Subsele()
DimnasInteger
i=21:
n=3
DoWhilei>n
i=i-n
Loop
Printi
EndSub
输出结果为:
3
6、分析以下程序,写出运行结果。
SubselectPrint()
DimaasInteger
DimbasInteger
DimcasInteger
a=2:
b=5:
c=2
If(a>=b)and(a>=c)or(b>c)Then
Printa
a=a+2
Else
Printb
EndIf
Printa;b;c
EndSub
输出结果为:
2
452
7、分析以下程序,写出运行结果。
Subswap()
DimxasInteger
DimyasInteger
DimzasInteger
x=1:
y=2:
z=0
Printx;y;z
x=x+y
x=x*z
Printx,y,z
EndSub
输出结果为:
120
020
8、分析以下程序,写出运行结果。
SubselectPrint()
DimaasInteger
DimbasInteger
DimcasInteger
a=3:
b=3:
c=2
If(a>=b)and(a>c)ThenPrinta
Printa,b,c
EndSub
输出结果为:
3
332
第四章常用控件与窗体
1、对窗体编写如下代码:
OptionBase1
PrivateSubForm_KeyPress(KeyAsciiAsInteger)
a=Array(237,126,87,48,498)
m1=a
(1)
m2=1
IfKeyAscii=13Then
Fori=2To5
Ifa(i)>mlThen
m1=a(j)
m2=i
EndIf
Nexti
EndIf
Printm1
Printm2
EndSub
程序运行后,按回车键,输出结果是什么?
输出结果为:
498
5
2、阅读下面的程序,写出执行结果。
PrivateSubForm_load()
Form1.show
d=0
Fora=1To2
Forb=1Toa
Forc=bTo5
d=d+1
Nextc
Nextb
Nexta
Printd
EndSub
结果如下:
14
PrivateSubForm_Click()
Dima(10)AsInteger,五、编程题
1、输入一年号,判断它是否是闰年。
界面如下图所示,包括两个标签、一个文本框和一个命令按钮。
提示:
如果此年号能被400整除或者不能被400除尽,也不能被100除尽,但能被4整除,则它是闰年;否则,不是闰年。
1、参考代码如下:
PrivateSubCommand1_Click()
Dimyear,xAsInteger
year=Val(Text1.Text)
IfyearMod400=0Then
Label2.Caption="是闰年"
Else
'下面是嵌套块If语句
IfyearMod4=0AndyearMod100<>0Then
Label2.Caption="是闰年"
Else
Label2.Caption="不是闰年"
EndIf
EndIf
EndSub
2、输入两个正整数m、n,求m和n的最大公约数。
要求建立如下图所示的窗体,其中主要的控件包括:
两个标签(Lable1、Lable2)、两个文本框(Text1、Text2)和一个按钮(Command1)。
2、程序参考代码如下:
PrivateSubCommand1_Click()
Dimm,n,rAsInteger
m=Val(Text1.Text)
n=Val(Text2.Text)
Ifm<0Orn<0Then‘若判断为非法数据,Then子句输出相应信息
Label2.Caption="输入数据有错!
"
Else‘若判断为合法数据,Else子句用辗转相除法求余数
r=mModn
DoWhiler<>0
m=n
n=r
r=mModn
Loop
‘循环结束后n中存放的就是最大公约数,输出n值
Label2.Caption="最大公约数为:
"&n
EndIf
EndSub
3、输入某学生成绩(百分制),若是100≥成绩≥90输出优秀;若是90>成绩≥80输出良好;若是80>成绩≥70输出中等;若是70>成绩≥60输出及格;若是60>成绩≥0,输出不及格;若是其他数则输出error信息。
3、参考代码如下:
PrivateSubCommand1_Click()
DimxAsSingle
x=Val(Text1.Text)
Ifx>100Orx<0Then
Text2.Text="error"
ElseIfx<60Then
Text2.Text="不及格"
ElseIfx<70Then
Text2.Text="及格"
ElseIfx<80Then
Text2.Text="中等"
ElseIfx<90Then
Text2.Text="良好"
Else
Text2.Text="优秀"
EndIf
EndSub
4、在窗体中显示从9号字型到16号字型。
4、参考代码如下:
PrivateSubForm_Load()
DimiAsInteger
Show'使输出可见
Form1.Font="新宋体"
Fori=9To16Step1
Form1.FontSize=i
Printi;"号字型"
Nexti
EndSub
5、在有序序列中插入一个数,使插入后的数列仍然有序(设按由小到大排列)。
5、参考代码如下:
PrivateSubCommand1_Click()
Dima(1To11)AsSingle'定义静态数组a含11个元素
Dimi,jAsInteger
DimnumAsSingle
'给数组元素赋初值,即原始队列
a
(1)=3:
a
(2)=5:
a(3)=7:
a(4)=8:
a(5)=9
a(6)=13:
a(7)=16:
a(8)=19:
a(9)=33
a(10)=38
'输出原始队列
Fori=1To10
Label2.Caption=Label2.Caption&a(i)&","
Nexti
num=Val(Text1.Text)
'把输入的数插入队列中
Fori=10To1Step-1
Ifnuma(i+1)=a(i)'元素后移一个位置
else
a(i+1)=num
ExitFor'退出循环
EndIf
Nexti
'输出新队列
Fori=1To11
Label3.Caption=Label3.Caption&a(i)&","
Nexti
EndSub
6、编程实现二维数组转置。
6、参考代码如下:
OptionBase1
PrivateSubForm_Load()
ConstN=4'常量N决定二维数组大小
Dima(N,N)AsInteger
Dimi,j,TempAsInteger
Show
'数组初始化
Fori=1ToN'For循环i从1变化到N
Forj=1ToN
a(i,j)=i*10+j
Nextj
Nexti
'输出原始数组
Print"转置前的数组:
"
Fori=1ToN'For循环i从1变化到N
Forj=1ToN
Printa(i,j);
Nextj
Print
Nexti
'数组转置
Fori=1ToN'For循环i从1变化到N
Forj=1Toi'交换
Temp=a(i,j)
a(i,j)=a(j,i)
a(j,i)=Temp
Nextj
Nexti
'输出转置后的数组
Print"转置后的数组:
"
Fori=1ToN'For循环i从1变化到N
Forj=1ToN
Printa(i,j);
Nextj
Print
Nexti
EndSub
7、随机输入10个100以内的整型数,计算其和及平均值。
7、参考代码如下:
iAsInteger
DimsumAsInteger,aveAsInteger
su