VB实验教材模拟练习(有答案) 下载本文

模拟练习一

第一部分 计算机信息技术基础知识

选择题(共20分,每题2分)

1.IP地址通常分为固定IP地址和动态IP地址,目前国内大多数家庭上Internet网的用户的IP地址都是 B 的。 A. 相同 B. 动态 C. 可以相同 D. 固定 2.下列四个不同进位制的数中,数值最大的是 B 。 A.十进制数73.5 B.二进制数1001101.01 C.八进制数115.1 D.十六进制数4C.4

3.下列关于台式PC机芯片组的叙述中,错误的是 D 。

A. 芯片组是主板上最为重要的部件之一,存储器控制、I/O控制等功能主要由芯片组实现 B. 芯片组与CPU同步发展,有什么样功能和速度的CPU,就需要什么样的芯片组 C. 芯片组决定了主板上能安装的内存最大容量及可使用的内存条类型 D. 同CPU一样,用户可以很方便,很简单地更换主板上的芯片组

4.路由器(Router)用于异构网络的互连,它跨接在几个不同的网络之间,所以它需要使用的IP地址个数为 _D _。

A.1 B.2 C.3 D.所连接的物理网络的数目

5.为了既能与国际标准UCS(Unicode)接轨,又能保护现有的中文信息资源,我国政府发布了 _C 汉字编码国家标准,它与以前的汉字编码标准保持向下兼容,并扩充了UCS/Unicode中的其他字符。

A.ASCII B.GB2312 C.GB18030 D.GBK

6. 在下列有关通信技术的叙述中,错误的是 C 。 A.目前无线电广播主要还是采用模拟通信技术 B.数字传输技术最早是被长途电话系统采用的

C.数字通信系统的信道带宽就是指数据的实际传输速率(简称“数据速率”) D.局域网中广泛使用的双绞线既可以传输数字信号,也可以传输模拟信号 7. 在下列有关商品软件、共享软件、自由软件及其版权的叙述中,错误的是 C 。 A.通常用户需要付费才能得到商品软件的合法使用权 B.共享软件是一种“买前免费试用”的具有版权的软件

C.自由软件允许用户随意拷贝,但不允许修改其源代码和自由传播

D.软件许可证确定了用户对软件的使用方式,扩大了版权法给予用户的权利 8.下列有关Internet的叙述错误的是 _A 。

A.随着Modem性能的提高,电话拨号上网的速度越来越快,目前可达1Mbps以上 B.用户从不同的网站下载信息,其速度通常有所不同

C.从Internet上搜索到的信息,有时不能下载到本地计算机 D.网页上的图片大多为GIF和JPEG格式

9.下面有关I/O操作的说法中正确的是 _A _。

A.为了提高系统的效率,I/O操作与CPU的数据处理操作通常是并行进行的

B.CPU执行I/O指令后,直接向I/O设备发出控制命令,I/O设备便可进行操作 C.某一时刻只能有一个I/O设备在工作

D.各类I/O设备与计算机主机的连接方法基本相同

10.在未压缩情况下,图像文件大小与下列因素无关的是 A 。 A.图像内容 B.水平分辨率 C.垂直分辨率 D.像素深度

第二部分 Visual Basic程序设计

一、选择题(共10分,每题2分) 1.数学表达式log10x?ex?1x2?y2?对应的VB表达式为 B 。

?cos(60)A.Log(x) / Log(10) + Abs(Sqr(x ^ 2 + y ^ 2)) / (Exp(x + 1) - Cos(60 * 3.14159 / 180)) B.(Log(x) / Log(10) + Abs(Sqr(x * x + y * y))) / (Exp(x + 1) - Cos(60 * 3.14159 / 180)) C.(Log(x) + Abs(Sqr(x ^ 2 + y ^ 2))) / (Exp(x + 1) - Cos(60 * 3.14159 / 180)) D.(Log(x) + Abs(Sqr(x * x + y * y))) / (e ^ (x + 1) - Cos(60 * 3.14159 / 180))

2.已知XB,则下列表达式中,结果为True的是 _C 。 A.Sgn(X-Y)+Sgn(A-B)=-1 B.Sgn(X-Y)+Sgn(A-B)=-2 C.Sgn(Y-X)+Sgn(A-B)=2 D.Sgn(Y-X)+Sgn(A-B)=0 3.以下对数组参数的说明中,错误的是 _A _。 A.在过程中可以用Dim语句对形参数组进行声明 B.形参数组只能按地址传递

C.实参为动态数组时,可用ReDim语句改变对应形参数组的维界 D.只需把要传递的数组名作为实参,即可调用过程

4.在文本框Text1中输入数字12,在文本框Text2中输入数字34,执行以下语句,可在文本框Text3中显示46的是 _B 。 A.Text3.Text=Text1.Text & Text2.Text

B.Text3.Text=Val(Text1.Text)+Val(Text2.Text) C.Text3.Text=Text1.Text+Text2.Text

D.Text3.Text=Val(Text1.Text) &Val(Text2.Text)

5.Print方法可在 _A 上输出数据。

①窗体 ②文本框 ③图片框 ④标签 ⑤列表框 ⑥立即窗口 A.①③⑥ B.②⑨⑤ C.①②⑤ D.③④⑥ 二、填空题(共20分,每空2分)

1.执行下面程序,单击命令按钮Command1,在弹出的InputBox对话框中输入8,并按“确

定”按钮,则a (1)的值是 21 ,a (5)的值是 _3 _ Option Explicit Option Base 1

Private Sub Command1_Click()

