文档库

最新最全的文档下载
当前位置:文档库 > Visual Basic 程序设计练习(一)答案

Visual Basic 程序设计练习(一)答案

Visual Basic 程序设计练习(一)

一、选择题

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

1.VB是一种面向对象的可视化程序设计语言,采取了___A______的编程机制。P5特点(2)

A) 事件驱动B) 按照过程顺序执行

C) 从主程序开始执行D) 按模块顺序执行

2.假如一个Visual Basic 应用程序由一个窗体和一个标准模块构成。为了保存该应用程序,

以下正确的操作是____B______。P16~17

A)只保存窗体模块文件。B)分别保存窗体、标准模块和工程文件。

C)只保存窗体模块和标准模块文件。D)只保存工程文件。

3.以下不属于VB工作模式的是_____B__________模式。P8三种工作模式

A)设计 B)编译 C)运行 D)中断

4.下列叙述中不正确的是_____C________ P41~42

A. 变量名的第一个字符必须是字母

B.变量名的长度不超过255个字符

C.变量名可以包含小数点或者空格

D.变量名不能使用关键字

5.在一个语句行内写多条语句时,语句之间应该用____D__分隔。P55(2)①

A.逗号D.分号C.顿号D.冒号

6.Dim b1, b2 as Integer 语句显式声明变量______C___。P42(1)②

A) b1和b2都为整型

B) b1是整型,b2是变体型

C)b1是变体型,b2是整型

D)b1和b2都为是变体型

7.语句If X=1 Then Y=1 ,下列说法是正确的_____B____。P69 1.②

A)X=1 和y=1都是赋值语句

B)X=1 是关系表达式,y=1是赋值语句

C)X=1 是赋值语句,y=1是关系表达式

D)X=1 和y=1都是关系表达式

8.For – Next 循环结构中,若循环控制变量的步长为0,则____A____。P77

A)形成无限循环B)循环体执行一次后结束循环

C)语法错误D)循环不执行即结束循环

9.下列中不是属性的是 C :

A. caption

B. text

C. Click

D. picture

10.在设计阶段,当双击窗体上的某个控件时,所打开的窗口是____C_____ P10第四行

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

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

11.下面_____D________不是字符串常量。P40

A."你好" B."" C."True" D.#2008-8-8#

12.在自定义的函数过程体内,至少对函数名赋_____B________值。P127⑤

A)两次B)一次C)三次 D)四次

13.设a=3,b=5,则以下表达式值为真的是_____B________

A.a> =b And b>10 B.(a>b) Or (b>0)

C.a=0 D.(-3+5>a) And (b>0)

14.从键盘上输入两个字符串,分别保存在变量strl、str2中。确定第二个字符串在第一个字

符串中起始位置的函数是_____D________ P52 表3.9

A.Left B.Mid C. String D.Instr

15.设a="Visual Basic",下面使b="Basic"的语句是____B_________ P52 表3.9

A.b=Left(a,8,12) B.b=Mid(a,8,5)

C . b=Right(a,5,5) D.b=Left(a,8,5)

16.在VB中把一组具有同一名字、不同下标的变量称为_____B______。

A)同类数据B)数组C)变量数组 D)变量

17.若用Dim a(10) As Integer 语句声明了数组a ,以下语句中错误的是__A____。P99

A)a(9)=a(-6) B)a(1)=56

C)a(8)=a(1)+a(3) D)a(1)=a(8)-34

18.对于动态数组a,如果需要重新定义大小,并保留原有数据,可使用语句___D______。

P101注意③

A)Dim B)ReDim C)Dim Preserve D)ReDim Preserve

19.在自定义的函数过程体内,至少对函数名赋_____A________值。

A)一次B)两次C)三次 D)四次

20.设有以下循环结构P79①形式2

Do

循环体

Loop While < 条件>

则以下叙述中错误的是______A_______。

A)若"条件"是一个为0的常数,则一次也不执行循环体

B)"条件"可以是关系表达式、逻辑表达式或常数

C)循环体中可以使用Exit Do语句

D)如果"条件"总是为True,则不停地执行循环体

21.要想从子过程调用后返回两个结果,下面子过程语句合法的是______________。?

22.在窗体上有一个文本框控件,名称为TxtTime;一个计时器控件,名称为Timerl,要求

