VB复习题.docx

上传人:b****8 文档编号:11351073 上传时间:2023-02-28 格式:DOCX 页数:20 大小:42.82KB
下载 相关 举报
VB复习题.docx_第1页
第1页 / 共20页
VB复习题.docx_第2页
第2页 / 共20页
VB复习题.docx_第3页
第3页 / 共20页
VB复习题.docx_第4页
第4页 / 共20页
VB复习题.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

VB复习题.docx

《VB复习题.docx》由会员分享,可在线阅读,更多相关《VB复习题.docx(20页珍藏版)》请在冰豆网上搜索。

VB复习题.docx

VB复习题

一、问答题

1.叙述建立一个完整的应用程序的过程。

答:

界面设计编写事件过程代码运行、调试保存文件

2.当建立好一个简单的应用程序后,假定该工程仅有一个窗体模块。

问该工程涉及到几个文件要保存?

若要保存该工程中的所有文件,正确的操作应先保存什么文件?

再保存什么文件?

若不这样做,系统会出现什么信息?

答:

涉及到两个文件要保存。

先保存窗体文件(.frm),再保存工程文件(.vbp)。

若先保存工程文件,系统也会先弹出“文件另存为”对话框,要求把窗体文件先保存。

3.假定在Windows环境中,要保存工程文件时,若不改变目录名,则系统默认的目录是什么?

答:

VB98

4.当标签框的大小由Caption属性的值进行扩展和缩小,应对该控件的什么属性进行何种设置?

答:

将标签的Autosize设置为True.

5.VB6.0提供的大量图形文件在哪个目录下?

若你的计算机上没有安装,则怎样安装这些图形文件?

答:

VB6.0提供的图形文件在Graphics目录。

6.在VB6.0中,命令按钮的显示形式可以有标准和图形两种选择,这通过什么属性来设置?

若选择图形的,则通过什么属性来装入图形?

若已在规定的属性里装入了某个图形文件,但该命令按钮还是不能显示该图形,而显示的是Caption属性设置的文字,怎样改正?

答:

按钮Style的属性设置为Graphical(或1)。

通过Picture属性来装入图形。

不能显示图形是因为Style的属性设置为Standard(或0),只要改为Graphical(或1),一般还将Caption属性的值设置为空。

7.标签和文本框的区别是什么?

答:

文本是否可编辑。

8.当窗体上有三个文本框和一个命令按钮,若程序运行时,需把焦点定位在第三个文本框处,应对何控件的什么属性进行何种设置?

答:

应对Text3控件进行Text3.TabIndex=0的设置。

9.简述文本框的change与keypress事件的区别。

答:

文本框内容变化,change与keypress事件都会发生,所不同的是Keyprees还将返回一个Keyasii参数

10.当某文本框输入数据后(按了回车键),进行判断认为数据输入错,怎样删除原来数据?

怎样使焦点回到该文本框重新输入?

答:

假定文本框的名称为Text1,则事件过程如下:

PrivateSubText1_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=13Then

If出错条件判断成立Then

Text1=””‘先删除原来数据

Text1.SetFocus‘焦点回到Text1

EndIf

……

EndIf

EndSub

11.在程序运行前,对某些控件设置属性值,除了在窗体中直接设置外,还可以通过代码设置,这些代码一般放在什么事件中?

例如,程序要将命令按钮定位在窗体的中央,请写出事件过程。

答:

这些代码一般都放在Form_Load()事件过程中。

要将按钮定位在窗体的中央,事件过程如下:

PrivateSubForm_Load()

Command1.Left=form1.ScaleWidth\2-Command1.Width\2

Command1.Top=form1.ScaleHeight\2-Command1.Height\2

EndSub

其中,ScaleWidth、ScaleHeight表示窗体的相对宽度和高度。

二、填空题

1.对象的三要素为【属性、事件和方法】。

2.在刚建立工程时,使窗体上的所有控件具有相同的字体格式,应对【form窗体】的【font】属性进行设置。

3.当命令按钮的Picture属性装入.bmp图形文件后,选项按钮上并没有显示所需图形,原因是没有对【style】属性设置为1(Graphical)。

4.在文本框中,通过【selstart】属性能获得当前插入点所在的位置。

