文档库 最新最全的文档下载
当前位置:文档库 › VB教材习题及答案916

VB教材习题及答案916

VB教材习题及答案916
VB教材习题及答案916

习题一

一、选择题

1.下列操作不能打开代码窗口的操作是()。

A)选中对象,单击鼠标右键,在弹出的快捷菜单中选择“查看代码”命令 B)选中对象,双击鼠标左键

C)按F7键

D)按F4键(打开属性窗口)

2.在VB的集成开发环境中,如果工具箱不可见,应在()菜单中操作而使它可见。

A)窗口B)视图 C)编辑 D)文件

3.在设计阶段,当双击窗体上的某个控件时,所打开的窗口是()。

A)工程资源管理器窗口 B)工具箱窗口

C)代码窗口 D)属性窗口

4.VB应用程序处于运行模式时,这时()。

A)既不能设计界面,也不能编辑代码

B)可以编辑代码,但不能设计界面

C)可以设计界面,但不能编辑代码 D)既能设计界面,也能编辑代码

5.下列选项中,属于VB程序设计方法特点的是()。

A)可视化、顺序驱动B)可视化、事件驱动

C)面向对象、顺序驱动 D)面向过程、事件驱动

6.通过()可以在界面设计阶段直观地调整窗体在屏幕上的位置。

A)代码窗口B)窗体布局窗口

C)窗体设计器 D)立即窗口

7.在VB集成开发环境中,窗体设计器的主要功能是()。

A)建立用户界面 B)编写源程序代码 C)显示文件 D)显示属性

8 在设计应用程序时,通过()窗口可以查看到应用程序工程中的所有组成部分。

A)工程资源管理器 B)窗体设计器 C)代码 D)属性

9.事件过程是指在()时所执行的程序代码。

A)运行程序 B)设置属性 C)使用控件 D)相应事件

10.下列不能打开属性窗口的操作时()。

A)选择“视图”菜单中的“属性窗口”命令

B)单击工具栏上的属性窗口按钮

C)按F4键

D)按Ctrl+t键(打开“部件”窗口)

二、填空题

1.VB是一种面向对象的可视化程序开发工具,采用了事件驱动的编程机制。

2.VB中保存的文件常有3种类型,分别是扩展名为 frm的窗体文件,扩展名为 vbp 的工程文件,扩展名为 bas 的标准模块文件。

3.VB程序有3种工作模式,即设计模式、运行模式、中断模式。

4.属性窗口的作用是显示或设置对象的属性。

5.工具栏中的“启动”按钮()的作用是执行程序,进入运行模式。

三、简答题

1.Visual Basic 6.0的集成开发环境包括哪些组成部分?要显示各个窗口,如何操作?

2.属性窗口的功能是什么?它由几部分组成?如何显示属性窗口?

3. 工具箱中常用的内部控件有哪些?

4. 代码窗口和立即窗口有什么不同?

5.Visual Basic6.0有哪三种工作模式?它们有何特点?

6. 如何获得Visual Basic 6.0系统的帮助功能?

习题二

一、选择题

1.以下叙述中正确的是()。

A)对象的属性设置只能在设计阶段完成。

B)对象的属性设置只能在程序运行阶段完成。

C)对象的属性设置可以在设计阶段或在程序运行阶段完成。

D)对象的属性设置是预先值好的。

2.一个对象可以执行的动作与可被对象识别的动作分别称为()。

A)事件、方法B)方法、事件

C)属性、方法 D)过程、事件

3.当使用鼠标操作选择了多个控件时,如果要取消当前多个控件的选择,正确操作时()。

A)用鼠标单击所选中的多个控件中的任意一个(改变当前控件,布局时的基准控件)

B)用鼠标双击所选中的多个控件中的任意一个(打开其代码窗口)

C)用鼠标单击当前窗体的空白处

D)用鼠标右击所选中的多个控件中的任意一个(打开其快捷菜单)

4.下面关于控件的说法,不正确的是()。

A)移动控件的方法:按住鼠标左键不放,拖动到新的位置再释放鼠标键

B)只能从工具箱中添加控件,不能在窗体上复制已经添加好的控件

C)利用鼠标的操作,就可以同时修改控件的宽度和高度

D)有些控件没有标题(Caption)属性

5.保存一个工程至少应保存两个文件,这两个文件分别是()。

A)文本文件和工程文件B)窗体文件和工程文件

C)窗体文件和标准模块文件 D)类模块文件和工程文件

6.以下叙述中正确的是()。

A)窗体的Name属性指定窗体的名称,用来标识一个窗体

B)窗体的Name属性的值是显示在窗体标题栏中的文本

C)可以在程序运行期间改变对象的Name属性的值

D)对象的Name属性的值可以为空

7.要在窗体Form1的工作区中显示字符串“Good Luck!”,使用的语句是()。

A) Form.Caption="Good Luck!" B) Form1.Caption="Good Luck!"

C) Form1.Print "Good Luck!" D) Form.Print "Good Luck!"

8.下列属于窗体对象方法的是()。

A) Click B) Move C) Caption D) Name

9.Cls方法可以清除窗体或图片框中的()内容。

A)在设计阶段使用Picture属性设置的背景位图

