文档库 最新最全的文档下载
当前位置:文档库 › VB练习题四-六

VB练习题四-六

练习题四

1、选择题:

(1)下列程序运行后,变量a的值为_____。

Private Sub Command1_Click()

A% = 14

b% = 12

A% = b% - A%

b% = b% + A%

A% = -b% ^ 2

Print A

End Sub

A.100 B.-100

C.a$x D.CdE

(2)在窗体Form1上画两个文本框Text1、Text2和一个命令按钮Command1,然后编写如下事件过程:

Private Sub Command1_Click( )

Dim a As Single

a = Text1.Text+Text2.Text

Print a

End Sub

程序运行后,在Text1和Text2中分别输入123和321,然后单击Command1命令按钮,则输出结果为_____。

A.444 B.321123

C.123321 D.123231

(3)在窗体上有一个命令按钮和一个文本框,其名称分别为Command1和Text1,把文本框的Text属性置空,然后编写如下事件过程:

Private Sub Command1_Click()

a = InputBox("Enter an Integer")

b = InputBox("Enter an Integer")

Text1.Text = b + a

End Sub

程序运行后,单击命令按钮,如果在输入对话框中分别输入8和10,则文本框中显示的内容是_____。

第6章过程

A.108 B.18

C.810 D.出错

(4)下列程序段的功能是_____。

x = 10.5

y = Int(x+0.5)

Print y

A.求平均值B.将一实数四舍五入取整

C.求绝对值D.舍去一实数的小数部分

(5)编写如下程序:

Private Sub Form_Click()

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

b = 6 :

c = 6.5

a =

b = c

Print a

End Sub

程序运行后,单击窗体,则在窗体上显示的是_____。

A.1 B.2

C.-1 D.0

(6)关于语句If x=1 Then y=1,下列说法正确的是_____。

A.x=1为赋值语句,y=1为关系表达式

B.x=1和y=1均为关系表达式

C.x=1为关系表达式,y=1为赋值语句

D.x=1和y=1均为赋值语句

(7)在Select Case x结构中,描述判断条件3 ≦x ≦7的测试项应该写成_____。

A.Case 3 ≦X ≦7 B.Case 3 ≦X , X ≦7

C.Case Is ≦7 , Is ≧3 D.Case 3 To 7

(8)下列程序段执行的结果是_____。

Dim x

If x Then Print x Else Print x + 1

A.1 B.0

C.-1 D.不确定

(9)下列程序段执行的结果是_____。

x = 8

y = -6

If Not x > 0 Then x = y - 3 Else y = x + 3

Print x - y; y - x

A.-3 3 B.8 -9

- 2 -

第6章过程

C.-6 8 D.3 -3

(10)计算Max的值,当x大于y时,Max = x;否则Max = y。下列语句错误的是_____。

A.If x >= y Then Max = x: Max = y

B.If x >= y Then Max = x Else Max = y

C.Max = y: If x >= y Then Max = x

D.If x <= y Then Max = y Else Max = x

(11)关于下面For-Next循环描述正确的是_____。

For i=0 to 10 Step 0

Print "*";

Next i

A.循环无结束条件B.循环是一个无限循环

C.循环体执行11次D.循环体执行1次

(12)关于Exit For语句的使用说明正确的是_____。

A.Exit For语句可以退出任何类型的循环

B.一个循环只能有一个这样的语句

C.Exit For表示返回For语句去执行

D.一个For循环中可以有多条Exit For语句

(13)在过程中有语句For I = N1 To N2 Step N3,在该循环体内有下列四条语句,其中_____会影响循环执行的次数。

①N1 = N1 + I ②N2 = N2 + N3

③I = I + N3 ④N3 = 2 * N3

A.①②B.①②③

C.③D.①②③④

(14)执行下面的三重循环程序段后,a 的值为_____。

For i=1 To 3

For j=1 To I

For k=j To 3

a=a+1

Next k

Next j

Next I

A.3 B.9

C.14 D.21