5.要对文本框中已有的内容进行编辑,按下键盘上的按键,就是不起作用,原因是设置了【locked】属性为True

6.在窗体上已建立多个控件如Text1,Label1,Command1,若要使程序一运行焦点就定位在Command1控件上,应对Command1控件设置【tabindex】属性的值为【0】。

一、问答题

1.VB提供了哪些标准数据类型?

声明类型时,其类型关键字分别是什么?

其类型符又是什么?

答:

见教材P39的表3.1VB的基本数据类型

2.哪种数据类型需要的内存最少,且可存储如3.2345这样的值。

答:

Single(单精度型)

3.将数字字符串转换成数值,用什么函数?

取字符串中的某几个字符,用什么函数?

大小写字母间的转换用什么函数?

答:

数字字符转换成数值用Val函数;取字符串中的某几个字符用mid函数或left函数或right函数;大小写字母间的互换用ucase或lcase函数。

4.下列哪些是VB合法常量,分别指出其类型(见P58习题三1)。

答:

1(#)、3(!

)、4(#)、6(%)、7($)、8($)、9(date)、10(#)、12(%)、14(%)、15(boolean)、18(!

一、填空题

1.在程序运行过程中,若需对程序中使用到的变量声明均采用显式声明方式,则必须在程序设计时在通用声明段部分加上OptionExplicit语句。

2.已知有如下声明语句:

Dima,basInteger

则变量a的类型是variant(变体型)。

3.已知有如下四个算术运算符:

*、Mod、/、+,*、/运算符的优先级别最高

4.已知a=3.5,b=5.0,c=2.5,d=True,则表达式:

a>=0anda+c>b+3ornotd的值是false

5.数学表达式

的VB算术表达式为sin(15*3.14/180)+sqr(x+exp(3))/abs(x-y)-log(3*x)

6.数学表达式

的VB算术表达式为(a+b)/(1/(c+5)-c*d/2)

7.数学表达式

的VB算术表达式为(-b+sqr(b^2-4*a*c))/(2*a)

8.表示x是5的倍数或是9的倍数的VB算术表达式为xmod5=0orxmod9=0

9.产生一个”C”~”L”范围内的大写字母表达式为chr(int(rnd*10+67)

10.取字符变量S中第五个字符起的6个字符的表达式为mid(S,5,6)

11.表示10≤X<20的关系表达式为x>=10andx<20

12.表达式Dateadd(“m”,1,#1/30/2000#)的结果为2000-2-29

13.整型变量x中存放了一个两位数,要将两位数交换位置,例如,13变成31,实现的表达式是(xmod10)&x\10

14.在直角坐标系中,x,y是坐标系中任意点的位置,用x与y表示在第一或第三象限的表达式是x>0andy>0orx<0andy<0

15.计算现在起离2010世界杯赛(2010年6月11日)举行还有多少天的函数表达式为DateDiff(“d”,date,#6/11/2010#)

16.计算现在起离你毕业(2012年7月3日)还有多少个星期的函数表达式为DateDiff(“w”,date,#7/3/2012#)

17.表示S字符变量是字母字符(不区分大小写字母)的逻辑表达式是

ucase(S)>=”A”anducase(S)<=”Z”也可以是Lcase(S)>=”a”andLcase(S)<=”z”

18.x,y之一小于z的表达式为xzorx>zandy

一、问答题

1.结构化程序设计的三种基本结构是什么?

答:

顺序结构、选择结构和循环结构。

2.指出下列赋值语句中的错误(包括运行时的错误)

(1)10x=sin(x)+y变量名不能数字打头

(2)c=3+sqr(-3)sqr函数中的参数不能为负数

(3)c+x+y=c*y赋值语句的左边不能是表达式

(4)x=sin(x)/(20Mod2)分母不能为0

3.msgbox函数与inputbox函数之间有什么区别?

各自获得什么值?

答:

msgbox函数的作用是打开信息框,等待用户选择按钮而inputbox函数的作用是打开一个对话框,等待用户输入内容;msgbox函数的返回值是1~7的整数值,而inputbox函数的返回值是用户输入的数据,返回值的数据类型为字符型。

4.要使单精度变量x,y,z分别保留1位、2位、3位小数,并在窗体显示,应使用什么函数?

如何编写对应的Print方法?

答:

使用Format函数,具体如下:

Printformat(x,”0.0”);format(y,”0.00”);format(z,”0.000”)

5.语句If<表达式>Then……中的表达式可以是算术、字符、关系、逻辑表达式中的哪些?

答:

可以是算术表达式,关系表达式和逻辑表达式

6.指出下列语句中的错误

(1)ifx≥ythenprintx正确的写法:

x>=y

(2)if10

x>10andx<20

7.在多分支结构的实现中,可以用If<表达式>Then…ElseIf形式的语句,也可以用SelectCase…EndSelect形式的语句,由于后者的条件语句更灵活、简洁,是否完全可以取代前者?

答:

不可以。

SelectCase…EndSelect形式的语句的使用是受到限制的。

只能用在对一个变量条件的判断。

若要对多个变量条件进行判断,只能使用If<表达式>Then…ElseIf形式的语句

8.计算下列循环语句的次数

(1)Fori=-3to20step4循环次数为:

6

(2)Fori=-3.5to5.5step0.5循环次数为:

19

(3)Fori=-3.5to5.5step-0.5循环次数为:

0

(4)Fori=-3to20step0死循环

9.如果事先不知道循环次数,如何用FOR…Next结构来实现?

答:

可先设循环变量的终值为一个较大的值,然后在循环体内嵌套条件分支

10.如何书写Do…Loop结构,使得循环体至少执行一次?

答:

do

….

Loopwhile<条件>

11.当发现了死循环,如何终止循环

答:

按ctrl+break键中断程序

12.如何在程序中设置断点?

如何去除断点?

答:

设置断点的方法是将光标移到要设置断点的代码行,按F9或单击调试工具栏的”切换断点”按钮。

设置断点后,代码窗口将以粗体形式突出显示选定行,并在该行显示一个圆点符号,以指出该代码行使一个断点。

清除断点的方法是将光标移到要删除断点的代码行,按F9或单击调试工具栏的”切换断点”按钮,代码左侧的大圆点消失,表示该断点清除。

12.当在编辑程序时,程序代码以红色显示,是什么错误?

答:

编辑错误。

二、填空题

1.下面程序运行后的结果是22和484该程序的功能是用相减法求x,y的最大公约数和最小公倍数

PrivateSubCommand1_Click()

Dimx%,y%,z%

x=242:

y=44

z=x*y

DoUntilx=y

Ifx>yThenx=x-yElsey=y-x

Loop

Print"最大公约数";x;"最小公倍数";z/x

EndSub

2.给定年份,下列程序用来判断该年是否为闰年。

(提示:

闰年的条件是年号可以被4整除但不能被100整除,或者被400整除)

PrivateSubCommand1_Click()

Dimy%

Y=inputbox(“请输入年号”)

If(ymod4=0andymod100<>0)or(ymod400=0)then

Print“是闰年”

Else

Print“是普通年份”

Endif

Endsub

3.下列程序完成如下功能:

以文本框Text1的值为n,计算1!

+2!

+3!

…n!

的值。

PrivateSubCommand1_Click()

N=val(text1)

Sum=1:

t=1

Fori=1ton

T=t*i

Sum=sum+t

Nexti

Print“1!

+2!

+3!

…+”;n;”!

的值为”;sum

Endsub

4.找出被3、5、7除,余数均为1的最小的5个正整数。

PrivateSubCommand1_Click()

Dimcountn%,n%

Countn=0

N=1

Do

N=n+1

Ifnmod3=1andnmod5=1andnmod7=1then

Printn

Countn=countn+1

Endif

Loopuntilcountn=5(或Loopwhilecountn<5)

Endsub

5.某次大奖赛,有7个评委打分,下列程序对每一位参赛者输入7个评委的分数,去掉一个最高分,去掉一个最低分,求出的平均分就是该参赛者的最后得分。

PrivateSubCommand1_Click()

Dimmark!

aver!

i%,max1!

min1!

Aver=0

Fori=1to7

Mark=inputbox(“输入第”&I&“位评委的打分”)

Ifi=1then

Max1=mark:

min1=mark

Else

Ifmark

Min1=mark

Elseifmark>max1

Max1=mark

Endif

Endif

Aver=aver+mark

Nexti

Aver=(aver-max1-min1)/5

Printaver

Endsub

6.有一个长阶梯,如果每步跨2阶最后剩1阶,如果每步跨3阶最后剩2阶,如果每步跨4阶最后剩3阶,如果每步跨5阶最后剩4阶,如果每步跨6阶最后剩5阶,只有当如果每步跨7阶时恰好走完,显示这个阶梯至少要有多少阶。

(提示:

阶梯数一定是7的倍数)

PrivateSubCommand1_Click()

Dimn%,m%

Forn=7to10000step7

Ifnmod2=1andnmod3=2andnmod4=3andnmod5=4andnmod6=5then

Printn

Exitfor

Endif

Nextn

Endsub

一、问答题

1.在VB6.0中,数组的下界默认为0,用什么语句可以重新定义数组默认下界?

答:

OptionBase语句。

2.要分配存放12个元素的整型数组,下列数组声明(下界若无,按默认规定)哪些符合要求?

(见P124)

答:

(2)、(4)、(7)、(8)

3.程序运行时显示“下标越界”可能产生的错误有哪几种情况?

答:

下标比下界小或者比上界大。

4.已知下面的数组声明,写出它的数组名、数组类型、维数、各维上下界、数组的大小、并按行的顺序列出个元素。

Dima(-1to2,3)assingle

答:

数组名:

a,数组类型:

单精度型,维数:

二维,一维下界-1,上界2,二维下界0,

上界3,数组大小4×4共16个元素,各元素为:

(-1,0)(-1,1)(-1,2)(-1,3)(0,0)(0,1)(0,2)(0,3)(1,0)(1,1)(1,2)(1,3)(2,0)(2,1)(2,2)(2,3)

3.简述静态数组与动态数组的区别。

答:

静态数组的下标必须是常数且程序运行中数组大小不可改变。

动态数组的下标则可以是已赋值的变量,动态数组声明时不给大小,以后用redim语句指定数组大小。

4.简述使用课件数组的优点和方法。

答:

优点是多个控件数组元素共享同一事件过程,程序简洁;方法是在程序运行过程中添加(Load)或删除(Unload)数组控件数组元素

5.已声明了静态数组A(3,4),能否在下面再用重新定义动态数组A(4,4)来重定义A数组的大小?

答:

不能

6.使用Redim语句可以改变数组类型吗?

答:

Redim语句可以反复地改变数组的元素以及维数的数目,但是不能将一个数组定义为某种数据类型之后,再用redim将该数组改为其它类型。

8、简述列表框和组合框的异同处。

答:

相同之处都是可以存放字符串;不同处在于组合框是文本框和列表框的组合,可以输入内容,但要通过AddItem方法添加;列表框只能选择项目,不能直接输入内容。

9.列表框或组合框中选中的项目、总项目数的属性分别是什么?

答:

表示选中的内容,属性有:

Text;总项目数的属性是Listcounts

10.声明一个有20个元素的一维字符类型数组,要求:

(见P124习题五-6)

答:

见已给资源(实验代码参考2的习题五-6)

二、填空题

(1)在VB中,若要设定每个数组默认的下界固定为1,其声明语句是OptionBase1

(2)程序中自动测试数组的下界用Lbound函数来实现,上界用Ubound函数实现

(3)在运行时load语句可以为控件数组增加控件元素;unload语句删除一个存在的控件元素

(4)当数组首次被声明时,对所有的数值型数组默认初值是0;字符数组默认初值是空串

(5)当用Redim语句改变动态数组大小时,数组元素的值会丢失;用Preserve关键字可以保留数组元素原来的值。

(6)已知建立了5个元素的Command1控件数组,用Index参数可识别用户单击了某控件数组元素

(7)下面程序的功能是从键盘输入6个整数,找出最大数和最小数所在位置,并将两者对调,然后输出调整后的6个数。

PrivateSubForm_Click()

Dima%(5),max%,min%,imin%,imax%,i%,t%

Fori=0To5‘从键盘上输入6个数

a(i)=InputBox("输入")

Nexti

imin=0‘第一个数组元素的下标(0)为最小数下标

imax=0‘第一个数组元素的下标(0)为最大数下标

Fori=1To5‘找出最小数和最大数所在位置的下标

Ifa(I)

Ifa(I)>a(imax)Thenimax=i

Nexti

t=a(imax)‘进行两数互换

a(imax)=a(imin)

a(imin)=t

Fori=0To5‘输出调整后的6个数

Printa(i);

Nexti

EndSub

(8)下面程序对已知数组a,删除数组中数组元素中某个元素

PrivateSubCommand1_Click()

Dima(),key%,j%

A=array(1,6,8,3,5,9,10,2,7,4)

Key=val(inputbox(“输入要删除的值”)

Fori=0toUbound(a)

Ifkey=a(I)then‘比较是否是要删除的数据,如果找到,

Forj=i+1toUbound(a)‘那么从下一个数(i+1)开始

A(j-1)=a(j)‘将每一项前移,实现删除

Nextj

Redimpreservea(Ubound(a)-1)‘使数组元素减少一个,而又要保留原来数据

Msgbox(“删除完成”)

Exitsub

Endif

Nexti

Msgbox(“找不到要删除的元素”)

Endsub

(9)下列程序表示将输入的一个数插入到按递减的有序数列中,插入后使该序列仍有序。

PrivateSubForm_Click()

Dima,i%,m%

A=array(19,17,15,13,11,9,7,5,3,1)

N=Ubound(a)

Redimpreservea(n+1)‘使数组元素增加一个,又要保留原来数据

M=val(inputbox(“输入欲插入的数”))

Fori=Ubound(a)-1to0step-1

Ifm>=a(I)then

a(I+1)=a(I)‘寻找插入的位置

IFI=0thena(I)=m‘欲插入的数比所有数组元素都大时

Else

a(I+1)=m‘新数据找到插入位置,插入到数组中

exitfor

endif

nexti

fori=0toUbound(a)

printa(I)

nexti

endsub

填空题

(1)在过程定义时,参数有传值和传址,若形参是数组,不能使用Byval来修饰参数。

(2)ExitFunction语句只能出现在函数的过程体。

(3)在过程体,用static方式声明的局部变量,其值可以保留至下次过程被调用。

(4)过程自己调用自己称为递归。

1.框架的作用是什么?

答:

框架的作用:

在同一窗体需建立几组相互独立的单选钮可使用框架;窗体上功能区划分也可使用框架

2.滚动条的Scroll和Change事件有什么区别?

答:

Scroll事件是拖动滑块时发生的事件,单击两端的箭头或空白处不会产生Scroll事件。

此外,在拖动滑块的过程中会产生多个Scroll事件,而不是仅仅在拖动滑块结束时产生一个Scroll事件。

Change事件是当Value属性值改变时产生的事件。

3.如何在程序的运行期间改变鼠标的形状

答:

鼠标的形状由MousePointer属性决定。

可以在属性窗口中设置,也可以在程序代码中设置。

在程序运行期间,通过该属性的设置可以改变鼠标的形状。

如果想使用一个自定义图标,则应把MousePointer属性设置为99(VbCustom),然后将图标文件用LoadPicture函数装入MouseIcon属性中,或者某个图形框中的图标直接赋值给MouseIcon属性。

4.Keypress和KeyDown的区别是什么?

答:

用户按下并且释放一个会产生Ascii码的键时,触发KeyPress事件;用户按下键盘上任一键时,触发KeyDown事件。

KeyPress与KeyDown事件的主要区别有:

(1)从时间上说,按下键盘上的一个键,立即触发KeyDown事件,但此刻没有引发KeyPress事件。

只有释放该按键时触发KeyPress事件。

(2)用户按下键盘中的任一键时,就会在相应对象上引发KeyDown事件,但是并不是按下和释放键盘上的任一一个键都会引发KeyPress事件,KeyPress事件只对会产生Ascii码的按键有反应,包括数字、大小写的字母、enter、backspace、esc、tab等。

对于如方向键这样的不会产生Ascii码的按键,KeyPress事件不会被触发。

5.在KeyDown事件过程中,如何检测Ctrl和F3是否同时被按下?

答:

使用(KeyCode=vbKeyF3)and(Shift=vbCtrlMask)或者(Key

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1