Dim a() As Integer, i As Integer, n As Integer n = InputBox(\输入N\ ReDim a(n)

Call process(a, 1, 1) For i = 1 To n Print a(i) Next i End Sub

Private Sub process(a() As Integer, m As Integer, n As Integer) Dim i As Integer i = UBound(a) a(i) = m a(i - 1) = n i = i - 2

Do While i >= 1

a(i) = a(i + 1) + a(i + 2) i = i - 1 Loop End Sub

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

Private Sub Command1_Click()

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

Dim j As Integer, k As Integer, n As Integer n = 16: k = 2 Do

For i = 1 To 4 For j = 1 To 4

If i + j = k Then a(i, j) = n n = n - 1 End If Next j Next i k = k + 1 Loop Until k > 8 For i = 1 To 4 For j = 1 To 4

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

3.执行下面程序,单击按钮Command1,在窗体上第一行显示的内容是 0.6 ,第三行显示的内容是 5.4 。

Option Explicit

Private Sub Command1_Click() Dim x As Single, i As Integer x = 1.2 For i = 1 To 3

x = x * i Print fun1(x) Next i End Sub

Private Function fun1(x As Single) As Single Static y As Single y = y + x fun1 = y / 2 End Function

4.运行下面程序,单击CmdRun,在窗体上显示a的值是 -25 ,b的值是 14 _ ,i的值是 13 _ 。

Option Explicit

Private Sub CmdRun_Click()

Dim i As Integer, a As Integer, b As Integer a = 1: b = 10

For i = a To b Step a + 1

a = a - i – 1: b = b + 1: i = i + 1 Next i Print a, b, i End Sub

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

【要求】

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

【题目】本程序的功能是,找出使用公式m?m?41(m=1~100)生成的一个数据序列中的所有非素数,分别输出这些非素数的全部真因子。所谓数据n的真因子是指除1和n之外的因子。

Option Explicit

Private Sub Command1_Click() Dim m As Integer, p As Long Dim st1 As String For m = 1 To 100

st1 = _' \ p = m * m - m + 41

2 If Not prime(p) Then Call fac(p, st1)

List1.AddItem \第\项 \ End If Next m End Sub

Private Function prime(n As Long) As Boolean Dim k As Integer For k = 2 To Sqr(n)

If n Mod k = 0 Then _'Exit Function Next k

prime = True End Function

Private Sub fac( )'n As Long, st As String Dim i As Integer

For i = 2 To n \\ 2 If n Mod i = 0 Then

st = 'st & I & \ End If Next i

st = Left(st, Len(st) - 1) End Sub

2.改错题(共16分)

【要求】

(1)打开“C:\\学生文件夹”中“P2.vbp”文件,按参考界面形式编辑窗体界面,改正程序中的错误后,直接保存所有文件;

(2)改错时,不得增加或删除语句,但可适当调整语句位置。

【题目】求在区间 [2,1000 ]上的完数。一个数如果恰好等于它的因子之和,这个数称为完数。一

个数的因子是指除了该数本身以外能够被其整除的数。例如,6是一个完数,因为6的因子是1,2,3,而且6=1+2+3。

Option Explicit

Private Sub Command1_Click() Dim i As Integer, j As Integer Dim b() As Integer For i = 2 To 1000

If wanshu(i, b) = True Then Picture1.Print i; \ For j = 1 To UBound(b) Picture1.Print b(j); \ Next j

Picture1.Print b(j) '输出最后一个因子

End If Next i End Sub

Private Function wanshu(x As Integer, b() As Integer) As Boolean Dim i As Integer, j As Integer, sum As Integer ReDim b(1) b(1) = 1 j = 1

For i = 2 To x - 1 sum = 1

If x Mod i = 0 Then sum = sum + i j = j + 1 ReDim b(j) b(j) = i End If Next i

If sum = x Then wanshu = True End Function 3.编程题(22分) 【要求】

(1)打开“C:\\学生文件夹”中“P3.vbp”文件,根据题目要求编写和调试程序后,直接保存所有文件。

(2)程序代码书写应呈锯齿形,否则适当扣分。

【题目】编写程序,生成两个均由两位随机整数组成的数组,每个数组中的10个元素互不相同,找出存在于这两个数组中的相同的数并输出。 【编程要求】

1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界 面元素大小适中,且均可见;

2.运行程序,按“生成”按钮,调用arry过程随机生成两个数组,并分别按图示格式输出到文本框1与文本框2中;按“查找”按钮,则找出两个数组中共同存在的数据,输出到文本框3中,若没有共同的数据,则输出“无共同元素”;按“清除”按钮,将3个文本框清空;

3.程序中应定义一个名为arry的通用Sub过程,用于生成无重复数的两个数组。 Private Sub Command1_Click()

Dim i As Integer Call arry(a(), b()) For i = 1 To 10

Text1 = Text1 & a(i) & \ Text2 = Text2 & b(i) & \ Next i End Sub

Private Sub Command2_Click() Dim i As Integer, j As Integer For i = 1 To 10 For j = 1 To 10

If a(i) = b(j) Then Text3 = Text3 & a(i) & \ Next j Next i

If Len(Text3) = 0 Then Text3 = \无相同元素\End Sub

Private Sub Command3_Click() Text1 = \ Text2 = \ Text3 = \End Sub

Private Sub arry(a() As Integer, b() As Integer)

Dim m As Integer, n As Integer, i As Integer, k As Integer ReDim Preserve a(1) a(1) = Int(Rnd * 90 + 10) Do

m = Int(Rnd * 90 + 10) For i = 1 To UBound(a)

If m = a(i) Then Exit For Next i

If i = UBound(a) + 1 Then ReDim Preserve a(i) a(i) = m End If

Loop Until UBound(a) = 10 ReDim Preserve b(1) b(1) = Int(Rnd * 90 + 10) Do

n = Int(Rnd * 90 + 10) For i = 1 To UBound(b)

If n = b(i) Then Exit For Next i

If i = UBound(b) + 1 Then ReDim Preserve b(i)

b(i) = n End If

Loop Until UBound(b) = 10 End Sub

模拟练习二

第一部分 计算机信息技术基础知识

选择题(共20分,每题2分)

1.下列有关PC机及CPU芯片的叙述正确的是 D 。 A.目前PC机所用CPU芯片均为Intel公司生产 B.PC机只能安装MS-DOS或Windows操作系统

C.PC机主板型号与CPU型号是一一对应的,不同的主板对应不同的CPU D.Pentium MMX中的“MMX”是“多媒体扩展指令集”的英文缩写

2.计算机中使用的图像文件格式有多种。下面关于常用图像文件的叙述中,错误的是 A 。

A.JPG图像文件不会在网页中使用

B.BMP图像文件在Windows环境下得到几乎所有图像应用软件的支持 C.TIF图像文件在扫描仪和桌面印刷系统中得到广泛应用 D.GIF图像文件能支持动画,数据量很小

3.随着Internet的飞速发展,其提供的服务越来越多。在下列有关Internet服务及相关协议的叙述中,错误的是_C _。

A.电子邮件是Internet最早的服务之一,主要使用SMTP/POP3协议

B.WWW是目前Internet上使用最广泛的一种服务,常使用的协议是HTTP C.文件传输协议(FTP)主要用在Internet上浏览网页时控制网页文件的传输 D.远程登录也是Internet提供的服务之一,它采用的协议称为Telnet

4.在下列图像格式(标准)中,由ISO和IEC这两个国际机构联合组成的专家组所制订的是 _ C 。

A.BMP B.GIF C.JPEG D. TIF

5.二进数10111000和11001010进行逻辑“或”运算,结果再与10100110进行逻辑“与”运算,最终结果的十六进制形式为 B 。

A. 95 B. A2 C. AE D. DE 6.以下关于汉字编码标准的叙述中,错误的是 A 。 A.Unicode和GB18030中的汉字编码是相同的

B.GB18030汉字编码标准兼容GBK标准和GB2312标准 C.我国台湾地区使用的汉字编码标准主要是BIG5 D.GB18030编码标准收录的汉字数目超过2万个

7.近年来由于平板电脑/智能手机的迅猛发展,再加上安卓系统的开发性,大量的第三方软件开发商和自由软件开发者都在为安卓系统开发应用软件。目前安卓应用开发主要是基于 D 。

A.汇编语言 B.BASIC语言 C.C语言 D. JAVA语言

8.目前在网络互连中用得最广泛的是TCP/IP协议。事实上,TCP/IP是一个协议系列,它已经包含了100多个协议。在下列TCP/IP协议中,传输层使用的协议是 D 。 A.TELNET B.FTP C.HTTP D.UDP

9.MP3是一种广泛使用的数字声音格式。下列关于MP3的叙述正确的是 C 。

A.表达同一首乐曲时,MP3的数据量比MIDI声音要少得多 B.MP3声音的质量与CD唱片声音的质量大致相当 C.MP3声音适合在网上实时播放

D.同一首乐曲经过数字化后产生的MP3文件与WAV文件的大小基本相同 10.下面描述正确的是 D 。

A. 只要不使用U盘,就不会使系统感染病毒

B. 只要不执行U盘中和程序,就不会使系统感染病毒 C. 软盘比U盘更容易感染病毒

D. 设置写保护后使用U盘就不会使U盘内的文件感染病毒

第二部分 Visual Basic程序设计

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

1.以下的Sub过程定义语句中,正确的是 _A _。 A. Private Sub SP(a() As Integer, ByVal b As Single, c As Integer)

B. Private Sub SP(a() As Integer, ByVal b As Single, c As Integer) As Integer C. Private Sub SP(ByVal a() As Integer, b As Single, c As Integer)

D. Private Sub SP(ByVal a() As Integer, ByVal b As Single, c As Integer) 2.以下有关数组定义的说法中,错误的是 B 。 A. 固定大小数组必须先说明后使用

B. 动态数组的数据类型可以在用ReDim语句重定义是改变 C. 固定大小数组某一维的下届可以是负整数

D. 可以使用已定义的符号常数名说明数组的维界(即说明数组的大小)

3.表达式CInt(4.5)+CInt(-4.51)+Int(4.9)+Int(-4.1)+Fix(-1.9)+0 Mod 2的运算结果是 D 。

A.1 B.-1 C.-2 D.-3 4.若要使逻辑表达式x>y Xor y

A.Form、TextBox、PictureBox B.Form、PictureBox、Frame C.Form、TextBoX、Label D.PictureBox、TextBox、ListBox 二、填空题(共20分,每空2分)

1.执行下面程序,单击“生成数组”命令按钮Command1后,“数组:”图片框Picture1中显示的内容如图所示,再单击“处理”命令按钮Command2,则“结果:”图片框Picture2中第一行显示的x值是 0 ,y值是 73 _,最后一行显示的y值是 87 。

Option Base 1

Dim a(3, 5) As Integer

Private Sub Command1_Click() '生成数组 Dim i As Integer, j As Integer For i = 1 To 3

For j = 1 To 5

a(i, j) = Int(Rnd * 90) + 10 Picture1.Print a(i, j); Next j

Picture1.Print Next i End Sub

Private Sub Command2_Click() '处理 Dim i As Integer, j As Integer

Dim b(5) As Integer, x As Integer, y As Integer For i = 1 To 3 For j = 1 To 5 b(j) = a(i, j) Next j

Call m(b, x, y) Picture2.Print x, y Next i End Sub

Private Sub m(a() As Integer, ByVal x As Integer, y As Integer) Dim i As Integer x = a(1) y = x

For i = 2 To UBound(a)

If a(i) Mod 2 = 0 And a(i) < x Then x = a(i)

ElseIf a(i) Mod 2 = 1 And y < a(i) Then y = a(i) End If Next i End Sub

2.运行下列程序,单击Command1,在窗体上显示的第一行内容是 Y6 ,第二行的内容是 Z9 ,第三行的内容是 A10 。(“A”的ASCII码是65,“Z”是90) Option Explicit

Private Sub Command1_Click()

Dim I As Integer, st As String, n As Integer, p As String * 1 p = \

For I = 3 To 1 Step -1 n = Asc(p) - I

If n < 65 Then n = n + 26 st = Chr(n) st = st & F(I) Print st Next I End Sub

Private Function F(n As Integer) Dim I As Integer Static s As Integer For I = 1 To n s = s + I Next I F = s End Function 3.执行下面程序,当单击Command1后,列表框中显示的第一行是 _2 _,第三行是 _109 _。

Private Sub Command1_Click() Dim x As Integer, k As Integer x = 436 k = 2

Do Until x <= 1

If x Mod k= 0 Then x = x \\ k

List1.AddItem k Else

k = k +1 End If Loop End Sub 4.执行下面的程序,在窗体上显示的输出结果的第一行是 6.5 ,第三行是 19.5 。

Option Explicit

Dim a As Integer, b As Integer Private Sub Form_Click() Dim c As Integer a = 1 b = 3 c = 5 Print fun(c) Print a, b, c Print fun(c) End Sub

Private Function fun(x As Integer) As Single fun = a + b + x / 2 a = a + b b = a + x x = b + a End Function

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

【要求】

打开“C:\\学生文件夹”中“P1.vbp”文件,按参考界面形式编辑窗体界面,完善程序后,直接保存所有文件。 【题目】本程序的功能是找出给定范围内所有满足以下条件的整数:其平方数与立方数均由不同数字组成。例如13的平方数是169,立方数是2197,均由不同数字组成,因此13就是满足条件的整数。

Option Explicit Option Base 1

Private Sub Command1_Click()

Dim n As Integer, s As Long, c As Long, st As String For n = 11 To 50 s = n ^ 2

c = 'n ^ 3 If judge(s) And judge(c) Then

st = n & \ \ \

Text1.Text = Text1.Text & st & vbCrLf End If Next n End Sub

Private Function judge( ) As Boolean 'ByVal n As Long Dim i As Integer, num() As Integer, k As Integer Do

k = k + 1

ReDim Preserve num(k) num(k) = 'n Mod 10 n = n \\ 10 Loop Until n = 0

For i = 1 To UBound(num) - 1

For k = i + 1 To UBound(num)

If Then Exit Function 'num(i) = num(k) Next k Next i

judge = True End Function

2.改错题(共16分)

【要求】

(1)打开“C:\\学生文件夹”中“P2.vbp”文件,按参考界面形式编辑窗体界面,改正程序中的错误后,直接保存所有文件;

(2)改错时,不得增加或删除语句,但可适当调整语句位置。

【题目】本程序的功能是生成20个不可约真分数,每行5个显示在文本框中。要求分子和分母均为两位正整数且分数中没有相同数字。提示:不可约真分数是指分子小于分母并且分子和分母除1以外没有其它公约数。

Private Sub Command1_Click()

Dim Fz As Integer, Fm As Integer, Js As Integer

Do

Fz = Int(90 * Rnd) + 10 Fm = Int(90 * Rnd) + 10 If Fz < Fm Then

If Validate(Fz, Fm) Then

Text1 = Text1 & Fz & \ Js = Js + 1

If Js Mod 5 = 0 Then Text1 = Text1 & vbCrLf End If End If

Loop Until Js <= 20 'Js >= 20 End Sub

Private Function Validate(Fz As Integer, Fm As Integer) As Boolean Dim N As Integer, I As Integer, S As String For N = 2 To Fz

If Fz Mod N = 0 And Fm Mod N = 0 Then ExitFor 'Exit Function Next N

S = Fz + Fm 'Fz & Fm For I = 1 To Len(S) - 1

For N = I + 1 To Len(S)

If Mid(S, I, 1) = Mid(S, N, 1) Then Exit Function End If Next N Next I

Validate = True End Function

3.编程题(22分) 【要求】

(1)打开“C:\\学生文件夹”中“P3.vbp”文件,根据题目要求编写和调试程序后,直接保存所有文件。

(2)程序代码书写应呈锯齿形,否则适当扣分。

【题目】编写程序,先生成一个m行n列由两位随机整数组成的数组(m和n使用InputBox函数输入),然后求数组每行的平均值,并求出平均值最大的行。 【编程要求】

1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;

2.运行程序,单击“生成”按钮,在InputBox函数窗口中输入行数与列数后,在图片框中输出随机数组(数组由两位整数组成);再单击“计算”按钮,计算出每一行的平均值并输出到多行文本框1中,将平均值最大行的行号输出到文本框2中;单击“清空”按钮,将图片框和2个文本框清空;

3.程序中至少应定义一个通用过程,用于求最大值。

Option Explicit Option Base 1

Dim a() As Integer, maxhang As Integer Private Sub Command1_Click() Dim m As Integer, n As Integer Dim i As Integer, j As Integer

m = InputBox(\请输入行数\数组行数\ n = InputBox(\请输入列数\数组列数\ ReDim a(m, n) For i = 1 To m For j = 1 To n

a(i, j) = Int(Rnd * 90) + 10 Picture1.Print a(i, j); Next

Picture1.Print Next End Sub

Private Sub Command2_Click()

Dim i As Integer, j As Integer, b(4) As Single, sum As Integer For i = 1 To 4 sum = 0

For j = 1 To 5

sum = sum + a(i, j) Next

b(i) = sum / 5

Text1 = Text1 & b(i) & vbCrLf Next

Call max(b)

Text2 = maxhang End Sub

Private Sub max(b() As Single) Dim i As Integer, maxk As Single For i = 1 To 4

If maxk < b(i) Then maxk = b(i) maxhang = i End If Next End Sub

Private Sub Command3_Click() Picture1.Cls Text1.Text = \ Text2.Text = \End Sub

模拟练习三

第一部分 计算机信息技术基础知识

选择题(共20分,每题2分)

1.下列有关PC机的CPU、内存和主板的叙述中,正确的是 _A _。 A.大多数PC机只有一块CPU芯片,即使是“双核”CPU也是一块芯片 B.所有Pentium系列微机的内存条相同,仅有速度和容量大小之分

C.主板上芯片组的作用是提供存储器控制功能,I/O控制与芯片组无关

D.主板上CMOS芯片用于存储CMOS设置程序和一些软硬件设置信息 2. 下列文件类型中,不属于丰富格式文本的文件类型是 _B _。 A. DOC文件 B. TXT文件 C. PDF文件 D. HTML文件

3.十进制数101对应的二进制数、八进制数和十六进制数分别是 _A _ 。 A.1100101B、145Q和65H B.1100111B、143Q和63H。 C.1011101B、145Q和67H D.1100101B、143Q和61H

4.从算法需要占用的计算机资源角度分析其优劣时,应考虑的两个主要方面是(A)。 A. 空间代价和时间代价 B. 正确性和简明性 C. 可读性和开放性

D. 数据复杂性和程序复杂性

5.路由器的主要功能是 B 。

A.在传输层对数据帧进行存储转发 B.将异构的网络进行互连

C.放大传输信号 D.用于传输层及以上各层的协议转换 6.人们往往会用“我用的是10M宽带上网”来说明自己使用计算机连网的性能,这里的“10M”指的是数据通信中的 A 指标。 A.信道带宽 B.数据传输速率 C.误码率 D.端到端延迟

7.目前PC机的外存储器(简称“外存”)主要有软盘、硬盘、光盘和各种移动存储器。下列有关PC机外存的叙述错误的是 C 。

A.软盘因其容量小、存取速度慢、易损坏等原因,目前使用率越来越低

B.目前CD光盘的容量一般为数百兆字节,而DVD光盘的容量为数千兆字节

C.硬盘是一种容量大、存取速度快的外存,目前主流硬盘的转速均为每分钟几百转 D.闪存盘也称为“优盘”,目前其容量从几十兆字节到几千兆字节不等 8.下列有关计算机软件的叙述中,错误的是 C 。 A.软件一般是指程序及其相关的数据和文档资科

B.从软件的用途考虑,软件可以分为系统软件和应用软件,主要的系统软件有操作系统、程序设计语言处理系统和数据库管理系统等

C.从软件的权益来考虑,软件可以分为商品软件、共享软件和自由软件。共享钦件和自由软件均为无版权的免费软件

D.linux是一种系统软件,自由软件

9.下列关于打印机的叙述中,错误的是_ A 。 A. 激光打印机使用PS/2接口和计算机相连 B. 喷墨打印机的打印头是整个打印机的关键

C. 喷墨打印机属于非击打式打印机,它能输出彩色图像

D. 针式打印机独特的平推式进纸技术,在打印存折和票据方面具有不可替代的优势 10. 下面关于PC机I/O总线的说法中不正确的是 C _。 A.总线上有三类信号:数据信号、地址信号和控制信号 B.I/O总线的数据传输速率较高,可以由多个设备共享 C.I/O总线用于连接PC机中的主存储器和Cache存储器 D.目前在PC机中广泛采用的I/O总线是PCI总线

第二部分 Visual Basic程序设计

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

1.InputBox函数返回值的数据类型是 _B 。

A.整形 B.字符串型 C.双精度型 D.变体型

ex(10?3a?32b?c)对应的VB表达式是 _C 。 2.数学式

cosxA.|10+3a|*(2*b+c)^(1/3)*Exp(x) / Cos(x)

B.Abs(10+3*a)*((2*b+c)^1/3)* (Exp(x) /Cos(x)) C.Exp(x)*Abs(10+3*a)*(2*b+c)^(1/ 3) /Cos(x) D.Exp(x) / Cos(x)* Abs(10+3*a)*((2*b+c)^1/3)

3.以下关于变量作用域的叙述中,正确的是 _C 。

A.窗体中凡用Private声明的变量只能在某个指定的过程中使用 B.模块级变量只能用Dim语句声明

C.凡是在窗体模块或标准模块的通用声明段用Public语句声明的变量都是全局变量 D.当不同作用域的同名变量发生冲突时,优先访问局限性小的变量 4.下面给有关数组的叙述中,正确的是 D 。

A. 在过程中使用ReDim语句重定义的动态数组,必须已经在前面用Dim语句对其进行过

说明

B. 在过程中,不可以使用Static来定义数组

C. 用ReDim语句重新定义一维动态数组时,可以改变数组的大小,但不能改变数组的维

D. 不可以用Public语句在窗体模块的通用声明处说明一个全局数组 5.对正实数X 的第四位小数四舍五入的VB表达式是 D 。 A.0.001*Int(x+0.005) B.0.001*(1000*x+0.5) C.0.001*Int(1000*x+5) D.0.001*Int(1000*(x+0.0005)) 二、填空题(共20分,每空2分)

1.执行下面程序,单击命令Command1,则窗体上显示的第一行是 _2 _,第二行是 1 ,最后一行是 214 。 Option Explicit

Private Sub Command1_Click()

Dim n As Integer, k As Integer n = 59 k = 5

Print Tran(n, k ) End Sub

Private Function Tran(n As Integer, k As Integer) As String

Dim r As Integer If n <> 0 Then r = n Mod k

Tran = Tran(n \\ k, k ) & r Print r End If End Function

2.执行下面程序,如果连续三次单击Command1,A数组共有 6 个元素;数组元素A(5)的值是 31 。 Option Explicit Option Base 1

Private Sub Command1_Click()

Static a() As Integer, n As Integer Dim i As Integer, k As Integer k = n n = n + 2

ReDim Preserve a(n) For i = k + 1 To n a(i) = i * n + 1 Next i

For i = 1 To n Print a(i); Next i Print End Sub

3.执行下面程序,第一行输出结果是 31 ,第二行输出结果是 63 。

Private Sub Form_Click() Dim A as Integer A=3

Call sub1(A) End Sub

Private Sub sub1(X as Integer)

X=X*2+1 If X<10 then

Call sub1(X) End if X=X*2+1 Print X End Sub

4.有如下程序,当单击命令按钮Command1时,窗体上显示的第一行的内容是 2 2 4,第二行的内容是 2 5 1 ,第四行的内容是 2 9 1 。

Private Sub Command1_Click()

Dim a as Integer, b as Integer, z as Integer a=2:b=5:z=1 Call sub1(a,b) Print a, b, z Call sub1(b,a) Print a,b,z End Sub

Private Sub sub1(x as Integer, ByVal y as Integer)

Static z As Integer

x=x+z y=x-z z=x+y Print x, y, z End Sub

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

【要求】

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

【题目】本程序的功能是,随机生成n个两位整数(n利用键盘输入),存入一个数组。再找出数组中的最大元素并将其删除。删除的方法是将最大元素后面的元素依次前移一个位置,数组长度减1。重复上述过程,直到得到只有一个元素的数组为止。 Option Explicit

Private Sub Command1_Click()

Dim a() As Integer, n As Integer, mv As Integer, mp As Integer Dim i As Integer, j As Integer, st As String n = InputBox(\元素个数\数组处理\ Randomize ReDim a(n) For i = 1 To n

a(i) = Int(Rnd * 90) + 10 Text1 = Text1 & Str(a(i)) Next i

For i = 1 To n – 1

Call maxv(a, mv, mp)

For j = mp To a(j) = a(j + 1) Next j

' For j = 1 To UBound(a) st = st & Str(a(j)) Next j

List1.AddItem st st = \ Next i End Sub

Private Sub maxv( ) Dim i As Integer

maxe = a(1): mp = 1 For i = 2 To UBound(a) If a(i) > maxe Then maxe = a(i): mp = i End If Next i End Sub

2.改错题(共16分)

【要求】

(1)打开“C:\\学生文件夹”中“P2.vbp”文件,按参考界面形式编辑窗体界面,改正程序中的错误后,直接保存所有文件;

(2)改错时,不得增加或删除语句,但可适当调整语句位置。

【题目】本程序的功能是根据输入的英文单词,生成n阶字母方阵,n为单词的长度,第一行为该单词本身,其后每一行是将前一行单词的首字母变为尾字母的单词。例如输入的英文单词为visual,其长度是6,则生成的字母方阵为:

visual isualv sualvi ualvis alvisu lvisua

Option Explicit

Private Sub Command1_Click()

Dim s As String, i As Integer, j As Integer Dim a() As String * 1 s = Text1.Text i = Len(s) ReDim a(i)

For i = 1 To Len(s) a(i) = Mid(s, i, 1) Next i

Text2.Text = s & vbCrLf For i = 2 To Len(s) Yd (a) Call yd(a) For j = 1 To Len(s)

Text2.Text = Text2.Text & a(j) Next j

Text2.Text = Text2.Text & vbCrLf Next i End Sub

Private Sub yd(a() As String * 1) Dim i As Integer, t As String * 1

t = a(1)

For i = 1 To UBound(a) - 1

a(i + 1) = a(i) a(i) = a(i+ 1) Next i

a(UBound(a)) = t End Sub 3.编程题(22分) 【要求】

(1)打开“C:\\学生文件夹”中“P3.vbp”文件,根据题目要求编写和调试程序后,直接保存所有文件。

(2)程序代码书写应呈锯齿形,否则适当扣分。

【题目】编写程序,验证所谓“6174”假说。对于任意4位整数,将各位上的数字按从大到小排列得到一个降序数,再按从小到大排列得到一个升序数,用降序数减升序数,得到一个新的整数,如此反复,最终一定会得到6174。这就是“6174”假说(4个数字完全相同的四位整数除外)。 【编程要求】

1. 程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界

面元素大小适中,且均可见;

2. 运行程序,首先在“输入4位整数”文本框中输入测试用的整数,然后按“验证”按钮,

将验证过程按图示格式显示在列表框中;按“清除”按钮,将文本框和列表框清空,焦点置于文本框上;

3. 程序中应定义一个名为sort的通用Sub过程,在过程中,先提取组成整数n的各位数字,

存入一个数组,再对数组的元素按从小到大的顺序进行排序。

【算法提示】验证步骤是:调用sort过程,利用排序结果得到相应的降序数与升序数,二者相减,若不等于6174,则重复上述步骤直到得到6174为止。

Option Explicit

Private Sub Command1_Click()

Dim n As Integer, jn As Integer, sn As Integer n = Text1 Do

Call comput(n, jn, sn) n = jn - sn

List1.AddItem jn & \ Loop Until n = 6174

List1.AddItem n & \验证成功\End Sub

Private Sub comput(n As Integer, jn As Integer, sn As Integer) Dim a(4) As Integer, i As Integer, p As String, q As String Call sort(n, a) For i = 1 To 4

p = p & CStr(a(i)) q = CStr(a(i)) & q Next i jn = p sn = q End Sub

Private Sub sort(n As Integer, a() As Integer) Dim i As Integer, j As Integer, t As Integer Do

i = i + 1

a(i) = n Mod 10 n = n \\ 10 Loop Until n = 0

For i = 1 To UBound(a) - 1

For j = i + 1 To UBound(a) If a(j) > a(i) Then t = a(i) a(i) = a(j) a(j) = t End If Next j Next i End Sub

Private Sub Command2_Click() Text1 = \ List1.Clear Text1.SetFocus End Sub

模拟练习四

第一部分 计算机信息技术基础知识

选择题(共20分,每题2分)

1. 某显示器的分辨率是1024×768,其数据含义是 D 。 A. 横向字符数×纵向字符数 B. 纵向字符数×横向字符数 C. 纵向点数×横向点数 D. 横向点数×纵向点数 2.十进制算式7*64+4*8+4的运算结果用二进制数表示为 B 。 A.111001100 B.111100100 C.110100100 D.111101100

3. I/O接口指的是计算机中用于连接I/O设备的各种插头/插座,以及相应的通信规程及电气特性。在下列有关I/O总线与I/O接口的陈述中,错误的是 D 。 A. PC机系统总线一般分为处理器总线和主板总线 B. PCI总线属于I/O总线 C. PC机的I/O接口可分为独占式和总线式 D. USB是以并行方式工作的I/O接口

4. 在下列有关集成电路的叙述中,错误的是 D 。 A.现代集成电路使用的半导体材料主要是硅

B.大规模集成电路一般以功能部件、子系统为集成对象 C.我国第2代居民身份证中包含有IC芯片

D.目前超大规模集成电路中晶体管的基本线条已小到1纳米左右

5.CPU的运算速度与许多因素有关,下面哪些是提高CPU速度的有效措施? B ①增加CPU中寄存器的数目 ②提高CPU的主频 ③增加CPU中高速缓存(cache)的容量 ④优化BIOS的设计

A.①、③和④ B.①、②和③ C.①和④ D.②、③和④

6.USB接口是由Compag、IBM、Intel、Microsoft和NEC等公司共同开发的一种I/O接口。下列有关USB接口的叙述错误的是 C 。

A.USB接口是一种串行接口,USB对应的中文为“通用串行总线” B.USB 2.0的数据传输速度比USB 1.1快很多

C.利用“USB集线器”,一个USB接口最多只能连接63个设备

D.USB既可以连接硬盘、闪存等快速设备,也可以连接鼠标、打印机等慢速设备

7.人们通常将计算机软件划分为系统软件和应用软件。下列软件中,不属于应用软件类型的是 C 。 A.AutoCAD B.MSN C.Oracle

D.Windows Media Player

8.因特网的IP地址由三个部分构成,从左到右分别代表 B 。 A.网络号、主机号和类型号 B.类型号、网络号和主机号 C.网络号、类型号和主机号 D.主机号、网络号和类型号 9.下列关于程序设计语言的叙述中,错误的是 C 。

A.目前计算机还无法理解和执行人们日常语言(自然语言)编写的程序

B.程序设计语言是一种既能方便准确地描述解题的算法,也能被计算机准确理解和执行的语言

C.程序设计语言没有高级和低级之分,只是不同国家使用不同的编程语言而已 D.许多程序设计语言是通用的,可以在不同的计算机系统中使用

10、下列关于打印机的说法,错误的是_A 。 A.针式打印机只能打印汉字和ASCII字符,不能打印图案

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分)

【要求】

(1)打开“C:\\学生文件夹”中“P2.vbp”文件,按参考界面形式编辑窗体界面,改正程序中的错误后,直接保存所有文件;

(2)改错时,不得增加或删除语句,但可适当调整语句位置。

【题目】本程序的功能是:生成一个n行4列的整数数组,该数组的每一行第一列的元素是随机生成的一个不含数字0的三位整数,其余三列元素的值分别是前一列同行元素各位数字的连乘积。n使用InputBox函数输入。 Private Sub Command1_Click()

Dim n As Integer, ra() As Integer

Dim k As Integer, i As Integer, j As Integer n = InputBox(\数据个数:\ ReDim ra(n, 4) i = 1 Do

k = Int(Rnd * 899) + 100

If InStr(CStr(k), \ ra(i, 1) = k

Pic1.Print Right(\ \ For j = 2 To 4

ra(i, j) = fun(ra(i, j - 1))

Pic1.Print Right(\ \ Next j

Pic1.Print ':i = i + 1 End If i = i + 1 Loop Until i > n End Sub

Private Function fun(ByVal n As Integer) As Integer fun = 1 Do

fun = fun * n Mod 10 'fun = fun * (n Mod 10) n = n \\ 10

Loop While n >= 0 'Loop While n > 0 End Function

3.编程题(22分) 【要求】

(1)打开“C:\\学生文件夹”中“P3.vbp”文件,根据题目要求编写和调试程序后,直接保存所有文件。

(2)程序代码书写应呈锯齿形,否则适当扣分。 【题目】编写程序,先生成包含20个两位随机整数的数组,然后找出其中的盈数。所谓盈数,是指因子(不包含自身)之和大于其本身的正整数。例如,12的因子和为1+2+3+4+6=16,大于自身,则12是一个盈数。

【编程要求】

1.参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;

2.行程序,单击“运行”按钮,生成20个由两位随机整数组成的数组,并将数组以每行显示10个元素的方式输出在多行文本框中;然后判断数组元素中是否有盈数,若有则将它们按附图参考界面所示的格式输出到列表框中;单击“清除”按钮,将文本框与列表框清空,焦点置于“运行”按钮上;单击“退出”按钮,结束程序运行;

3.中至少应定义一个通用过程,用于求一个整数的因子或判断其是否为“盈数”。

Option Explicit Option Base 1

Private Sub Command1_Click() Dim a(20) As Integer, b() As Integer Dim i As Integer, j As Integer, sum As Integer Dim str As String For i = 1 To 20

a(i) = Int(Rnd * 90) + 10 Text1 = Text1 & a(i) & \ j = j + 1

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

For i = 1 To 20 Call yinzi(a(i), b) sum = 0

For j = 1 To UBound(b) sum = sum + b(j) Next

If sum > a(i) Then str = \

For j = 1 To UBound(b) - 1 str = str & b(j) & \ Next str = str & b(j)

List1.AddItem a(i) & \

End If Next End Sub

Private Sub yinzi(n As Integer, b() As Integer) Dim i As Integer, k As Integer For i = 1 To n - 1 If n Mod i = 0 Then k = k + 1

ReDim Preserve b(k) b(k) = i End If Next End Sub

Private Sub Command2_Click() Text1.Text = \ List1.Clear

Command1.SetFocus End Sub

Private Sub Command3_Click() End End Sub

模拟练习五

第一部分 计算机信息技术基础知识

选择题(共20分,每题2分)

1. 算法设计是编写程序的基础。下列关于算法的叙述中,正确的是 C 。 A.算法必须产生正确的结果 B.算法可以没有输出 C.算法必须具有确定性 D.算法的表示必须使计算机能理解

2.交换式以太网与总线式以太网在技术上有许多相同之处,下面叙述中错误的是 C 。

A. 使用的传输介质相同 B.传输的信息帧格式相同 C. 网络拓扑结构相同 D.使用的网卡相同

3.因特网使用TCP/IP协议实现全球范围的计算机网络互连,连接在因特网上的每一台主机都有一个IP地址。下面不能作为IP地址的是 C 。

A.120.34.0.18 B.21.18.33.48 C.201.256.39.6.8 D.37.250.68.0 4.以下叙述正确的是 C 。

A.TCP/IP协议只包含传输控制协议和网络协议 B.TCP/IP协议是最早的网络体系结构国际标准 C.TCP/IP协议广泛用于异构网络的互连

D.TCP/IP协议包含7个层次

5.计算机病毒是一段很小的 B ,它是一种会不断自我复制的程序。在传统的操作系统环境下,通常它会寄存在可执行的文件之中,或者是软盘、硬盘的引导区部分。 A. 数据 B. 计算机程序 C. 文档 D. 文件 6.下列四个不同进位制的数中,数值最小的是 D 。 A.十进制数63.1 B.二进制数111111.101 C.八进制数77.1 D.十六进制数3F.1

7.若同一单位的很多用户都需要安装使用同一软件时,最好购买该软件相应的 A 。 A.许可证 B.专利 C.著作权 D.多个拷贝

8.在广域网中,每台交换机都必须有一张 D ,用来给出目的地址和输出端口的关系。

A.线性表 B.目录表 C. FAT表 D.路由表

9、以下设备中不属于输出设备的是 A 。 A.麦克风 B.打印机 C.音箱 D.显示器 10.IE浏览器和Outlook Express中使用的UTF-8和UTF-16编码是 C 标准的2种实现。 A.GB2312 B.GBK C.UCS(Unicode) D.GB18030

第二部分 Visual Basic程序设计

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

1.下面的过程定义语句中不正确的是 A 。 A. Private Sub MySub1(St As String * 6) B. Private Sub MySub1(Ar() As String * 6) C. Private Sub MySub1(Ar() As String) D. Private Sub MySub1(St As String)

2.能够被正确计算的表达式有 B 个。

①4096 * 2 ^ 3 ②CInt(5.6) * 5461 + 2 ③6553 * 5 + 0.5 * 6 ④32768 + 12 A. 4 B. 3 C. 2 D. 1 3.下列有关转换函数的说法正确的是: C A.Int和Cint函数的区别仅在于结果的数据类型不同

B.Int和Fix函数将非整数数据转换成整数,转换后的结果类型是Long C.Cint函数的功能是将其他类型的数据转换成Integer类型 D.在处理负数时,Int和Fix函数的结果是相同的

4.设a=3,b=2,c=1,运行print a>b>c的结果是 C 。 A.True B.False C. 1 D.出错 5.如果希望定时器控件每秒产生10个事件,则要将Interval属性的值设为 A 。 A.100 B.200 C.500 D.1000 二、填空题(共20分,每空2分)

1.执行下面程序,单击命令按钮Command1,则窗体上输出的data数组元素个数为 5 ,最后一行内容是 Basic 。

Option Explicit Option Base 1

Private Sub Command1_Click() Dim st As String, char As String

Dim data() As String, i As Integer, j As Integer st = \

For i = 1 To Len(st)

If Mid(st, i, 1) <> \ char = char & Mid(st, i, 1) Else

j = j + 1

ReDim Preserve data(j) data(j) = char char = \ End If

Next i

Print \数组元素个数为\Print Conver(data) End Sub

Private Function Conver(a() As String) As String Dim i As Integer

For i = 1 To UBound(a)

Conver = Conver & Chr(Val(a(i))) '字母A,a的ASCII码分别为65,97 Next i End Function

2.执行下面的程序,单击命令按钮Command1,则窗体上显示的第一行是 C ,第二行是 CW ,第三行是 8 。 Private Sub Command1_Click() Dim s As String, t As String Dim k As Integer, m As Integer s = \ k = 1: m = k

For k = 1 To Len(s) Step m + 1

t = t & Chr(Asc(Mid(s, m, 1)) + k) k = k + 1

If Mid(s, k, 1) = \ m = m + k Print t Next k Print m End Sub

3.执行下面的程序,单击Commandl,输出的变量i的值是 10 ,变量j的值是 0 ,变量k的值是 15 。 Option Explicit

Private Sub Command1_Click() Dim i As Integer, j As Integer Dim k As Integer i = 10 j = 4

k = Funk(i, j) Print i, j, k End Sub

Private Function Funk(ByVal A As Integer, B As Integer) As Integer A = A + B B = B - 2

If B = 0 Or B = 1 Then Funk = 1 Else

Funk = A + Funk(A, B) End If End Function

4.执行下面程序后,单击按钮Command1,窗体上第一行显示的内容是 X= 4 ,第三行显示的内容是 15 15 。 Private Sub Command1_Click()

Dim X As Integer, Y As Integer, S As Integer X = 12: Y = 18 If X > Y Then

S = Fun(X, Y, 1) Else

S = Fun(Y, X, 1) End If Print S Print X, Y End Sub

Private Function Fun(A As Integer, B As Integer, K As Integer) Static X As Integer X = X + K If A <= B Then

Fun = A + B - X Print \ Else

A = A - X B = B + X

Fun = Fun(A, B, X) End If X = 0 End Function

三、操作题(共50分)

1.完善程序。(共12分) 【要求】

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

【题目】本程序的功能是把由4个用“.”分隔的十进制数表示的IP地址转换为由32位二进制数组成的IP地址。例如十进制表示的IP地址为202.119.191.1,其中每个十进制数对应一个8位的二进制数,合起来构成一个32位二进制的IP地址1100101001110111101111110000000l。过程Tiqu用于提取十进制IP地址中每个用“.”分隔的十进制数;过程Convert用于将十进制数转换为相应的8位二进制数。

Option Explicit

Private Sub Command1_Click()

Dim str1 As String, str2 As String Dim a(4) As Integer, i As Integer str1 = Text1.Text Call Tiqu(str1, a) For i = 1 To 4

If a(i) < 0 Or a(i) > 255 Then MsgBox (\地址错误!\ ExitSub Else

' str2 = str2 & convert(a(i)) End If Next i

Text2.Text = str2 End Sub

Private Sub Tiqu(st As String, a() As Integer)

Dim n As Integer, k As Integer, S As String, d As String * 1, i As Integer n = Len(st): k = 0: S = \ For i = 1 To n

' d = Mid(st, i, 1) If d = \ k = k + 1 a(k) = Val(S)

s= \

Else

S = S & d End If Next i a(4) = S End Sub

Private Function convert(ByVal n As Integer) As String Dim b As Integer, i As Integer, S As String Do While n > 0 b = n Mod 2

n = n \\ 2

' S = b & S Loop

For i = 1 To 8 - Len(S) S = \ Next i

' convert = S End Function

2.改错题(共16分)

【要求】

(1)打开“C:\\学生文件夹”中“P2.vbp”文件,按参考界面形式编辑窗体界面,改正程序中的错误后,直接保存所有文件;

(2)改错时,不得增加或删除语句,但可适当调整语句位置。 【题目】本程序的功能是生成至少包含10个互质数对的随机数组,数组元素是两位随机整数,并将其中的互质数对输出。互质数对,是指两个整数除了1以外没有其他相同的因子。

Option Explicit Option Base 1

Private Sub Command1_Click()

Dim k As Integer, a() As Integer, j As Integer, p As Integer Do

k = k + 1

ReDim a(k) ' ReDim Preserve a(k) a(k) = Int(Rnd * 90) + 10 For j = k - 1 To 1 ' For j = k - 1 To 1 Step -1 If gcd(a(k), a(j)) = 1 Then p = p + 1

List1.AddItem \ End If Next j

Text1.Text = Text1.Text & Str(a(k)) Loop Until p >= 10 End Sub

Private Function gcd(a As Integer, b As Integer) As Integer 'ByVal ByVal Dim r As Integer

Do

r = a Mod b a = b b = r

Loop Until r = 0

gcd = b ' gcd = a End Function 3.编程题(22分) 【要求】

(1)打开“C:\\学生文件夹”中“P3.vbp”文件,根据题目要求编写和调试程序后,直接保存所有文件。

(2)程序代码书写应呈锯齿形,否则适当扣分。

【题目】编写程序,输入一个正整数n,求所有大于1且小于n,同时与n互质的数,存入一个数组,并按每行五个的格式输出到一个多行文本框中。(所谓两个数互质,是指两个数除了1之外,没有其它公约数) 【编程要求】

1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;

2.运行程序,在文本框1中输入数据n,按“运行”按钮,则开始查找并按要求格式往多行文本框2中显示结果;按“清除”按钮,则将两个文本框清空,焦点置于文本框1上; 按“结束”按钮,结束程序运行;

3.程序中应定义一个名为gcd的函数过程,用于求两个整数的最大公约数。

Option Explicit

Private Sub Command1_Click()

Dim n As Integer, hz() As Integer, k As Integer Dim i As Integer, st As String n = Text1 i = 2 Do

If gcd(i, n) = 1 Then k = k + 1

ReDim Preserve hz(k) hz(k) = i End If i = i + 1

Loop While i < n

For i = 1 To UBound(hz) st = st & Str(hz(i))

If i Mod 5 = 0 Then st = st & vbCrLf Next i Text2 = st End Sub

Private Function gcd(ByVal m As Integer, ByVal n As Integer) As Integer Dim r As Integer Do

r = m Mod n m = n n = r

Loop Until r = 0 gcd = m End Function

Private Sub Command2_Click() Text1 = \ Text1.SetFocus End Sub

Private Sub Command3_Click() End End Sub

模拟练习六

第一部分 计算机信息技术基础知识

选择题(共20分,每题2分)

1.在Internet中域名服务器的主要功能是实现 B 的转换。 A.IP地址到域名(主机名字) B.域名到IP地址

C.主机IP地址和路由器IP地址之间 D.路由器IP地址之间

2.因特网中的IP地址可以分为A类、B类、C类、D类等,在下列4个IP地址中,属于C类地址的是 D 。 A.28.129.200.19 B.88.129.200.19 C.188.129.200.19 D.222.129.200.19 3.USB是一种可以连接多个设备的总线式串行接口。在下列相关叙述中,错误的是 A 。 A.通过USB接口与PC机连接的外部设备均不需要外接电源,所有设备均通过USB接口提供电源

B.USB符合“即插即用“(PnP)规范,USB接口支持热拔插

C.USB2.0接口使用4线连接器,其连接器分为A型、B型等类型 D.USB 3.0的最高数据传愉速率可达每秒数百兆字节

4.下面是关于我国汉字编码标准的叙述,其中正确的是 A 。 A.Unicode是我国最新发布的也是收字最多的汉字编码国家标准 B.不同字型(如宋体、楷体等)的同一个汉字在计算机中的内码不同 C.在GB18030汉字编码标准中,共有2万多个汉字 D.GB18030与GB2312、GBK汉字编码标准不能兼容

5.通信技术的发展促进了信息的传播。下列有关通信与通信技术的叙述错误的是 A 。 A. 通信系统必有“三要素”,即信源、信号与信宿 B. 现代通信指的是使用电(光)波传递信息的技术 C. 数据通信指的是计算机等数字设备之间的通信 D. 调制技术主要分为三种,即调幅、调频和调相 6.http://exam.nju.edu.cn是“江苏省高等学校计算机等级考试中心”的网址。其中,“http”是指 A 。

A.超文本传输协议 B.文件传输协议 C.计算机主机域名 D.TCP/IP协议

7.最大的10位无符号二进制整数转换成八进制数是 B 。 A.1023 B.1777 C.1000 D.1024 8.下面关于算法和程序关系的叙述中,正确的是 D 。

A.算法必须使用程序设计语言进行描述 B.算法与程序是一一对应的 C.算法是程序的简化 D.程序是算法的具体实现 9.下面关于超链的说法中,错误的是 B 。 A.超链的链宿可以是文字,还可以是声音、图像或视频 B.超文本中的超链是双向的

C.超链的起点叫链源,它可以是文本中的标题 D.超链的目的地称为链宿 10.为了与使用数码相机、扫描仪得到的取样图像相区别,计算机合成图像也称为 C 。 A.位图图像 B.3D图像 C.矢量图形 D.点阵图像

第二部分 Visual Basic程序设计

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

1.下面有关数组的说法中,正确的是 C 。 A.数组的维下界不可以是负数

B.模块通用声明处有Option Base 1,则模块中数组定义语句Dim A(0 To 5)会与之冲突 C.模块通用声明处有Option Base 1,模块中有Dim A(0 To 5),则A数组第一维维下界为0 D.模块通用声明处有Option Base 1,模块中有DimA(0 To 5),则A数组第一维维下界为1 2.下列有关自定义过程的说法中,错误的是 B 。

A. 在Sub过程中可以调用Function过程,在Function过程也可以调用Sub过程 B. 在调用过程时,实参无论何种类型,只要形参使用ByRef说明,他们就可以按地址方式

传递。 C. 递归过程是过程自己调用自己,Funtion过程可以递归调用,Sub过程也可以递归调用 D. 在调用Function过程时,有时也可以像调用Sub过程一样使用Call语句进行调用 3.VB6.0表达式Cos(0) + Abs(1) + Int(Rnd(1))的值是 A 。 A. 2 B.–1 C. 0 D. 1 4.要使某控件在运行时不可显示,应对 B 属性进行设置。 A.Enabled B.Visible C.BackColor D.Caption 5.在一个多窗体程序中,可以仅将窗体Form2从内存中卸载的语句是 B 。 A. Form2.Unload B. Unload Form2 C. Form2.End D. Form2.Hide 二、填空题(共20分,每空2分)

1.执行下列程序,单击按钮Command1,窗体上显示的第一行内容是 5 7 ,第三行内容是 14 11 。 Option Explicit

Private Sub Command1_Click() Dim a As Integer, b As Integer a = 4 b = 3

Do Until a > 10 b = b / 2

Do Until b > 10

a = (a + b) \\ 2 + b b = b + 5 Print a, b Loop a = a - 3 Loop End Sub 2.执行下面程序,单击命令按钮Command1,则a(1,1)的值是 13 ,a(2,2)的值是 15 , a(2,3)的值是 18 。

Option Explicit Option Base 1

Private Sub Command1_Click()

Dim i As Integer, j As Integer, k As Integer

Dim a(3, 3) As Integer, n As Integer, t As Integer n = 3

For i = 1 To 3 For j = 1 To 3 k = k + 1

a(i, j) = k + 10 Next j Next i k = n + 1

For i = Int(n / 2) To 1 Step -1 For j = n - i To 1 Step -1 t = a(k - j, i) a(k - j, i) = a(i, j) a(i, j) = a(j, k - i)

a(j, k - i) = a(k - i, n + 1 - j) a(k - i, n + 1 - j) = t Next j Next i

For i = 1 To 3 For j = 1 To 3 Print a(i, j); Next j Print Next i End Sub

3.执行下面程序,单击命令按钮Command1,则在窗体上显示的第一行内容是 1 ,第二行内容中a(1)的值是 0 ,a(2)的值是 6 。

Option Explicit Option Base 1

Private Sub Command1_Click() Dim a(3) As Integer

Print t(3, a)

Print a(1), a(2), a(3) End Sub

Private Function t(n As Integer, a() As Integer) As Integer Dim i As Integer If n > 1 Then For i = 1 To n a(n) = a(n) + 1 t = t(n - 1, a) Next i Else t = 1 End If End Function

4.执行下面程序,单击Command1按钮,侧在窗体上显示的第一行是 7 ,最后一行是 8 。 Option Explicit

Private Sub Command1_Click()

Dim a As Integer, b As Integer a = 3 b = 1

Call P1(a, b) Print b

Call P1(b, a) Print b End Sub

Private Sub P1(x As Integer, ByVal y As Integer) Static z As Integer x = x + z y = x - z z = 10 - y Print z End Sub

三、操作题(共50分)

1.完善程序。(共12分) 【要求】

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

【题目】本程序的功能是将二进制数转换成十六进制数。采用的方法是四合一,即四位二进制数用一位十六进制数表示。若输入数据不是合法二进制数,则给出出错提示,并等待用户重新输入。

Option Explicit

Private Sub Command1_Click()

Dim st1 As String, st2 As String, i As Integer st1 = Trim(Text1.Text) For i = 1 To Len(st1)

If Mid(st1, i, 1) <> \

MsgBox (\输入数据不合法,请重新输入二进制数\ Text1.Text = \ Exit Sub End If Next i

' Call b2h(st1, st2) Text2.Text = st2 End Sub

Private Sub b2h(x As String, y As String)

Dim n As Integer, i As Integer, j As Integer, k As Integer, a As String, s As String If Len(x) Mod 4 <> 0 Then n = 4 - Len(x) Mod 4 x = String(n, \ For i = 1 To Len(x) Step 4 a = Mid(x, i, 4)

' k = 0 For j = 1 To 4

k = k * 2 + Val(Mid(a, j, 1)) Next j

If k >= 10 Then s = Chr(k + 55) Else

' s = k End If

' y = y & s Next i End Sub

2.改错题(共16分)

【要求】

(1)打开“C:\\学生文件夹”中“P2.vbp”文件,按参考界面形式编辑窗体界面,改正程序中的错误后,直接保存所有文件;

(2)改错时,不得增加或删除语句,但可适当调整语句位置。

【题目】本程序的功能是:找出100~99999之间所有本身是平方数,将其最高一位数与最低一位数对调之后,得到的新数仍为平方数的整数。例如1764(42的平方)是平方数,数字对调得到的4761(69的平方)仍是平方数。 Option Explicit

Private Sub Command1_Click()

Dim n As Long, k As Long, fg As Boolean fg = False

For n = 100 To 99999 'fg = False If Sqr(n) = Int(Sqr(n)) Then Call validate(n, k, fg) If fg And k > n Then

List1.AddItem k & \ End If End If Next n End Sub

Private Sub validate(n As Long, k As Long, flag As Boolean) 'ByVal n As Long Dim st As String, p As Integer p = n Mod 10

If p = 0 Then Exit Sub n = n \\ 10

st = Str(n) ' st = CStr(n) k = p & Mid(st, 2, Len(st) - 1) & Left(st, 1) If Sqr(k) = Int(Sqr(k)) Then flag = True End If End Sub

3.编程题(22分) 【要求】

(1)打开“C:\\学生文件夹”中“P3.vbp”文件,根据题目要求编写和调试程序后,直接保存所有文件。

(2)程序代码书写应呈锯齿形,否则适当扣分。

编写一个数据变换程序,将一组大小差异很大的数据变换为[0,1]区间的数值。设样本数据的最大值为Max,最小值为Min,将第i个样本值Ai变换为Bi的变换公式为

Bi?Ai?Min  (i?1,2,3,?,n)

Max?Min【编程要求】

1、 程序参考界面如下图所示,编程时不得增加和减少界面对象或改变对象种类,窗体

及界面元素大小适中,且均可见。

2、 按“生成样本数组”按钮,利用InputBox函数输入需要生成的数据个数N(缺省值

设为10),再生成N个1~99之间的随机整数,并在文本框中显示;按“数据变换”按钮,进行数据变换,将变换结果显示到列表框;按“清除”按钮,将文本框及列表框清空。

3、 程序中要定义一个名为MaxMin的通用过程,用于求样本数组的最大值与最小值。 Option Explicit

Dim n As Integer, samp() As Integer Private Sub Command1_Click() Dim i As Integer

n = InputBox(\输入样本个数n:\ ReDim samp(n) For i = 1 To n

samp(i) = Int(99 * Rnd) + 1

Text1.Text = Text1.Text & Str(samp(i)) Next i End Sub

Private Sub Command2_Click()

Dim maxv As Integer, minv As Integer, i As Integer Dim news() As Single ReDim news(n)

Call maxmin(samp, maxv, minv) For i = 1 To n

news(i) = (samp(i) - minv) / (maxv - minv) List1.AddItem samp(i) & \ Next i End Sub

Private Sub maxmin(a() As Integer, max As Integer, min As Integer) Dim i As Integer max = a(1) min = a(1)

For i = 2 To UBound(a) If a(i) < min Then min = a(i)

ElseIf a(i) > max Then

max = a(i) End If Next i End Sub

Private Sub Command3_Click() Text1.Text = \ List1.Clear End Sub

模拟练习七

第一部分 计算机信息技术基础知识

选择题(共20分,每题2分)

1.若计算机中连续2个字节内容的十六进制形式为34和51,则它们不可能是 B A.2个西文字符的ASCII码 B.1个汉字的机内码 C.1个16位整数 D.一条指令

2.文件的扩展名用于标记文件的类型,用户应该尽可能多地知晓各类文件的扩展名,下列文件中用于表示视频的文件的是 A 。

A.ABC.RMVB B.ABC.DLL C.ABC.PDF D.ABC.MIDI

3.以下有关无线通信技术的叙述中,错误的是 D 。 A.短波具有较强的电离层反射能力,适用于环球通信

B.卫星通信利用人造地球卫星作为中继站转发无线电信号,实现在两个或多个地球站之间的通信

C.卫星通信也是一种微波通信 D.手机通信不属于微波通信

4.下列与IP地址相关的叙述中,错误的是 D 。

A.IP地址由三个部分组成,从左到右分别代表类型号、网络号和主机号 B.因特网上的每台在线主机都必须有IP地址

C.通过ADSL、移动4G等上网时,用户主机的IP地址通常是由因特网服务提供者动态分配的

D.网络中的路由器不需要设置IP地址

5.关于PC机主板上的CMOS芯片,下面说法中正确的是 D 。 A.CMOS芯片用于存储计算机系统的配置参数,它是只读存储器。 B.CMOS芯片用于存储加电自检程序。

C.CMOS芯片用于存储BIOS,是易失性的。

D.CMOS芯片需要一个电池给它供电,否则其中数据会因主机断电而丢失。 6. 下面有关Windows操作系统多任务处理的叙述中,正确的是 C 。

A.用户如果只启动一个应用程序工作(如使用Word写作),则该程序自始至终独占CPU

B.由于CPU具有多个执行部件,所以操作系统才能同时进行多个任务的处理 C.前台任务和后台任务都能得到CPU的响应

D.处理器调度程序根据各个应用程序运行所需要的时间多少来确定时间片的长短 7、十进制数241转换成8位二进制数是 B 。

A.10111111 B.11110001 C.11111001 D.10110001 8.一般认为,算法设计应采用 A 的方法。 A.由粗到细、由抽象到具体 B.由细到粗、由抽象到具体 C.由粗到细、由具体到抽象 D.由细到粗、由具体到抽象

9.下列移动通信技术标准中,中国移动通信集团公司(简称“中国移动”)采用的第四代移动通信(4G)技术标准是 C 。

A. WCDMA B. TD-SCDMA C. TD-LTE D. FDD-LTE

10.在逻辑代数中,最基本的逻辑运算有三种,即逻辑加、逻辑乘和取反运算。其中,逻辑乘常用 B 符号表示。

A. ∨ B. ∧ C. - D. ×

第二部分 Visual Basic程序设计

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

1.以下选项中,不属于标签控件(Label)的属性是 C 。

A.Enabled B.Caption C.Default D.Font

sin(45o)?ln(x)?y2.数学式对应的VB表达式是 D 。 x?y2??eA. Sin(45 * 3.14159 / 180) + Sqr(Log(x) + y) / 2 * 3.14159 + Exp(x + y) B. (Sin(45 * π / 180) + Sqr(Ln(x) + y)) / (2 * π + Exp(x + y))

C. Sin(45 * 180 / 3.14159) + Sqr(Log(x) + y) / (2 * 3.14159 + e ^ (x + y)) D. (Sin(45 * 3.14159 / 180) + Sqr(Log(x) + y)) / (2 * 3.14159 + Exp(x + y)) 3.以下关于函数过程的叙述中,正确的是 A 。 A. 函数过程形参的类型与函数返回值的类型没有必然关系 B. 如果不指明函数过程的类型,则该函数没有数据类型 C. 函数过程只能通过函数名返回值

D. 当数组作为函数过程的参数时,既能以数值方式传递,也能以引用方式传递 4.以下说法不正确的是 C 。

A.使用不带关键字Preserve的ReDim语句可以重新定义数组的维数 B.使用不带关键字Preserve的ReDim语句可以改变数组各维的上、下界 C.使用不带关键字Preserve的ReDim语句可以改变数组的数据类型

D.使用不带关键字Preserve的ReDim语句可以对数组中的所有元素进行初始化 5.计算表达式:CInt(-3.5)*Fix(-3.81)+Int(-4.1)*(5 Mod 3),其值是 A 。

A. 2 B. 1 C. -1 D. 6

二、填空题(共20分,每空2分)

1.执行下面程序,单击命令按钮Command1,窗体上显示的第一行是 14 ,最后一

行是 2 。

Option Explicit

Private Sub Command1_Click() Dim K As Integer K = 2

Call Sub1((K)) Print K End Sub

Private Sub Sub1(X As Integer) X = X + 3 If X < 8 Then Call Sub1(X) ElseIf X < 10 Then Call Sub1((X)) End If X = X + 3 Print X End Sub

2.执行下面程序,单击Command1后,a(1,4)的值是 1 ,a(2,3)的值是 5 ,a(3,2)的值是 5 。 Option Explicit Option Base 1

Private Sub Command1_Click()

Dim a(4, 4) As Integer, ub As Integer

Dim i As Integer, j As Integer, n As Integer ub = UBound(a, 1) n = 0

For i = ub To 1 Step -1 For j = 1 To ub + 1 - i n = n + 1

a(j, j + i - 1) = n Next j Next i

For i = ub To 2 Step -1 For j = ub To i Step -1

a(j, j - i + 1) = a(5 - j, 4 - j + i) Next j Next i

For i = 1 To ub For j = 1 To ub

Picture1.Print a(i, j); Next j

Picture1.Print Next i

End Sub

3.执行下列程序,单击按钮Command1,窗体上显示的第一行内容是 5 7 ,第三行内容是 14 11 。 Option Explicit

Private Sub Command1_Click() Dim a As Integer, b As Integer a = 4 b = 3

Do Until a > 10 b = b / 2

Do Until b > 10

a = (a + b) \\ 2 + b b = b + 5 Print a, b Loop a = a - 3 Loop End Sub

4.执行下列程序,单击Commandl,在窗体上显示的第一行内容是 5 15 ,第二行的内容是 2 35 ,第三行的内容是 -1 56 。 Option Explicit

Private Sub Command1_Click() Dim n As Integer, i As Integer n = 2

For i = 7 To 1 Step -1 Call sub2(i, n) Print i, n Next i End Sub

Private Sub sub2(x As Integer, y As Integer) Static n As Integer Dim i As Integer For i = 2 To 1 Step -1 n = n + x x = x - 1 Next i y = y + n End Sub

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

【要求】

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

【题目】本程序的功能是将合数分解质因子,即将合数表示成其质因子的乘积形式。合数即非素数,指除了1和他自身外还有其他因子的整数。

Option Explicit Option Base 1

Private Sub Command1_Click()

Dim n As Integer, i As Integer, a() As Integer, st As String n = Val(Text1.Text) If Not Prime(n) Then Call fj(n, a)

' st = n & \ For i = 1 To UBound(a) - 1 st = st & a(i) & \ Next i

st = st & a(i) Else

st = \输入数据为素数,请重新输入!\ End If

Text2.Text = st End Sub

Private Sub fj(ByVal n As Integer, a() As Integer) Dim k As Integer, i As Integer i = 2 Do

If n Mod i = 0 Then k = k + 1

' ReDim Preserve a(k) a(k) = i n = n \\ i Else

i = i + 1 End If

' Loop Until n = 1 End Sub

Private Function Prime(n As Integer) As Boolean Dim i As Integer For i = 2 To n - 1

If n Mod i = 0 Then Exit Function Next i