B)在设计阶段放置的控件

C)在运行阶段调用方法产生的图形和文字

D)以上全部内容

10.可以改变TextBox控件中文本颜色的属性是()。

A) BackColor B) ForeColor C) FillColor D) Palette

11.要在名为TxtTest的TextBox控件上显示“Hello”,正确的语句是()。

A) TxtTest.Caption="Hello" B) TxtTest="Hello"

C) TextBox.Text="Hello" D) TxtTest.Value="Hello"

12.将文本框的ScrollBars属性设为非0值,却没有效果,原因是()。

A)文本框中没有内容 B)文本框的MultiLine属性值为True

C)文本框的MultiLine属性为False D)文本框的Locked属性值为True

13.在窗体上画一个名为Text1的文本框,如果把该文本框作为用户密码输入框且输入密码

时的回显字符为“*”,则需要设置()属性为“*”号。

A) Visible B) PasswordChar C) Enabled D) Text

14.要更改标签控件中的文本对齐方式,应设置的属性是()。

A) Justify B) Font C) Alignment D) AutoSize

15.要使标签控件有边框,应设置()属性。

A) Enabled B) BackColor C) BorderStyle D) BackStyle

16.如果在设计阶段的属性窗口中将命令按钮的()属性设为False,则运行时该命令按钮

从窗体上消失。

A) Visible B) Enable C) DisabledPicture D) Default

17.用来设置字体为粗体字的属性是()。

A) FontUnderline B) FontName C) FontBold D) FontSize

18.要在命令按钮上显示图形,应首先设置的属性是()。

A) Enabled B) Style C) Caption D) Icon

19.无论何种控件,它们共同具有的属性是()。

A) Text属性B) Name属性 C) Caption属性 D) Autosize属性

20.下列控件不能获得焦点的是()。

A)命令按钮控件 B)框架控件 C)文本框控件 D)单选按钮控件

21. 为了把焦点移到某个指定的控件,所使用的方法是( )。

A ) SetFocus

B ) Visible

C ) Refresh

D ) GotFocus

22. 将命令按钮上显示的“Command1”改为“确定”,应设置的属性是( )

A ) Name

B ) Enabled

C ) Caption

D ) Visible

23. 在窗体上表示控件位置和大小,其默认的刻度单位是( )。

A ) Twip

B ) Point

C ) Pixel

D ) Milimeter

24. 在窗体上添加两个命令按钮(Command1、Command2)和1个文本框(Text1),并编写

如下程序代码:

程序运行后,先单击Command2按钮,再单击Command1按钮,则在文本框中显示( )。

A ) A

B B ) CD

C ) ABC

D D ) CDAB

25. 在窗体上画两个文本框(Text1、Text2)和1个命令按钮(Command1),并编写如下代码:

Private Sub Command1_Click()

Text1.Text="ABCDEFGHIJK"

Text1.SelStart=7

Text1.SelLength=3

Text2.Text=Text1.SelText

End Sub 程序运行后,单击命令按钮,则Text2中的内容是( )。

A ) HIJ

B ) GHI

C ) IJK

D ) 为空值

二、填空题

1.在VB 程序设计中,构成图形用户界面(GUI )的每一个可视的部件均称为 控件对象 。

2. 属性 是描述和反映对象特征的参数,对象中的数据就保存在其中。

3. 方法 是对象本身内含的特殊过程和函数,它定义了在对象上可以进行的操作。

4.当事件由用户或系统触发时,对象就会对该事件作出响应,响应某个事件后所执行的程序代码就是 事件过程 。

5.Left 和 Top 属性决定对象左上角点在它所在容器对象里的相对位置坐标。

6.Width 和 Hight 属性决定对象自身的宽度和高度。

7.当程序运行装入窗体时,最先触发的是 Load 事件。

8.当窗体上有多个控件时,用鼠标单击某个控件或者用 Tab 键,就可以把光标移到该

控件上,使其成为活动控件(当前控件)。

9.当文本框的 Locked 属性为True 时,不能编辑文本框中的文本内容。

10.在程序中添加 Text1. SetFocus 代码可以使文本框Text1获得焦点。

三、简答题

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

Private Sub Command1_Click () Text1.Text="AB" End Sub Private Sub Command2_Click () Text1.Text="CD" End Sub

2. VB程序的注释符是什么?为什么要使用注释?

3. 什么是对象?什么是类?

4.对象的三个要素分别是什么?

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

6. 窗体的Name属性和Caption属性属性有什么区别?

四、编程题

1. 设计一个应用程序,由用户输入正方形的边长,编程计算并输出正方形的面积。运行界面如图

2.11所示。

2. 设计一个窗体,当单击“显示”按钮时,在文本框内显示“Visual Basic”;单击“清除”按钮时,清除文本框内的文本;单击“退出”按钮时,结束程序运行。程序运行界面如图2.12所示。

图2.11 习题1的运行界面图2.12 习题2的运行界面3.设计一个应用程序,其运行界面如图2.13所示,要求程序运行后,单击“缩小两倍”按钮,将标签中文字缩小两倍;单击“向右下角移动”按钮,文字向右下角移动。

图2.13 习题3的运行界面

提示:编写程序的三个基本要点是建立界面设置属性编写代码