(15)执行下面过程中的循环程序段后,I的值为_____。

Private Sub Form_Click()

Dim I As Integer, Sum As Integer

- 3 -

- 4 -

第6章 过 程

For I = 0.5 To 8.5 Step 2.5

Sum = Sum + I Next I

Print Sum, I End Sub A .10.5 B .11 C .10

D .20

2、填空题:

(1)显示如图4-33所示的输入框的语句是_____。

(2)显示如图4-34所示的消息框的语句是_____。

(3)显示如图4-35所示的图形,完成下面程序中的语句:

Private Sub Form_Click()

Print Tab(_____); "*"; Tab(_____); "*"

Print Tab(_____); "*"; Tab(_____); "*" Print Tab(8); "*"; Space(_____); "*" Print Tab(_____); "*"; Space(1); "*" Print Tab(_____); "*" End Sub

图 4-33

图 4-34

第6章过程

图4-35

(4)任意输入三个数,将其按从小到大的顺序输出,完成下面程序中的语句。

Private Sub Form_Click()

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

Dim temp As Integer

a = V al(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

(5)以下程序用来产生20个0~99之间的随机整数,并将其中的偶数打印出来。

Private Sub Form_Click()

Dim i As Integer, x As Integer

For i = 1 To 20

x = _____

If _____Then Print x

Next i

End Sub

3、阅读题:

- 5 -

第6章过程

(1)阅读程序,写出程序运行后的输出结果:_____。

Private Sub Form_Click()

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

b = 6:

c = 6.5

a =

b = c

Print a

End Sub

(2)阅读程序,写出程序运行后的输出结果:_____。

Private Sub Form_Click()

A = 1:

B = 1

A = A + B:

B = A + B: Print A, B

A = A + B:

B = A + B: Print A, B

A = A + B:

B = A + B: Print A, B

(3)阅读程序,写出程序运行后的输出结果:_____。

Private Sub Form_Click()

Cls

A = 24:

B = 25:

C = 26

Print A = 24,

Print B = 25

Print C = A + B

Print B > A, C > A + B And A + C > B

Print "D="; A + B, "E="; C

End Sub

(4)阅读程序,写出程序运行后的输出结果:_____。

Private Sub Form_Click()

A$ = "software and hardware"

B$ = Right(A$, 8)

C$ = Mid(A$, 1, 8)

MsgBox A$, , B$, C$, 1

End Sub

(5)阅读程序,写出程序运行后的输出结果:_____。

Private Sub Form_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

End If

- 6 -

第6章过程

Print a + b + c

End Sub

(6)阅读程序,写出程序运行后的输出结果:_____。

Private Sub Form_Click()

For X = 5 To 1 Step -1

For Y = 1 To 6 - X

Print Tab(Y + 5); "*";

Next Y

Print

Next X

End Sub

(7)阅读程序,写出程序运行后的输出结果:_____。

Private Sub Form_Click()

Dim a As Integer, b As Integer

a = 1:

b = 0

Do While a <= 5

b = b + a * a

a = a + 1

Loop

Print a, b

End Sub

(8)阅读程序,写出程序运行后的输出结果:_____。

Private Sub Form_Click()

Dim ch As String, i As Integer

ch = "DEF"

For i = 1 To Len(ch)

ch = Mid(ch, 2 * i - 1, 1) & Left(ch, Len(ch))

Print ch

Next i

End Sub

(9)阅读程序,写出程序运行后的输出结果:_____。

Private Sub Form_Click()

Dim p As Integer, i As Integer

p = 1

For i = 1 To 5

p = p + (2 * i - 1) / (2 * i + 1)

If p >= 20 Then Exit For

- 7 -

- 8 -

第6章 过 程

Next i Print i, p End Sub

(10)阅读程序,写出程序运行后的输出结果:_____。

Private Sub Form_Click()

Dim p As Integer, i As Integer, n As Integer p = 20: n = 20

For i = 1 To n Step p

p = p + 2 : n = n - 3 i = i + 1

If p >= 10 Then Exit For Next i Print i, p, n End Sub

4、编程题:

(1)有函数:??

??

?≥-<≤-<=)