每一秒钟在文本框中显示一次当前的时间。程序为:

Private Sub Timerl ______

TxtTime.text=Time

End Sub

在下划线上应填人的内容是_____D________

A.Enabled B.Visible C. Interval D._Timer( )

23.在窗体上画两个单选按钮,名称分别为Optionl、Option2,标题分别为"宋体"和"黑体";

一个复选框,名称为Checkl,标题为"粗体";一个文本框,名称为Textl,Text属性为"

改变文字字体"。要求程序运行时,当“宋体”单选按钮和“粗体”复选框被选中,能够实现上述要求的语句序列是_____D________ P153

A.Optionl.Value=True B.Optionl.Value=True

Checkl.Value=False Checkl.Value=True

C. Option2.Value=False D.Optionl.Value=True

Checkl.Value=True Checkl.Value=1

24.要想在过程Procl调用后返回两个结果,下面的过程定义语句合法的是__C__P134 3.①

A.Sub Procl(ByVal n,ByVal m)

B.Sub Procl(n,ByVal m)

C. Sub Procl(n,m)

D.Sub Procl(ByVal n,m)

25.在参数传递过程中,使用关键字_____A___来修饰参数,可以使之按值传递。P133

A.ByVal B.ByRef

C. Value D.Reference

26.语句X=X+1的正确含义是________D_________。P61 2.②

A. 判断变量X的值与X+1的值是否相等。

B. 将变量X的值存到X+1中去。

C. 将变量X的值为1。

D. 将变量X的值加1后赋给变量X。

27.列表框中的列表项的数目可通过以下哪个属性的值获得_____B________ P110表5.1

A.Count B.ListCount C.ListIndex D.Index

28.要清除列表框中所有的列表项时,应使用以下哪种方法_____B________ P111⑶

A.Remove B.Clear C.Removeitem D.Cls

29.产生[10,37]之间的随机整数的Visual Basic表达式是_____D________ P51

A.Int(Rnd*27)+10 B.Int(Rnd*28)+10

C.Int(Rnd*27)+11 D.Int(Rnd*28)+11

30.组合框没有______B__________属性。

A)Enabeld B)Caption C)Visible D)BackColor

二、填空题

1.对象的三要素是__属性_____ 、_____方法_____、___事件_______。P20

2.要设置某对象的焦点,应使用该对象的__SetFocus_____ 方法。

3.VB中的变量按其作用域分为__局部__变量、__模块__变量和_全局__变量。P140

4.窗体中的窗体级变量应在___通用__段声明,它作用于该窗体的_任何过程__。P140 2.

5.Redim语句作用是___定义动态数组的大小______。P101

6.从列表框中删除某列表项的方法是__RemoveItem__________。P111

7.若有语句a = Array(1,3,5,7,9 ),则a( 3 )的值为___7________。P103

三、程序填空题

1.欲将一个十进制数转换成二进制数,试完善下列程序。.

Private Sub Command1_Click()

Dim x$, n%, a%

n = 20

x = “”

Do While n>0

a = n Mod 2

n = n \ 2

x = a & x ‘倒取字符串

Loop

Print x

End Sub

2.欲在数组a中删除某个元素,试完善下列程序。P108~109例5.8 Private Sub Command1_Click()

Dim a( ), i%, k%, x%, n%

a = Array(1, 4, 7, 9, 12, 14, 23, 56)

n= __UBound(a)___

x = Val(InputBox("输入要删除的数x :"))

For k = 0 To n

If __x = a(k) Then Exit For_

Next k

If k > n Then MsgBox "找不到此数据": Exit Sub

For i = k + 1 To n

a(i - 1) = a( i )

Next i

Print "删除后:";

ReDim Preserve a( n – 1 )

For i = 0 To Ubound(a)

Print a(i);

Next i

2.在窗体上放置一个Label1控件,一个Command1和一个Timer控件,欲将计算机系

统时间(每半秒刷新一次)显示在窗体上,试完善下列程序。P161定时器触发的条件Private Sub Form_Load( )

Timer1. __Enabled__ = True

Timer1.Interval= 1000

End Sub

Sub Timer1_Timer( )

Label1.caption=Now

End Sub

Sub Command1_Click( )

End

End Sub

四、阅读程序写运行结果

1.下列程序执行后,运行结果是__5 10 15 20 25 。