指向工具箱的相应图标双击鼠标建立界面:窗体标签文本框命令按钮

设置属性: caption text 名称name修改

编写代码: text2=str(val(text1.text)* val(text1.text)) End

Text1.text=”visual basic” Text1.text= ““

Label1.fontsize= Label1.fontsize/2 label1.left= label1.left+200 label1.top=label1.top+200

习题三

一、选择题

1.下列类型中不属于VB基本类型的是()

A)字节型 B)单精度型 C)货币型D)枚举型

2. 下列字符序列中合法的变量名是()

A) Integer B) 57Y C) x/h D) VB123

3. 有变量定义语句:Dim a,b As Integer,变量a的类型和初值是()

A) Integer,0 B) Variant,空值 C) String,"" D) Long,0.0

4. 下面4组数据中,正确的一组VB常量是()

A) 32765、1.34D2、"ABCDE"、&O1767 B) 276、56、1.2E-2、#True#

C) &HABCD、20-08-2011、False、1D-3 D) "ABCDE",#20-08-2011#,E-2

5. 下列声明语句中,错误的是()

A) Const a=12 B) Const a As Integer =12 C) Dim a=12 D) Static a As Integer

6.表达式4+5\6*7/8 Mod 9 的值是()

A) 4 B)5 C) 6 D)7

7.表达式12+"34"的值是()

A) "1234" B)12"34" C) "46" D) 46

8.下列运算符中优先级最高的是()

A) \ B) < C) Not D) *

9. 如果x是一个正实数,下面能对x的第3位小数四舍五入的表达式是()

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)

10. a=8,b=10,下列表达式为真的是( )

A) -7+b>a And b>0 B) a>b Or b>0

C) a<1 Eqv b>0 D) a>b And b>10

11. x+y小于10且x-y>0的逻辑表达式是()

A) x+y<10 Or x-y>0 B) (x+y)<10;(x-y)>0

C) x+y<10 And x-y>0 D) x+y<10 Xor x-y>0

12.下列表达式中错误的是()

A)“VB”+ 5.0 B) "15"+12 C) 12 & "15" D) "abc" &123

13.表达式Int(Rnd*100)产生的随机整数闭区间是()

A) [1,99] B) [0,99] C) [1,100] D) [0,100]

14.x=-3.2,下列表达式中能使变量y的值为-4的是()

A) y=-Abs(x) B) y=Int(x) C) y=Fix(x) D) y=-Int(Abs(x))

15.若s1= "Visual Basic",下列语句中使s2= "Basic"的是()

A) s2=Right(s1,8,5) B) s2=Mid(s1,8,5)

C) s2=Left(s1,8,12) D) s2=Left(s1,8,5)

二、填空题

1.VB中的字符采用Unicode编码方式表达和存储,在该编码方式下,一个汉字和一个英文字符均被视为 1 个字符,每个字符均采用 2 个字节编码。

2.VB中字符常量和日期常量的定界符分别是 "和# 。

3.VB中的数以八进制和十六进制形式表示时应分别在数据中加前缀&O和&H 。

4.符号“!”、“#”、“%”、“&”、“@”、“$”可以分别作为单精度型、双精度型、整型、长整型、货币型、字符型数据的类型符。

5.VB的运算符可以分为算术运算符、字符串连接运算符、关系运算符和逻辑运算符等4种类型。

6.在VB中,同一行可以书写多条语句,语句间用 : 分隔,一条语句可分为多行书写,但需要在本行最后加入续行符号" _"。

7. VB的字符运算符有+、&两种,其中运算符两侧必须均为字符型数据的运算符是+。

8.可获得系统当前日期和时间的内部函数为now() ,若只需获得系统的当前时间,可通过另一个内部函数time()来实现,该函数的返回值为Date类型。

三、简答题

1. Visual Basic对于没有经过初始化的变量,系统默认值是0,False,空串,空格串或空值

2. 如果希望变量能精确地存储实数4561.234589,则变量X应声明为双精度型

3.下列数据中哪些是变量、那些是常量、是什么类型的常量?

(1)name (2)"name" (3)False (4)"1/1/2005"

(5) cj (6) "120" (7) 12.34 (8)#10/19/2004#

4. 写出下列各表达式的值。

(1) int(-4.5) (-5) (2) int(abs(10-11)/2) (0)(3) fix(-5,2) (-5)

(4) sqr(2^3) (2.828) (5) right("vb Name",4) (6)Ucase("vbName") "VBNAME"

(7) val("10 5th") (105)(8) str("123.45") " 123.45" (9) len("vbName") (6)

(True)(10) 10>=2*4 (11) "ABCD"<"ABCDEF" (12)"ABC" & "ABC"<>”ABC”

(13) 13<>12 or 15>19-2 (True)(14)(-1or 1<>1) +1 (0)(15) not 10-5<>5 (True)

(16) (-1 and 1<>1)-1 (-1)(17) 3>5 and 4<9 (False) (18) 10 Mod 3+2^3/4\5(1)

(19) Not 12/3<>4 Or 13 Mod 2<40\5 (True)

(20) Asc(Chr(65))+Val(Str(11)) (76)

(21) Mid(Ucase("abc12def45"),4,2 ) "12"

(22)Len("ABCDEF")+Val("12GHIJK") (18)

5. 用逻辑表达式表示下列命题

(1) a是b和c的倍数 (a MOD b=0 And a MOD c =0)

(2) a是1-1000内的偶数(a MOD 2=0 And a >1 And a<=1000)

(3) |a|>|b|或a≤b (Abs(a)>Abs(b) Or a<=b)

6.根据下列给定的条件,写出VB表达式

(1)随机产生一个[20,30]之间的正整数。(2)表示x是5或14的倍数。

答(1):INT(11*Rnd)+20 答(2):x MOD 5=0 Or x MOD 14=0

(3)表示5≤x<15的表达式。 (4) 能被5和7同时整除的数

答(3):x>=5 AND x<=15 答(4):x MOD 5=0 AND x MOD 7=0

(5)点(x,y)在第一象限或第四象限 (6) a 和b 中至少有一个小于c

答(5):x>0 AND (y>0 OR y<0) 答(6):a

(7) 将实数x 的小数后第3位四舍五入

答(7):x=Round(x,2) 或x= Fix (x*100+0.5*Sgn(x))/100

(8) 随机产生一个“a--z ”(包括a 和z )的小写字母。

答(8):Chr(Int(Rnd*26)+97)

7.将下列数学表达式改写为等价的VB 表达式。

(1) (2) Sin 350 (3

) (4) (1+3x)5 答(1):(1+y/x)/(1-y/x) 答(2):Sin(35*3.14159/180)

答(3):(-b+sqrt(b*b-4*a*c))/(2*a) 答(4):(1+3*x)^5

四、编程题

1.设计一个VB 程序完成加法运算,并将结果显示出来。程序运行界面如图3.7所示,

运行时在窗体上给出“被加数”和“加数”,单击“加法运算”按钮计算出两数的和,单击

“清除”按钮擦除数字,以便计算下一道题,单击“退出”按钮,停止运行退出程序。

图3.7 习题1的运行界面

2.利用Shell 函数在VB 程序中分别执行画图程序和Word 程序。

习题四

一、选择题

1.下列选项中,不能为语句“S=PI*R*R ”正确添加注释信息语句是:

A )S=PI*R*R ' 求圆的面积

B )S=PI*R*R : ' 求圆的面积

B )S=PI*R*R : Rem 求圆的面积 D )Rem 求圆的面积 : S=PI*R*R

2.下列选项中,不能为整型变量x 正确赋值的语句是:

x

y x y

-+11a ac b b 242-+-

A)x%=123 B)x%="123" C)x%="12.3" D)x+1=124

3.假设整型变量y的值为5,下列选项中,不能为整型变量x赋值为5的语句是:

A)x=y B)x%=y C)x%=y% D)x=y=5

4.设有整型变量x的值为77、 y的值为58,语句“Print x;y”的输出结果是:

A)7758 B)77 58 C)77;58 D)77,58

5.设有字符型变量x$的值为"xyz"、 y$的值为"123",语句“Print x;y”的输出结果是:

A)xyz123 B)xyz 123 C)xyz;123 D)xyz,123

6.语句“Print Format(3.1415926, "$##.####")”的输出结果是:

A)$3.1416 B)$ 3.1416 C)$03.1416 D)$#3.1416

7.InputBox函数的返回值的类型为:

A)数值型B)字符型 C)变体型 D)由实际输入的值确定

8.在工程名为“VBSY1.vbp”的程序代码中调用过程“MsgBox "我要学好VB",48, "VB很有用"”所产生的信息框的标题是:

A)我要学好VB B)VB很有用 C)VBSY1 D)工程名

9.若文本框Text1中已经有了一行文字,下列语句中能将字符串变量Str$中的内容添加到Text1的第二行的是:

A) Text1.text= Str$ +VbCrLf + Text1.text B) Text1 = Text1 & Str$ & "VbCrLf"

C) Text1.text= Text1.text +VbCrLf+Str$ D) Text1 = Text1 & "VbCrLf" & Str$

10.下列语句中,能将文本框Text1 中显示的文字的字形变为粗体字的是:

A) Text1. FontName= "粗体" B) Text1. FontBold = True

C) Text1. FontItalic = True D) Text1.FontStrikethru = True

11.下列语句中,不能改变标签控件Label1 中显示的文字的颜色的是:

A)Label1. ForeColor=RGB(0,0,255) B)Label1. ForeColor=&H004080FF& C)Label1. ForeColor= vbRed D)Label1. ForeColor="红色"

12.设a为整整变量,能正确表示逻辑关系:“1≤a≤10”的VB表达式是。

A)1≤a≤10 B)1<=a<=10

C)a>=1 And a<=10 D

13

A)if x<0 then x=-x

C)x=IIf(x>0,x,-x) D)x=IIf(x>0,-x,x)

14.设a=5, b=6, c=7, d=8,执行语句x=IIf((a>b)Or (c>d), 10, 20)后,x的值是

A)10 B)20 C)30 D)200

15.若整型变量m的值为2,则执行语句“f$=Choose(m, "汉族","蒙古族","回族","藏族")”后,变量f的值为:

A)Null B)"m=2" C)"汉族" D)"蒙古族"