10(124)101(2

3)1(x x x x x x

y 编写程序,输入x 值后,则输出相应y 值。要求用“If …ElseIf …EndIf ”和用“Select Case ”两种方法完成该题目。

(2)编写程序,随机生成100个两位正整数,并统计其中小于等于40、大于40小于等于70及大于70的数据个数。

(3)编写程序,分别统计1~100中,满足3的倍数、7的倍数的数各有多少? (4)编写程序,随机生成20个三位正整数,将其中的偶数与奇数分别输出到窗体上。 (5)编写程序,求100~300间的所有素数。

(6)编写程序,输出所有的“水仙花数”。所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33。

(7)编写程序,判断某整数是一个回文数。所谓回文数是指左右数字完全对称的自然数。例如,121、12321、484、555都是回文数。

(8)在文本框中输入一个字符串,并统计其中字母、数字、空格及其它字符的个数。 (9)求一元二次方程 ax 2+bx+c=0 的根。

(10)计算上学期你所学的课程的总成绩和平均成绩。

第6章过程

练习题五

1、选择题:

(1)下列数组声明语句中,正确的是_____。

A.Dim a[3 , 4] As Integer

B.Dim a(3 , 4) As Integer

C.Dim a(n , n) As Integer

D.Dim a(34) As Integer

(2)在Visual Basic语言中,定义数组时,其下标允许是_____。

A.变量

B.常量

C.算数表达式(可含变量)

D.变量、常量、算数表达式(可含变量)

(3)若有声明语句Dim a(1 to 10) As Integer,则下列应用_____合法。

A.a(1) = "adk" B.a(7) = 32768

C.a(8) = "23" D.a(0) = 2.3

(4)用Dim A (-3 To 5) As Integer语句定义的数组的元素个数是_____。

A.6 B.7

C.8 D.9

(5)若有说明:Dim a(3,4) As Integer,则下面正确的叙述是_____。

A.每个元素都有初值,但未必都为0

B.只有a(0,0)初值为0

C.数组a中每个元素的初值都为0

D.此说明语句不正确

(6)下列语句中的_____可以用来正确的声明一个二维的动态数组。

A.Private A(n) As Integer B.Dim A( ) As Integer

C.Dim A( , ) As Integer D.Dim A(1 to n)

(7)对动态数组A( ),若原数组为A(5),要改变数组A(10)时,为保证其数组内的数据不丢失,应使用_____语句进行定义。

A.Dim A(10) B.ReDim A(10)

C.ReDim Preserve A(10) D.Dim A(5 To 10)

(8)以下程序段输出的结果是_____。

- 9 -

第6章过程

Dim a

a = Array(1,2,3,4,5,6,7)

For i = Lbound(a) To Ubound(a) : a(i) = a(i) * a(i) : Next

Print a(i)

A.49 B.0

C.不确定D.程序出错

(9)下列有关数组的说法不正确的是_____。

A.在窗体模块中不可以定义全局数组

B.可以使用Erase语句释放所有数组所占的存储空间

C.语句Dim X(3.6+2) As Integer,定义了一个维上界是6的一维整型数组

D.ReDim语句只能出现在过程内部

(10)下面有关数组处理的叙述中,不正确的是_____。

①在过程中用Redim语句定义的动态数组,其下标的上下界可为赋了值的变量

②在过程中,可以使用dim,private和stati c语句定义数组

③用Redim语句重新定义动态数组时,不得改变该数组的数据类型

④可用Public语句在窗体模块的通用说明处定义一个全局数组

A.①②③④B.①③④

C.①②③D.②④

(11)以下有关控件数组的说法中错误的是_____

A.控件数组由一组具有共同名称和相同类型的控件组成

B.控件数组中的每一个控件共享同样的事件过程

C.控件数组中的每个元素的下标由控件的Index属性指定

D.同一控件数组中的元素只能有相同的属性设置值

(12)假设有数组定义语句:Dim A(5) As Integer,List1为一个列表框控件,下面给数组元素赋值的语句错误的是_____。

A.A(4) = 5

B.A(4) = InputBox("请输入一个数:")

C.A = Array(1,2,3,4,5,6)

D.A(4) = List1.ListCount

(13)执行下面程序窗体上显示的结果是_____。

Private Sub Form_click()

Dim A(5) As Integer, B(3 To 8, 200 To 208)

Print UBound(A); UBound(B, 1); UBound(B, 2)

End Sub

A.5 3 200 B.5 8 200

C.5 8 208 D.5 3 208

- 10 -

第6章过程

(14)阅读下面的程序段:

For i = 1 To 3

For j = 1 To I

For k = j To 3

a = a + 1

Next k

Next j

Next I

执行上面的三重循环后,a 的值为_____。

A.3 B.9

C.14 D.21

(15)下述对控件数组描述中,正确的是_____。

A.组成控件数组的控件所有的属性值都相同

B.按钮与文本可以组成控件数组

C.窗体也可以创建成控件数组

D.控件数组的外观可以不相同

2、填空题:

(1)以下程序代码将具有100个元素的数组A按每行10个数的形式赋值给二维数组B。即将A(1)到A(10)依次赋值给B(1, 1)到B(1, 10),将A(11)到A(20)依次赋值给B(2, 1)到B(2, 10)。……,将A(91)到A(100)依次赋值给B(10, 1)到B(10, 10)。

Private Sub Command1_Click()

Dim A(1 To 100) As Integer, B(1 To 10, 1 To 10) As Integer

For I = 1 To ___①___

A(I) = Int(Rnd * 5 + 1)

Next I

For I = 1 To ___②___

For J = 1 To ___③___

B(I, J) = ___④___

Print B(I, J);

Next J

Print

Next I

End Sub

(2)以下程序代码使用二维数组A表示矩阵,实现单击命令按钮Command1时使矩阵的两条对角线上的元素值全为1,其余元素值全为0。

Private Sub Command1_Click()

- 11 -

第6章过程

Dim A(4, 4)

For I = 1 To 4

For J = 1 To 4

A(___①___) = 0

Next J

A(___②___) = 1

A(___③___) = 1

Next I

For I = 1 To 4

For J = 1 To 4

Print A(I, J);

Next J

Print

Next I

End Sub

(3)以下程序代码实现单击命令按钮Commandl时生成20个(0,100)之间的随机整数,存于数组中,打印数组中大于50小于90的数,并求这些数的和。

Private Sub Command1_Click()

Dim arr(1 To 20)

For i = 1 To 20

arr(i) = ___①___

Text1.Text = Text1.Text & arr(i) & Chr(13) & Chr(10)

Next i

Sum = 0

For Each x ___②___

If ___③___ Then

Print Tab(20); x

Sum = ___④___

End If

Next ___⑤___

Print Tab(20); "Sum="; Sum

End Sub

(4)以下程序的功能是重新排列数组a中的元素,使相等元素相邻存放,并且保持它们在数组中首次出现时的相对次序。请填空。

例如,原数组:1,2,4,3,3,2,3,1,5,4

重排后:1,1,2,2,3,3,3,4,4,5

排列的原理是先删去重复的元素,在根据元素在数组中出现的次数展开排列。

Private Sub Form_Click()

- 12 -

第6章过程

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

Dim i As Integer, j As Integer, k As Integer, t As Integer, m As Integer

n = 10

ReDim a(n), b(n)

a(1) = 1: a(2) = 2: a(3) = 4: a(4) = 3: a(5) = 3

a(6) = 2: a(7) = 3: a(8) = 1: a(9) = 5: a(10) = 4

m = 1

___①___

Do While m <= t

k = 1: i = m + 1

Do While i <= t

If a(i) = a(m) Then

k = k + 1

For j = ___②___

a(j) = a(j + 1)

Next j

t = t - 1

Else

___③___

End If

Loop

b(m) = k: m = m + 1

Loop

For i = 1 To m - 1

Print a(i);

Next

Print

t = n

For i = m - 1 To 1 Step -1

For j = 1 To ___④___

a(t) = a(i)

___⑤___

Next j

Next i

For i = 1 To n

Print a(i);

Next i

End Sub

(5)以下程序代码生成大小可变的正方形图案,如图5-28图5-29所示,最外圈是第一

- 13 -

- 14 -

第6章 过 程

层,要求每层上用的数字与层数相同。

Option Base 1

Dim a() AS Integer

Private Sub Form_Click()

N=InputBox(“请输入行数:

”) ___①___

For i=___②___ ' i 为层数

For j=i To n-i+1

For k=i To n-i+1 ___③___ 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 ___④___

Next i End Sub

3、阅读题:

(1)阅读程序,写出程序运行后的输出结果:_____。

Private Sub Form_Click()

Dim M(10) As integer

For I=0 To 10

M(I)=2*I Next I

图5-29 n=9

图5-28 n=6

第6章过程

Print M(M(3))

End Sub

(2)阅读程序,写出程序运行后的输出结果:_____。

Private Sub Form_Click()

Dim M(2) As Integer

For i = 1 To 2

M(i) = 0

Next i

k = 2

For i = 1 To k

For j = 1 To k

M(j) = M(i) + 1

Print M(k);

Next j

Next i

End Sub

(3)阅读程序,写出程序运行后的输出结果:_____。

Private Sub Form_Click()

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)

