第6章测试题

2020-03-27 04:51

第6章测试题

一、选择题

1.设有如下程序段: Public Sub F1(n%) ...

n = 3 * n + 4 ... End Sub

Private Sub Command1_Click() Dim n%, m% n = 3

m = 4 ..

调用F1语句

... End Sub

则在Command1_Click()事件中有效的调用语句是( )。

A.Call F1(n + m) B.Call F1(m) C.Call F1(5) D.Call F1(m+5) 2.下面子过程语句说明合法的是( )。

A.Sub F1(ByVal n%()) B.Sub F1(n%) As Integer C.Function f1%(f1%) D.Function f1(ByVal n%) 3.要想从子过程调用后返回两个结果,下面子过程语句说明合法的是( )。 A.Sub f2(ByVal n%, ByVal m%) B.Sub f1(n%, ByVal m%) C.Sub f1(n%, m%) D.Sub f1(ByVal n%, m%)

4.在过程中定义的变量,若希望在离开该过程后,还能保存过程中局部变量的值,则应使用( )关键字在过程中定义局部变量。

A.Dim B.Private C.Public D.Static 5.下面过程运行后显示的结果是( )。

A.2 34 B.12 34 C.2 3 D.12 3 6.如下程序运行的结果是( )。 Dim a%, b%, c%

Public Sub p1(x%, y%) Dim c%

x = 2 * x: y = y + 2: c = x + y End Sub

Public Sub p2(x%, ByVal y%) Dim c%

x = 2 * x: y = y + 2: c = x + y End Sub

Private Sub Command1_Click() a = 2: b = 4: c = 6 Call p1(a, b)

Print \ Call p2(a, b)

Print \

End Sub

A.a=2 b=4 c=6 B.a=4 b=6 c=10 a=4 b=6 c=10 a=8 b=8 c=16 C.a=4 b=6 c=6 D.a=4 b=6 c=14 a=8 b=6 c=6 a=8 b=8 c=6 7.如下程序的运行结果是( )。 Public Sub Proc(a%()) Static i% Do

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

Loop While i < 2

End Sub

Private Sub Command1_Click() Dim m%, i%, x%(10)

For i = 0 To 4: x(i) = i + 1: Next i For i = 1 To 2: Call Proc(x): Next i For i = 0 To 4: Print x(i);: Next i End Sub

A.3 4 7 5 6 B.3 5 7 4 5 C.2 3 4 4 5 D.4 5 6 7 8 二、填空题

1.伟地址方式是当过程被调用时,形参与实参共享 (1) 。

2.按照如下要求书写函数过程的首语句,即Function (2) 定义语句,要求为:形参有两个,a为整型,b为一维整型数组,函数过程名为MyF,函数的返回值类型为逻辑型。 3.当形参是数组时,在过程体内对该数组操作时,为了确定数组的下界和上界,应分别用 (3 ) 和 (4) 函数

4.VB中的变量按其作用域分为全局变量、模块级变量和 (5) 变量。

5.窗体中的模块级变量应在 (6) 段声明,它作用于该窗体 (7) 。 6.如下程序,运行的结果是 (8) ,函数过程的功能是 (9) 。 Public Function f(m%, n%) Do While m <> n

Do While m > n: m = m - n: Loop Do While n > m: n = n - m: Loop

Loop f = m End Function

Private Sub Command1_Click() Print f(24, 18)

End Sub

7.将100-150之间的偶数,拆分成两个素数之和(只要一对即可),是后输出格式如图1所示。其中,prime函数判断参数x是否为质数。

Private Function prime(ByVal x As Integer) As Boolean prime = (10) For i = 2 To Sqr(x)

If (11) Then prime = False Exit Function End If Next i

End Function

Private Sub Form_Click() i = 1

For n = (12) For k = 3 To n / 2

If prime(k) (13) Then

图1 第7题运行界面 Print i; \

Exit For End If Next k i = i + 1 Next n End Sub

8.子过程MoveStr( )是把字符数组移动m个位置,当Tag为true时左移,则前m个字符移到字符数组尾,例如,“abcdefghij”左移3个位置后,结果为“defghijabc”;当tag为False时右移,则后m个字符移到字符数组前,如“abcdefghij”右移3个位置后,结果为“hijabcdefg”。 子过程如下:

Public Sub MoveStr(a(), m%, Tag As Boolean) Dim i%, j%, t$

If (15) Then '左移 For i = 1 To m (16)

For j = 0 To (17) a(j) = a(j + 1) Next j

(18) Next i

Else

For i = 1 To m (19)

For j = UBound(a) (20) '右移 a(j) = a(j - 1) Next j

(21) Next i

End If End Sub

9.子过程CountN用来统计字符串中各数字字符(“0”~“9”)出现的个数;主调程序对在Text1Box1框输入的文本,每次单击“统计”按钮,调用该子过程,在Label1框显示结果,如图2所示。

Sub CountN( (22)

Dim c As String * 1, i%, m%, j% For i = 0 To 9 num(i) = 0 Next i m = Len(s) For i = 1 To m

c = (23)

If c >= \ j = Val(c)

num(j) = (24) End If

图2 题9的运行界面

Next i End Sub

Private Sub Command1_Click() Dim n(9) As Integer, i% Call CountN(n(), Text1) List1.Clear For i = 0 To 9

If n(i) Then (25) \字符\出现的次数为\ Next

End Sub

10.子过程F(n,m,t)对一个四位数n整数判断:已知该整数n,逆向排列获得另一个4位数m是它自身的倍数(2倍以上),则t为true表示满足上述条件。主调程序调用该函数,显示1000~9999中所有满足该条件的数,如图3所示。

Private Sub Command1_Click() Dim t As Boolean, i%, k%

Text1 = \ Text2 = \

For i = 1000 To 9999 Call f( (26) ) If t Then

Text1 = Text1 & i & vbCrLf

Text2 = Text2 & k & \ End If

Next i End Sub

Sub f(ByVal n%, ByRef m%, ByRef Tag As Boolean)

Dim i% Tag = False m = 0 i = n

Do While i > 0 m = (27) i = (28) Loop

If m Mod n = 0 And m \\ n > 1 Then Tag = (29) End If

图3 题10的运行界面

End Sub 11.下列程序中的子过程MySplit(s,sArray(),n)用于实现Split函数的功能(字符分离到数组),即将数字字符串s按分隔符“,”分离到sArray数组中,分离的个数为n。主调程序将文本框中输入的数字字符串按回车键后分离,结果在List1控件显示,如图4所示。 Private Sub Text1_KeyPress(KeyAscii As Integer) Dim str1 As String, num(100) As Integer, n%, i% If (30) Then str1 = Trim(Text1)

Call MySplit( (31) ) List1.Text = \ For i = 0 To n

List1.AddItem num(i) Next i End If End Sub

Sub MySplit(ByVal str1 As String, ByRef sn() As Integer, ByRef n As Integer) Dim i%, j%, ch$ i = 0

j = InStr(str1, \ Do While j > 0

sn(i) = Val( (32) ) str1 = Mid(str1, j + 1) i = i + 1

j = (33) Loop

sn(i) = Val(str1) n = (34)

图4 题11的运行界面

End Sub

12.以下过程将一个有序数组中重复出现的数进行压缩,删除后只剩一个。主调程序运行后结果如图5所示。 Sub p(a())

Dim n%, m%, k% n = UBound(a)


第6章测试题.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014-2015学年第一学期宝安区期末调研测试卷(七年级数学含答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: