VB实验教材模拟练习(有答案) 联系客服

发布时间 : 星期四 文章VB实验教材模拟练习(有答案)更新完毕开始阅读

B.喷墨打印机是使墨水喷射到纸上形成图案或字符的 C.激光打印机是利用激光成像、静电吸附碳粉原理工作的

D.针式打印机是击打式打印机,喷墨打印机和激光打印机是非击打式打印机

第二部分 Visual Basic程序设计

一、选择题(共10分,每题2分)

1.以下关系表达式中,运算结果为False的是 C 。 A.CInt(3.5)-Fix(3.5)>=0 B.CInt(3.5)-Int(3.5)>=0 C.Int(3.5)+Int(-3.5)>=0 D.Int(3.5)+Fix(-3.5)>=0 2.以下关于数组的说法中,错误的是 C 。

A.使用了Preserve子句的ReDim语句,只允许改变数组最后一维的上界 B.对于动态数组,ReDim语句可以改变其维界但不可以改变其数据类型 C.Erase语句的功能只是对固定大小的数组进行初始化 D.LBound函数返回值是指定数组某一维的下界 3.下列有关过程的说法中,错误的是 B 。

A.在Sub或Function过程内部不能再定义其它Sub或Function过程

B.对于使用ByRef说明的形参,在过程调用时形参和实参只能按传址方式结合 C.递归过程既可以是递归Function过程,也可以是递归Sub过程 D.可以像调用Sub过程一样使用Call语句调用Function过程

4.RGB 函数中红、绿、蓝三基色分别用0~255之间的整数表示。若使用三个滚动条分别对应红、绿、蓝三基色。为保证数值在有效范围内,则应对滚动条的 A 属性进行设置。 A.Max和Min B.SmallChange和LargeChange C.Scroll和Change D.Value

5.下列选项中,所包含的所有表达式能够将两位整数x的个位数与十位数对调(例如将78

转换为87)的是 A 。 ①Val(Right(x,1) & Left(x,1))

②Val(Right(Str(x),1) & Left(Str(x),1)) ③Val(Right(CStr(x),1) & Left(CStr(x),1)) ④Val(Mid(x,2,1)+Mid(x,1,1)) A.①② B. ②③ C.②④ D.①③④ 二、填空题(共20分,每空2分)

1.执行下面程序,单击Commandl,则窗体上显示的第一行是9 12,第三行是 3 -3, 最后一行是 0 -6 。

Option Explicit

Private Sub Command1_Click() Dim x As Integer, y As Integer x = 12: y = 0 Do While x > 0

If x Mod 4 = 0 Then

y = y + x Else

y = y - x End If x = x - 3 Print x, y Loop End Sub

2.执行下面程序,单击命令按钮Command1,则窗体上显示的第三行是 C ,最后一行是 4 。 Option Explicit Dim i As Integer

Private Sub Command1_Click() Print Test(\ End Sub

Private Function Test(t As String) As Integer If t >=\ Call Test (Chr(Asc(t) – 1 )) Print t i = i +1 End if Test = i End Function

3.执行下面程序,单击Command1,数组元素a(3,2)的值是 1 ,a(1,2)的值是 9 ,a(2,3)的值是 7 。 Option Base 1

Private Sub Command1_Click()

Dim n As Integer, i As Integer, j As Integer, a(3, 3) As Integer, k As Integer n = 3: k = 1

i = n: j = (n + 1) / 2 a(i, j) = k

For k = 2 To n * n i = i + 1: j = j + 1

If i > n And j <= n Then i = 1

ElseIf i <= n And j > n Then j = 1

ElseIf i > n And j > n Then i = i - 2: j = j - 1

ElseIf i <= n And j <= n And a(i, j) <> 0 Then i = i - 2: j = j - 1 End If a(i, j) = k Next k

For i = 1 To n For j = 1 To n

Pic1.Print Right(\ Next j Pic1.Print Next i End Sub

4.执行下列程序,单击CmdRun按钮,则窗体上显示的第一行是 4 HS ,最后一行是 7 SS 。 Option Explicit

Private Sub CmdRun_Click() Dim n As Integer For n = 4 To 7

If Fun1(n, Sqr(n)) Then Print n; \ Else

Print n; \ End If Next n End Sub

Private Function Fun1(n As Integer, i As Integer) As Boolean If i = 1 Then Fun1 = True

ElseIf n Mod i <> 0 Then Fun1 = Fun1(n, i - 1) Else

Fun1 = False End If End Function

三、操作题(共50分) 1.完善程序。(共12分)

【要求】

打开“C:\\学生文件夹”中“P1.vbp”文件,按参考界面形式编辑窗体界面,完善程序后,直接保存所有文件。

【题目】本程序的功能是查找一组数据中的众数。所谓众数,就是在这组数据中出现次数最多的数。注意:一组数据中的众数可能有多个(即有多个数据的出现次数相同)。事件过程Cmdfind主要功能是生成n个随机整数存入数组,再调用Freq过程,求出数组中每个不相同的数据出现的次数,再求出其中最大的出现次数值,最后将求出相应的众数输出。请完善本程序。

Option Explicit Option Base 1

Private Sub Cmdfind_Click()

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

Dim Shu() As Integer, Cs() As Integer, Max As Integer n = InputBox(\输入数据个数:\查找众数\ ReDim a(n) Randomize For i = 1 To n

a(i) = Int(Rnd * 5) + 5 Text1 = Text1 & Str(a(i))

If i Mod 10 = 0 Then Text1 = Text1 & vbCrLf Next i

Call Freq(a, Shu, Cs) Max = Cs(1)

For i = 2 To UBound(Cs) If Cs(i) > Max Then Max=Cs(i) End If Next i

For i = 1 To UBound(Cs)

If Then Text2 = Text2 & Shu(i) & \ 'Max = Cs(i) Next i End Sub

Private Sub Freq(a() As Integer, Shu() As Integer, Cs() As Integer) 'Shu数组用于存放A数组中不相同数据的值 'Cs数组用于存放对应不相同数据出现的次数

Dim i As Integer, j As Integer, js As Integer, n As Integer For i = 1 To UBound(a) js = 1

For j = 1 To n '搜索数组a中不相同的数据 If Shu(j) = a(i) Then Exit For Next j

If Then 'j > n n = n + 1

ReDim 'ReDim Preserve Shu(n), Cs(n) Shu(n) = a(i)

For j = i + 1 To UBound(a)

If a(j) = a(i) Then 'js = js + 1 Next j Cs(n) = js

List1.AddItem a(i) & \ End If Next i End Sub

2.改错题(共16分)