End Sub

(4)阅读程序,写出程序运行后的输出结果:_____。

Private Sub Form_Click()

Dim M(5, 5) As Integer, S(5) As Integer

For I = 1 To 5

S(I) = 0

For J = 1 To 5

M(I, J) = I + J

S(I) = S(I) + M(I, J)

Next J

Next I

For Each X In S

Print X;

- 15 -

- 16 -

第6章 过 程

Next End Sub

(5)阅读程序,写出程序运行后的输出结果:_____。

Dim A() As Integer

Private Sub Form_Click()

ReDim A(1 To 5) For I = 1 To 5 A(I) = I Next I

ReDim A(1 To 10) ' 若将该语句改为ReDim Preserve A(1 To 10),结果如何?

For I = 6 To 10

A(I) = 2 * I Next I

For I = 1 To 10

Print A(I); Next I End Sub

四、编程题:

(1)随机生成15个100以内的正整数,并显示在一个文本框中,再将所有对称位置的两个数据对调后显示在另一个文本框中(第1个与第15个对调,第2个与第14个对调,第3个与第13个对调,……)。

(2)数组的逆置。随机生成10个两位正整数,存放在数组A 中,再将数组中的数据进行逆置,在窗体上输出逆置前后的数组元素。应用程序运行参考界面如图5-30所示。