16.若整型变量m的值为5,则执行语句“x= Switch (m=1, 2, m=2, 3, m=3, 4,m=4, 5)”后,变量x的值为:

A)Null B)1 C)4 D)5

17.若整型变量m的值为5,以下循环语句执行后,变量m的值不为4的是:

A) Do While (m>=5) B) Do

m=m-1 m=m-1

Loop Loop While (m>=5)

C) While (m>=5) D) Do until (m>=5)

m=m-1 m=m-1

Wend Loop

18.执行下面的程序段后,变量x的值为:

x=5

For i = 1 to 8

x=x+i

if (x>13) Then Exit For

next i

A)8 B)15 C)16 D)37

二、填空题

1.结构化程序设计方法的主要原则可以概括为:自顶向下,逐步细化,模块化和限制使用GOTO语句等。

2.算法的特性主要有:有穷性、确定性、有效性、有零个或多个输入、有一或多个输出。3.结构化程序设计方法要求的三种基本结构分别是:顺序结构、选择结构和循环结构。4.表示算法的方法有许多种,如自然语言、伪代码、传统流程图、结构化流程图等。5.N-S流程图又称盒图,它是一种先进的、符合结构化程序设计思想的流程图。

6.VB中各对象的颜色属性是一个长整型的数值。如果要在程序运行期间对某个颜色属性赋值,赋值号右边的表达式可以是:RGB函数、QBColor函数、符号常量和颜色值等4种。7.在Visual Basic中,一般用关系表达式或逻辑表达式来描述一个条件。但在选择结构或循环结构的语句中,描述条件的表达式也可以是一个数值型表达式或字符串表达式。8.在块结构的If语句中,关键字Then 的后面必须换行,不能再有其他语句。

9.在多分支if语句中,如果存在多个条件表达式的值都为True,则执行其中的位于最上方的那个分支。

10.在Visual Basic中,符合结构化程序设计要求的循环控制语句主要有:For…Next、Do While…Loop、用Do…Loop Until 和While …Wend。

三、阅读下列程序,并写出程序的运行结果

程序1.

Private Sub Form_Click()

Dim x As String

Dim i As Integer, n As Integer

Form1.Cls

x = "0123456789"

n = Len(x)

For i = n To 1 Step -2

Form1.Print Tab(20 - i); Mid(x, i, 1)

Next i

End Sub

程序2.

Private Sub Form_Click()

Dim str1 As String, str2 As String

Dim s As String

Dim i As Integer

str1 = "0123456789"

For i = 1 To 9 Step 2

str2 = str2 & Mid(str1, i, 1)

Next i

Print str2

End Sub

程序3.

Private Sub Form_Click()

Dim y As Integer

Do

y = InputBox("请依次输入10,37,55,56,64,28,19,-19,0")

If (y Mod 10) + Int(y / 10) = 10 Then Print y;

Loop Until y = 0

Print

End Sub

运行时,单击窗体后依次输入10、37、55、56、64、28、19、-19、0,写出运行结果。

程序4.

Private Sub Form_Click()

Dim k As Integer, s As Integer, j As Integer

Form1.Cls

For k = 1 To 5

s = 0

For j = k To 5

s = s + 1

Next j

Next k

Print "s="; s

End Sub

四、编程题

1.编程从键盘输入圆的半径,用MsgBox函数输出圆的周长和圆的面积。

2.编程从键盘输入两个两位的正整数给变量x和y,并将x和y合并形成一个整数放在

变量z 中。合并的方式是:将数x 的十位和个位依次放在z 的千位和十位上,将数y 的十位和个位依次放在z 的个位和百位上。例如,当x=45,y=12时,调用该函数后,z =4251。

3.编写程序,从键盘输入代表一个三角形三边边长的值给变量a,bc ,若它们能构成一个

三角形,则求出该三角形的面积;否则,设置其面积为0。

4. 编写程序,为某单位的职工增加工资。若基本工资大于等于2200元,增加工资20%;

若小于2200元大于等于1800元,则增加工资15%;若小于1800元则增加工资10%。请根据用户输入的基本工资计算出增加后的工资。

5.编写程序,输入一个日期,日期格式为:yyyy/mm/dd ,计算并输出该日是该年的第

几天。

6.回文是指正读和反读都一样的数或字符串。例如:12321、55455、35553等都是回文。

请编写一个程序,从键盘上读取一个包含五位数字的长整数,并判断它是否是回文。(提示:用除法运算和求余运算把一个数的个位、十位、百位、千位等分别分离出来。)

7.编写一个程序,计算半径为0.5、1.5、2.5、3.5、4.5、5.5mm 时的圆面积。

8. 编写程序,输出从公元1980年至2880年所有闰年的年号。每输出5个年号换一行。

9. 编写程序,用穷举法求3个正整数的最大公约数。

10. 编写程序,计算并输出下列级数的前n 项之和S n 。n 的值从键盘输入。 (13)

2181358352312+++++=n S

习题五

一、选择题

1.下列定义数组的程序段中,不正确的是:

A) Const N=10:Dim A(N) B) Const N=10:Dim A(1 to N)

C) Const N=10:Dim A(N-5 to N+5) D) Dim N%: N=10: Dim A(N)