Private Sub Command1_Click()

Dim cn%, n%

cn = 0

n = 1

Do

n = n + 1

If n Mod 1 = 0 And n Mod 5 = 0 Then …能被1和5整除的数Print n;

cn = cn + 1 …每打印一个值加1

End If

Loop Until cn = 5 …打印5个值后退出

End Sub

2.下列程序执行后,运行结果是________________ 。

Private Sub Form_Click()

Dim i%

Print Tab(17); "◆"

Print Tab(16); "◆◆"

For i = 1 To 5

Print Tab(16 - i); "◆"; Spc(i - 1); "◆"; Spc(i - 1); "◆"

Next i

For i = 5 To 1 Step -1

Print Tab(16 - i); "◆"; Spc(i - 1); "◆"; Spc(i - 1); "◆"

Next i

Print Tab(16); "◆◆"

Print Tab(17); "◆"

End Sub

3.下列程序执行后, 运行结果是________________ 。

Private Sub Command1_Click()

Dim ch As String * 1, j%, i%

For i = 0 To 4 ‘输出5行

Print Tab(4);

ch = Chr(Asc("A") + i) ‘第一行开头为”A”外,以后各行开头字符的ASCII码值+1 For j = 0 To 4 ‘输出5列

If ch > "E" Then ch = "A" ‘如果输出到E后,让ch回到A

Print ch; Spc(2);

ch = Chr(Asc(ch) + 1)

Next j

Print

Next i

End Sub

4.有如下S子过程、Ssub子过程和Command1_Click事件过程,调用Command1_Click()3

3

2

次,最后一次输出结果是___2____________6______。

Sub S()

Static Z As Integer ‘Z为静态变量,有累加过程

Z = Z + 1 ‘第一次调用Z为1;第二次调用Z为2;第三次调用Z为3

Print Z ‘第一个被输出的

Print

End Sub

Sub ssub(x%, y%) ‘是地址调用,会影响实参值

Dim y1% ‘y1为动态变量,每次调用被刷新

Static y2% ‘y2为静态变量,有累加过程

y1 = y1 + x ‘每次调用y1都为2(0+2)

y2 = y2 + x ‘第一次调用y2为2;第二次调用y2为4;第三次调用y2为6 x = y1 ‘x的值就是实参Z的值

y = y2 ‘形参y的值,就是实参y的值

End Sub

Private Sub Command1_Click()

Dim Z As Integer, y% ‘Z为动态变量,每次调用被刷新

Z = Z + 2 ‘每次调用都为2(0+2)

Call S ‘注意是无参调用

Print Z ‘第二个被输出的

Print

ssub Z, y ‘有参调用(Z(2)→x y(0)→y)

Print Z, y ‘第三个被输出的

Print

End Sub

注解:本题特点:主调过程Command1_Click()与子过程S()同时用到同名变量Z,他们是两个不同的变量,作用域在各自的过程中,不能混淆了!y也一样。

四、编程题(略)

1.函数Y的表达式如下:

Visual Basic 程序设计练习(一)答案

在单击命令按钮1的事件过程中,编程序,当输入X的值后,计算并输出Y的值。

Private Sub Command1_Click()

End Sub

2.随机产生20个学生的成绩,如图5-1所示统计各分数段人数。

(1)单击命令按钮“产生并显示数据”(Command1),产生的数据在Picture1中显示;(2)单击命令按钮“统计分数段人数”(Command2),统计结果在Picture2中显示;

(程序代码写在下面事件过程中)

Private Sub Command1_Click()

Visual Basic 程序设计练习(一)答案

End Sub

Private Sub Command2_Click()

End Sub

3.声明一个一维数组,有20个元素,每个元素最多存放10个字符,且由随机数形成小写字母构成。

要求:

(1)在窗体自动载入时使Command2不能使用。

(2)单击命令按钮“排序前”(Command1)时,生成并在窗体上按每行5列打印该数组。最后使Command2可以使用。

(3)单击命令按钮“排序后”(Command2)时,对以上数组进行排序(升序),并在窗体上按每行5列打印排序后的数组。

(程序代码填写在下面事件过程中)

Visual Basic 程序设计练习(一)答案

Private Sub Form_Load()

End Sub

Private Sub Command1_Click()

End Sub

Private Sub Command2_Click() End Sub