(3)数组的循环移位。将10个数放入数组中,然后将其中第一个数放置到最后,其余数依次前移。应用程序运行参考界面如图5-31所示。

图 5-30

- 17 -

第6章 过 程

(4)随机生成20个两位正整数,统计其中有多少个不相同的数。 (5)设有一个二维数组A(5, 5),试编程计算:

① 数组所有元素之和;

② 所有靠边元素之和; ③ 所有对角线元素之和。

(6)求一个N ×N 矩阵A 的转置。N 从键盘输入,A 矩阵和它的转置矩阵A T 分别显示在两个文本框中。(提示:转置矩阵A T(I, J) =A(I, J))

(7)找出100以内的所有素数,存放在数组Prime 中。并将所找到的素数,按每行10个的形式显示在窗体上。

(8)求矩阵A 中每一列的最大值以及最大值所在的行。应用程序运行参考界面如图5-32所示。

(9)设计窗体,输入两个数,根据不同运算符计算结果。设需要进行的有加、减、乘、除、整除、余数、指数和字符串连接8种运算。根据运算方式,显示计算结果。应用程序运行

参考界面如图5-29所示。

图 5-32

图 5-31

- 18 -

第6章 过 程

(10)将升序数组A 和升序数组B ,合并成升序数组C 。应用程序运行参考界面如图5-30所示。