2.以下关于Option Base 语句的描述中,正确的说法是:

A )Option Base 语句可以设置数组下标下界的默认值为任意整数(0,1)

B )Option Base 语句一般出现在需要定义数组的过程或函数中

C )如果程序中没有Option Base 语句,则数组下标下界的默认值为0

D )如果程序中没有Option Base 语句,则数组下标下界的默认值为1

3.在整个工程中都没有用Option Base 语句改变数组下标下界默认值情况下,用语句“DIM A(10) As Integer ”定义的数组A 的下标下界与下标上界分别是:

A )0,9

B )0,10

C )1,9 D) 1,10

4.用语句“DIM A(1 to 3,4 to 7) As Integer ”定义的数组A 中的数组元素的个数是:

A)7 B)10 C)12 D) 21

5.整型变量在内存中占用2个字节,用语句“DIM A(1 to 10) As Integer”定义的数组A在

内存中占用的字节数是:Array A)10 B)20 C)21 D) 22

6.设有:Dim A(2,3);元素A(1,2)是数组的第____ 个元素。

A 3

B 5

C 7

D 9

7.用语句“DIM A(1 to 3,4 to 7) As Integer”定义了数组A,对A的引用不正确的是。

A)A(2,5) B)A(3,7) C)A(4,5) D) A(1,4)

8.下面的程序段中,能正确使用动态数组arr的是:

A) Dim arr() As Integer B) Dim arr() As Integer

……

ReDim arr(3,5) ReDim arr(50)As String

C) Dim arr() D) Dim arr(50) As Integer

……

ReDim arr(50) As Integer ReDim arr(20)

9.下面的程序段中,能正确使用动态数组arr的是:

A) Dim arr() As Integer B) Dim arr() As Integer

ReDim arr(3 to 10) ReDim arr(3 to 10)

……

ReDim Preserve arr(3,10) ReDim Preserve arr(1 to 15)

C) Dim arr() As Integer D) Dim arr(50) As Integer

ReDim arr(3,4) ReDim arr(3 ,4)

……

ReDim Preserve arr(4,5) ReDim Preserve arr(3,5)

10.以下关于数组的描述中,不正确的说法是:

A)用户可以在过程中使用关键字Dim、Private或Static定义数组

B)动态数组的下标上界与下标下界相当于一个变量,可在过程中随意赋值

C)用户可以在窗体的通用声明段定义本模块内各个过程均可通用的数组

D)用ReDim语句重新定义动态数组时,不得改变数组的数据类型

二、填空题

1.在Visual Basic中定义定长数组时必须指定数组名、数据类型、数组维数及数组的长度。

2.第一次定义动态数组时,数组的长度为 0,必须重新定义它的长度之后才能使用。

3.Option Base语句可以指定数组下标下界的默认值为0或 1。

4.排序的算法有许多,常用的算法主要有选择法、冒泡法和插入法等。

5.常用的查找算法主要有顺序查找法和二分查找法两种。采用其中的第二种查找算法时

速度要快得多,但待查找的数据必须是有序的。

.二维数组一般用于处理数学中的矩阵,二维数组的两个下标必须在同一对括号之内,.多维数组的最大维数可以到60维,其数组元素的个数是其各维长度之积。

8.在Visual Basic中,自动获取数组下标上界值的函数为:UBound(<数组名> [,<维数>] );自动获取数组下标下界值的函数为:LBound(<数组名> [,<维数>] )。

9.用Array 函数创建的数组没有数组名,其类型为变体类型,一般用它来对另一个同类的动态数组或变体类型的变量整体赋值。

10.用Split 函数创建的数组没有数组名,其类型为字符类型,一般用它来对另一个同类的动态数组或变体类型的变量整体赋值。

三、阅读下列程序,并写出程序的运行结果

程序1.

Private Sub Command1_Click()

Dim a(5) As Integer, b(5) As Integer

Dim i As Integer

For i = 1 To 5

a(i) = 12 * i

b(i) = i * 18+2

Next i

Print a(i-3);b(i - 2)

End Sub

程序2.

Private Sub Command2_Click()

Dim m As Integer, n As Integer

Dim a(5, 5) As Integer

For m = 1 To 5

For n = 1 To 5

a(m, n) = m*10 + n

Next n

Next m

For m = 2 To 4

For n = 3 To 5

Print a(n, m);

Next n

print

Next m

End Sub

程序3.

Private Sub Command3_Click()

Dim a,s%,i%,j%

a=Array(1,2,3,4)

i=Ubound(a):j=1:s=0

Do While i>=Lbound(a)

s=s+a(i)*j

i=i-1

j=j*10

Loop

Print s

End Sub

程序4.

Private Sub Command4_Click()

Dim a, i%

a = Array(1, 2, 3, 4)

For i = LBound(a) To UBound(a)

Print "80" + a(i);

Next i

Print

a = Split("1,2,3,4", ",")

ReDim Preserve a(UBound(a) + 1)

a(UBound(a)) = 8

For i = LBound(a) To UBound(a)

Print "80" + a(i);

Next i

Print

End Sub

四、编程题

1.编写程序,用一维数组计算并输出数列2、3、5、9、17…的前15项的值。

提示:a1=2;当n>1时,a n=a n-1+2n-2。

2.编写程序,用随机函数产生25个两位的整数对一个5行5列的二维数组赋值。从中找出这样一个元素的位置:它在所在行上是最小的,在所在列上也是最小的。如果没有这样的元素则输出相应的信息。

3.设有一动态数组a,其中的数是从小到大排列的,要求将另一个数组b中的全部数据插入到数组a中,插入完毕时,数组a中的全部数据都是从小到大排列的。

如:动态数组a:10、14、18、20、25、28;数组b:12、16、22、26。

插入后的动态数组a:10、12、14、16、18、20、22、25、26、28。

4.在一个文本框中输入多个用逗号分隔的整数,按回车键后,将它们按从小到大的顺序重新显示在文本框中。

习题六

一、选择题

1.VB中的程序模块主要是Sub过程或Function过程,其中能返回值的过程是:

A) 事件Sub过程 B) 通用Sub过程

C) Function过程 D) 属性Sub过程

2.设窗体文件中有下面的事件过程:

Private Sub Command1_Click()

Dim s

s=100 : a%= s+150

End Sub

其中变量a和s的数据类型分别是

A) 整型,整型 B) 变体型,变体型

C) 整型,变体型 D) 变体型,整型

3.VB中有3个键盘事件:KeyPress、KeyDown、KeyUp,若光标在Text1文本框中,并输入一个英文字母A,则。

A) 这3个事件都会触发 B) 只触发KeyPress事件

C) 可触发KeyDown与KeyUp事件 D) 按顺序只触发其中的任何一个事件

4.设窗体的名称为Form1,标题为Win,则窗体的MouseDown事件过程的过程名是

A) Form1_MouseDown B) Win_MouseDown

C) Form_MouseDown D) MouseDown_Form1

5.通用Sub过程可以完成某项预定义的任务,但其必须由调用才能运行。

A) 应用程序的其他过程 B) 系统事件引发

C) 定时器事件触发 D) Sub Main过程

6.在调用Sub过程或Function过程时,主调过程通过向被调过程传递数据。

A) 形式参数B) 实际参数 C) 虚拟参数 D) 属性参数

7.如果在被调过程中改变了形参变量的值,不影响相应的实参变量,这种参数传递方式称为:

A) 值传递 B) 地址传递 C) 单个参数传递 D) 批量传递

8.过程调用结束后,仍然需要保存其某个局部变量的值,留待下次进入该过程时继续使用,则应该使用关键字在过程中定义这个局部变量。

9.当需要向某个过程传递Lebel

A) Lebel B) Control

10.窗体文件的后缀名为:。

A) vbp B) frm C) bas D) vbw

11.若某个自定义过程的首行为:“Private Sub abc(x%,y%)”,m、n均为整型变量,以下对该过程调用的语句中,错误的是:

A) abc m,n B) abc(m,n) C) abc m+3,n-5 D) Call abc(m,n)

12.若某个自定义过程的首行为:“Private Sub abc(x%,y%)”,m、n均为整型变量,以下对该过程调用的语句中,两个参数均能实现双向传递的是:

A) Call abc(m+0,n) B) Call abc(m,(n)) C) Call abc((m),n) D) Call abc(m,n) 13.以下关于过程的描述中,正确的是:。

A) 过程的定义可以嵌套,但过程的调用不能嵌套

B) 过程的定义不能嵌套,但过程的调用可以嵌套

C) 过程的定义与过程的调用均不能嵌套

D) 过程的定义与过程的调用均可以嵌套

14.下面关于标准模块的叙述中错误的是

A) 标准模块中可以声明全局变量

B) 标准模块中可以包含一个Sub Main过程,但此过程不能被设置为启动过程

C) 标准模块中可以包含一些Public过程

D) 一个工程中可以含有多个标准模块

15.下面是求最大公约数的函数的首部:

Function gcd(ByVal x As Integer, ByVal y As Integer) As Integer

若要输出8、12、16这3个数的最大公约数,下面正确的语句是

A) Print gcd(8,12),gcd(12,16),gcd(16,8) B) Print gcd(8,12,16)

C) Print gcd(8),gcd(12),gcd(16) D) Print gcd(8,gcd(12,16))

二、填空题

1.在Visual Basic中,常用的用户自定义过程主要有两类:Sub过程和Function过程。

2.用关键字Public定义的函数,可被工程或程序中的其他模块调用;用Private定义的函数,仅供本模块中的其他过程调用。

3.函数类型就是函数返回值的类型。定义函数时,若不指定函数类型则为变体型。

4.函数名在本函数体内部可以当变量使用,其类型是函数类型。在函数过程结束之前,必须要有给函数名赋值的语句。

5.定义函数时,形参之前的ByVal指定采用值传递方式; ByRef 指定采用地址传递方式;既没有ByVal,也没有ByRef,则采用地址传递方式。

6.用递归算法定义的函数有三个要点:一是结束递归的条件;二是递归结束时函数的值;三是能向递归结束的方向发展的递推公式。

7.使用数组作为过程的参数时,在过程的形参表中只能给出数组名和圆括号,不能指定形参数组的维数及长度。