练习题六

1、选择题:

(1)Sub 过程和Function 过程最根本的区别是_____。

A .两种过程参数的传递方式不同

B .两种过程分别用于实现不同的程序功能

C .Sub 过程不能返回值,而Function

过程可以返回值

图 5-29

图 5-30

第6章过程

D.Function过程可以没有形参,而Sub过程不能没有形参

(2)以下叙述中,错误的是_____。

A.在Sub或Function过程中不能再定义其他Sub或Function过程

B.在调用过程时,与使用ByRef说明的形参对应的实参只能按地址传递方式结合

C.递归过程既可以是递归Function过程,也可以是递归Sub过程

D.在调用过程时,形参为数组的参数对应的实参只能是数组

(3)以下叙述中,正确的是_____。

A.一个Sub过程至少要有一个Exit Sub语句

B.一个Sub过程必须有一个End Sub语句

C.可以在Sub过程中定义一个Function过程,但不能定义Sub过程

D.调用一个Function过程可以获得多个返回值

(4)在程序中用Private Function Fun(X As Integer, Y As Single)定义了函数Fun。在调用函数Fun的过程中,变量I,J均定义为Integer型,能正确引用函数Fun的是_____。

①Fun(I , J) ②Call Fun(I , 3.65)

③Fun(3.14 , 234) ④Fun("245", "231.5")

A.①③B.②③④

C.①②③D.①②③④

(5)定义两个过程Private Sub1(St() As String)和Private Sub2(Ch() As String * 6),在调用过程中用Dim S(3) As String *6, A(3) As String定义了两个字符型数组,下面调用语句中正确的有_____。

①Call Sub1(S) ②Call Sub1(A)

③Call Sub2(A) ④Call Sub2(S)

A.①②B.①③

C.②③D.②④

(6)名为sort的Sub子过程的形式参数为一数组,以下的定义语句中正确的是_____。

A.Private Sub sort(A() As Integer)

B.Private Sub sort(A(10) As Integer)

C.Private Sub sort(ByV al A() As Integer)

D.Private Sub sort(A( , ) As Integer)

(7)窗体的Name属性为Frm1,在窗体模块通用声明处和过程Sub1中分别用Public K As Integer, Dim K As Integer 声明了两个同名变量K,则在过程Sub1中要访问全局变量K,可采用_____。

A.Frm1.K B.Form.K

C.Form1.K D.K

(8)以下叙述中,错误的是_____。

A.一个Visual Basic程序中的任何一个代码段都可以直接引用全局变量

- 19 -

第6章过程

B.过程级变量的作用范围仅限于声明它们的过程中

C.Static类型变量可以在标准模块的声明部分定义

D.通用过程可以由用户定义过程名

(9)以下叙述中,错误的是_____。

A.如果过程被定义为Static类型,则过程中局部变量都是Static类型

B.在设计Visual Basic程序时,窗体、标准模块、类模块等需要分别保存为文件

C.全局变量必须在标准模块中定义

D.事件过程可以由用户定义过程名

(10)运行下面程序,当在窗体上单击一下后,窗体上显示的结果是_____。

Private Sub Sub1(x As Integer)

Static m As Integer

m = m + x

x = x + 1

Print m;

End Sub

Private Sub Form_Click()

Dim I As Integer

For I = 1 To 6

Sub1 I

Next I

End Sub

A.1 3 5 B.1 2 3 4 5 6

C.1 3 6 10 15 21 D.1 4 9

2、填空题:

(1)采用Function过程编写求其中的最大值程序。(产生10个两位随机整数)Option Explicit

Option Base 1

Private Sub Form_Click( )

Dim A(10) As Integer

Dim I As Integer , Maxnumber As Integer

For I=1 to 10

A(I)=___①___

Print A(I);

Next I

Print

- 20 -

相关文档