8.Visual Basic允许使用对象作为过程的参数,需在过程的形参表中指定形参的类型为Object (对象类型)或Control (控件类型)。其中的第二种类型也可以是某个具体的控件对象的类型,如Label、TextBox等。

9.按其作用域的大小,可以把VB中的变量分为局部变量、模块级变量和全局变量。

10.静态局部变量是指在某个过程中用关键字Static定义的变量。其生存期是整个程序(工程)的生存期,但只能在定义它的过程中使用这个静态局部变量。

三、阅读下列程序,并写出程序的运行结果

程序1.

Private Sub Command1_Click()

Dim m As Integer, n As Integer

m = 5

n = 3

Print nFac(m) / (nFac(n) * nFac(m - n))

End Sub

Private Function nFac(ByVal n As Integer) As Long

Dim i As Integer, t As Long

t = 1

For i = 1 To n

t = t * i

Next i

nFac = t

End Function

程序2.

Private Sub f1(n As Integer, ByVal m As Integer)

n = n Mod 10

m = m \ 10

End Sub

Private Sub Command2_Click()

Dim x As Integer, y As Integer

x = 12 : y = 34 : Call f1(x, y) : Print x, y

x = 12 : y = 34 : Call f1(x+0, y) : Print x, y

x = 12 : y = 34 : Call f1((x), y) : Print x, y

End Sub

程序3.

Dim a As Integer, b As Integer, c As Integer

Public Sub p1(x As Integer, y As Integer)

Dim c As Integer

x = x+1

y = y + 2

c = x + y

End Sub

Public Sub p2(x As Integer, ByVal y As Integer)

x = x+1

y = y + 2

c = x + y

End Sub

Private Sub Command3_Click()

a = 2:

b = 4:

c = 6

Call p1(a, b)

Print "a="; a; "b="; b; "c="; c

Call p2(a, b)

Print "a="; a; "b="; b; "c="; c

End Sub

程序4.

Public Sub proc(a As Integer)

Static x As Integer

x= x+a

a= a+3

print a ; x

End Sub

Private Sub Command4_Click()

Dim m As Integer,i As Integer

m=3

For i = 1 To 3

Call proc(m)

Next i

End Sub

四、编程题

1.试编写一Sub过程DtoB(Dec, Bin),实现将一个十进制正整数Dec转换成为一个与其二进制数对应的字符串Bin。如Dec=100,则Bin="1101000"

2. 如果一个整数的所有因子之和与自身相等,则称该数为完数。例如:6=1+2+3,所以6是一个完数。试编写一个测试某数是否为完数的函数IsWs(m),并在主调过程中输出1~100之间的所有完数。

3.所谓同构数是指一个数出现在它的平方数的右端。如25在25平方625的右端,则25为同构数。试编写一个测试某数是否为同构数的函数IsSame(m),并在主调过程中输出1~1000之间所有的同构数。(提示:将整数转换为字符串,用Right函数提取其右边的若干字符!)

4. 用递归的方法将一个整数转换成字符串。例如:输入345,应输出字符串“345”。

习题七

一、选择题

1.在VB应用程序运行时,能使某一控件对象获取焦点的方法是:。

A) MoveFocus B) GotFocus C) SetFocus D) LostFocus

2.VB应用程序窗口中的各个控件之间的Tab顺序是由各个控件自己的属性决定的。

A) Tab B) Index C) TabIndex D) IndexTab

3.下列属性中肯定不是框架控件的属性是:。

A) Text B) Caption C) Left D) Enabled

4.下列关于框架控件的描述中,不正确的是:。

A) 框架是一种容器控件,主要用于为其他控件分组。

B) 框架与框架中的其他控件是一个整体,可整体移动、复制或删除。

C) 如果框架的Caption属性值为空字符串,则该框架是一个封闭的矩形框。

D) 框架可以响应GotFocus事件

5.若要删除列表框中的某个指定列表项目,应该使用的方法是:。

A) DelItem B) AddItem C) Clear D) RemoveItem

6.下列叙述中错误的是:。

A)列表框与组合框都有List属性组 B)列表框有Selected属性组,组合框没有

C)列表框和组合框都有Style属性D)组合框有Text属性、而列表框没有

7.用户在组合框中输入或选择的数据,可以通过组合框的属性获得。

A)List B)ListIndex C)Text D)ListItem

8.在三种不同风格的组合框中,用户只能选择、不能输入数据的组合框是:。

A)下拉式组合框B)简单组合框C)下拉式列表框D)三者都不能

9.滚动条可以响应的事件是:。

A)Load B)Scroll C)Click D)MouseDown

10.当用户单击滚动条两端的箭头时,其 Value 值每次增减的值由其属性决定。

A)

11时,将触发滚动条的事件。

12.若设置某计时器的Interval 属性为 10000 ,则该计时器每间隔触发一个 Timer 事件。

A)1秒钟B)10秒钟 C)1分钟 D)10分钟

13.下列语句中,能让计时器控件Timer1停止工作的语句是:。

A)Timer1.Enabled = False B)Timer1.Enabled = True

C)Timer1.Interval =10000 D)Timer1.Change = False

14.设窗体上有一个命令按钮数组,能在其Click事件代码中确定某个按钮的属性是:。

相关文档