内容正文:
编写说明:内蒙古自治区对口招生《计算机类考纲百套卷》,依据《2019年内蒙古自治区高等职业院校对口招收中等职业学校毕业生计算机类专业课综合考试指导纲要》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲“掌握”“理解”要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第16卷,为考点训练卷,按《Visual Basic程序设计》范围和要求编写。具体内容为:事件过程,子过程,过程间参数的传递,过程的嵌套与递归,常用算法实例。
内蒙古对口招生《计算机类考纲百套卷》 第16卷
《Visual Basic程序设计》
过程 考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单选题(本题共30道小题,每题2分,共60分)
1.在 Visual Basic 6.0 中,事件过程名由对象名、下划线和______组成
A. 过程类型 B. 控件类型
C. 参数名 D. 事件名
【答案】D
【解析】事件过程命名格式为:对象名_事件名,如 Command1_Click。
2.Form_Load 事件在______时触发
A. 单击窗体时 B. 双击窗体时
C. 窗体被加载时 D. 关闭窗体时
【答案】C
【解析】Load 事件在窗体被加载到内存时触发,常用于初始化控件和变量。
3.以下哪个是正确的事件过程名?( )
A. Click_Command1 B. 事件_Command1
C. Command1.Click D. Command1_Click
【答案】D
【解析】事件过程名格式为:控件名_事件名,如 Command1_Click、Form_Load 等。
4.定义 Sub 过程的起始语句是( )
A. Sub 过程名()...End Sub B. Sub 过程名()...End
C. Function 过程名()...End D. Procedure 过程名()...End Proc
【答案】A
【解析】Sub 过程以 Sub 过程名() 开始,以 End Sub 结束。
5.在 Visual Basic 6.0 中,调用 Sub 过程可以使用 Call 语句或( )
A. 直接写过程名和参数 B. 使用 Invoke 语句
C. 使用 Run 语句 D. 使用 Execute 语句
【答案】A
【解析】调用 Sub 过程可用 Call 过程名(参数) 或直接写 过程名 参数(省略 Call 时不能加括号)。
6.在 Visual Basic 6.0 中,Sub 过程( )
A. 有返回值 B. 必须有参数
C. 没有返回值 D. 返回值类型为 Variant
【答案】C
【解析】Sub 过程执行一系列操作但不返回值,Function 过程才有返回值。
7.在 Visual Basic 6.0 中,默认的参数传递方式是( )
A. ByVal(传值) B. ByParam(参数传递)
C. ByCopy(复制传递) D. ByRef(传地址)
【答案】D
【解析】VB 中参数默认按地址传递(ByRef),即传递变量的内存地址,过程内修改会影响原变量。
8.在过程定义中,使用______关键字声明参数后,过程内对参数的修改不会影响调用处的原变量
A. ByVal B. ByRef
C. ByCopy D. ByParam
【答案】A
【解析】ByVal 按值传递,传递的是变量的副本,过程内修改不影响原变量。
9.定义过程时括号中的参数称为( )
A. 实际参数 B. 变量参数
C. 形式参数 D. 调用参数
【答案】C
【解析】过程定义时的参数叫形式参数(形参),调用时传入的参数叫实际参数(实参)。
10.在 Visual Basic 6.0 中,一个 Sub 过程内部调用另一个 Sub 过程,这称为( )
A. 递归调用 B. 无限调用
C. 循环调用 D. 过程的嵌套调用
【答案】D
【解析】过程内部调用另一个过程(非自身)称为嵌套调用,调用自身才叫递归。
11.递归过程是指( )
A. 过程直接或间接地调用自身 B. 过程调用另一个过程
C. 过程中包含循环语句 D. 过程中包含选择语句
【答案】A
【解析】递归是过程直接调用自身(直接递归)或通过其他过程间接调用自身(间接递归)的编程技术。
12.用递归方法求 n 的阶乘,递归结束条件(基例)是( )
A. n = 0 B. n = n - 1
C. n > 1 D. n = n
【答案】A
【解析】0! = 1 是阶乘递归的基例,当 n = 0 时返回 1 结束递归。公式:n! = n * (n-1)!。
13.关于 VB6.0 事件过程,以下说法不正确的是( )
A. 事件过程由系统自动调用 B. 可以像普通过程一样用 Call 调用事件过程
C. 事件过程名不能随意修改 D. 所有事件过程都必须在代码中显式调用
【答案】D
【解析】事件过程通常由系统根据用户操作自动触发调用,不需要显式调用。
14.Timer 控件的 Timer 事件在______时触发
A. 用户单击 Timer 控件时 B. 窗体加载时
C. 每隔指定的时间间隔 D. 鼠标移动到 Timer 上时
【答案】C
【解析】Timer 事件按 Interval 属性设定的时间间隔周期性触发,无需用户操作。
15.用 Call 语句调用 Sub 过程 Test(a, b),正确的写法是( )
A. Call Test a, b B. Call Test, a, b
C. Call Test(a b) D. Call Test(a, b)
【答案】D
【解析】使用 Call 时参数必须用括号括起来:Call 过程名(参数1, 参数2)。
16.以下定义 Function 过程的正确语法是( )
A. Function f(x) As Integer ... End Function B. Function f(x) End f
C. Function f(x) ... End D. Func f(x) ... End Func
【答案】A
【解析】Function 过程以 Function 名(参数) As 返回类型 开始,以 End Function 结束。
17.以下过程定义中,参数 x 的传递方式是
Private Sub Test(x As Integer)( )
A. 传值 B. 由调用方式决定
C. 传地址 D. 无法确定
【答案】C
【解析】未显式指定时,VB 参数默认为 ByRef(按地址传递)。
18.以下程序段运行后,Print 输出的值是
Private Sub Change(ByVal x As Integer)
x = x + 1
End Sub
Private Sub Command1_Click()
Dim a As Integer
a = 10
Call Change(a)
Print a
End Sub( )
A. 10 B. 11
C. 0 D. 报错
【答案】A
【解析】ByVal 传值,Change 过程修改的是 a 的副本,原变量 a 不变,仍为 10。
19.递归过程必须包含的两个要素是( )
A. 循环条件和结束条件 B. 判断语句和循环语句
C. 输入参数和输出参数 D. 递归条件和基例(结束条件)
【答案】D
【解析】递归必须包含递推关系(递归条件)和结束条件(基例),否则会无限递归导致栈溢出。
20.以下递归函数的功能是
Private Function f(ByVal n As Integer) As Integer
If n = 0 Then
f = 1
Else
f = n * f(n - 1)
End If
End Function( )
A. 计算 1 到 n 的和 B. 计算 n 的阶乘
C. 计算 n 的平方 D. 计算斐波那契数列第 n 项
【答案】B
【解析】基例 n=0 返回 1,递推 f(n) = n * f(n-1),是经典的阶乘递归实现。
21.使用辗转相除法求最大公约数,当余数为 0 时的______即为最大公约数
A. 被除数 B. 除数
C. 商 D. 余数
【答案】B
【解析】辗转相除法:用大数除以小数取余,余数为 0 时,此时的除数即为最大公约数。
22.对于同一个控件可以编写多个不同的事件过程,以下说法正确的是( )
A. 每个控件只能有一个事件过程
B. 一个控件可以响应多种事件
C. 事件过程必须由用户编写调用代码
D. 事件过程中不能调用其他过程
【答案】B
【解析】一个控件可以响应单击、双击、键盘、鼠标等多种事件,每种事件对应一个事件过程。
23.以下程序段运行后,Print 输出的值是
Private Sub Test()
Static x As Integer
x = x + 1
Print x
End Sub
Private Sub Command1_Click()
Call Test
Call Test
Call Test
End Sub( )
A. 1 1 1 B. 1 2 3
C. 3 3 3 D. 1 3 3
【答案】B
【解析】Static 变量在过程调用结束后保留其值,每次调用 x 累加 1,输出 1, 2, 3。
24.Function 过程的返回值通过______赋给函数名
A. Return 语句 B. 给函数名赋值的语句
C. Result 关键字 D. Output 参数
【答案】B
【解析】VB 中 Function 通过 函数名 = 表达式 的方式设置返回值,如 f = n * n。
25.以下程序段运行后,Print 输出 a 和 b 的值分别是
Private Sub Swap(ByRef x As Integer, ByRef y As Integer)
Dim t As Integer
t = x: x = y: y = t
End Sub
Private Sub Command1_Click()
Dim a As Integer, b As Integer
a = 5: b = 10
Call Swap(a, b)
Print a, b
End Sub( )
A. 5 10 B. 10 5
C. 5 5 D. 10 10
【答案】B
【解析】ByRef 传地址,Swap 过程直接修改原变量,a 和 b 的值被交换为 10 和 5。
26.递归过程中,每次递归调用都会在内存的______中保存当前状态
A. 堆 B. 栈
C. 全局变量区 D. 代码区
【答案】B
【解析】递归调用时,每层调用的局部变量和返回地址保存在栈中,递归返回时从栈中恢复。
27.以下递归函数计算斐波那契数列第 n 项(n>=1),函数返回
Private Function Fib(ByVal n As Integer) As Integer
If n = 1 Or n = 2 Then
Fib = 1
Else
Fib = Fib(n - 1) + Fib(n - 2)
End If
End Function
则 Fib(5) 的值是( )
A. 3 B. 5
C. 8 D. 13
【答案】B
【解析】Fib(1)=1, Fib(2)=1, Fib(3)=2, Fib(4)=3, Fib(5)=5。
28.用辗转相除法求 48 和 18 的最大公约数,结果应为( )
A. 2 B. 3
C. 6 D. 9
【答案】C
【解析】48 / 18 = 2 余 12 → 18 / 12 = 1 余 6 → 12 / 6 = 2 余 0,最大公约数为 6。
29.以下程序段运行后,Print 输出的值是
Private Sub AddOne(ByRef x As Integer, ByVal y As Integer)
x = x + y
y = y + x
End Sub
Private Sub Command1_Click()
Dim m As Integer, n As Integer
m = 3: n = 7
Call AddOne(m, n)
Print m, n
End Sub( )
A. 10 7 B. 3 17
C. 10 17 D. 3 7
【答案】A
【解析】m 是 ByRef 被修改为 3+7=10;n 是 ByVal,过程内修改不影响原值,仍为 7。
30.判断一个整数 n 是否为素数,循环判断范围可以是 2 到( )
A. n B. n-1
C. Sqr(n) D. n/2
【答案】C
【解析】判断素数只需检查到 Sqr(n)(n 的平方根),若 n 有大于平方根的因子,必有小于平方根的对应因子。
二、填空题(本题共10道小题,每题2分,共20分)
1.在事件过程命名中,对象名和事件名之间使用______符号连接。
【答案】下划线(_)
【解析】事件过程名格式为:对象名_事件名(如 Command1_Click),下划线是固定的连接符号。
2.窗体被加载时自动触发的事件是______事件。
【答案】Load(Form_Load)
【解析】窗体加载到内存时触发 Load 事件,常用于初始化操作。
3.Sub 过程以______语句结束。
【答案】End Sub
【解析】Sub 过程定义的结束标记是 End Sub,Function 过程是 End Function。
4.在 Visual Basic 6.0 中,______过程可以有返回值。
【答案】Function
【解析】Function 过程通过给函数名赋值返回结果,Sub 过程不返回值。
5.在 Visual Basic 6.0 中,参数传递的默认方式是______(按地址传递)。
【答案】ByRef
【解析】未显式指定时参数默认为 ByRef,过程内对参数的修改会影响调用处的原变量。
6.调用过程时传入的参数称为______参数(实参),定义过程时声明的参数称为形式参数(形参)。
【答案】实际
【解析】调用时传入的是实际参数(实参),定义时声明的是形式参数(形参),实参个数和类型必须与形参匹配。
7.在 Visual Basic 6.0 中,一个过程直接调用自身的过程调用方式称为______。
【答案】递归(递归调用)
【解析】递归是过程直接或间接调用自身的编程技术,必须有基例来结束递归。
8.递归过程必须具备两个要素:递推关系和______条件(基例)。
【答案】结束(终止)
【解析】递推关系描述如何将问题分解,结束条件(基例)确保递归能够终止,避免栈溢出。
9.使用辗转相除法求两个正整数的最大公约数,当余数为______时,除数即为结果。
【答案】0(零)
【解析】用大数除以小数取余数,余数为 0 时当前的除数即为最大公约数。
10.判断一个整数 n 是否为素数时,循环只需检查到 n 的______(取整)即可。
【答案】平方根(Sqr(n))
【解析】若 n 为合数,必定有一个因子小于等于 Sqr(n),因此只需检查到平方根。
三、程序填空题(本题共2道小题,每题10分,共20分)
1.
以下程序的功能是:使用辗转相除法(欧几里得算法)求两个正整数 m 和 n 的最大公约数。请补充完善程序。
Private Sub Command1_Click()
Dim m As Integer, n As Integer, r As Integer
m = 48: n = 18
Do While n <> 0
r = [1]______
m = [2]______
n = [3]______
Loop
Print “最大公约数为”; m
End Sub
【答案】m Mod n;n;r
【解析】r = m Mod n 求余数;将 n 赋给 m 作为新的被除数;将余数 r 赋给 n 作为新的除数;当 n=0 时 m 即为最大公约数。
2.
以下程序的功能是:用递归函数求 n 的阶乘。请补充完善程序。
Private Function Fact(ByVal n As Integer) As Long
If [1]______ Then
Fact = 1
Else
Fact = [2]______ * Fact(n - 1)
End If
End Function
Private Sub Command1_Click()
Dim result As Long
result = [3]______
Print “5的阶乘为”; result
End Sub
【答案】n = 0 Or n = 1;n;Fact(5)
【解析】基例:n=0 或 n=1 时返回 1;递推:Fact(n) = n * Fact(n-1);调用函数传入实际参数 5。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:内蒙古自治区对口招生《计算机类考纲百套卷》,依据《2019年内蒙古自治区高等职业院校对口招收中等职业学校毕业生计算机类专业课综合考试指导纲要》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲“掌握”“理解”要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第16卷,为考点训练卷,按《Visual Basic程序设计》范围和要求编写。具体内容为:事件过程,子过程,过程间参数的传递,过程的嵌套与递归,常用算法实例。
内蒙古对口招生《计算机类考纲百套卷》 第16卷
《Visual Basic程序设计》
过程 考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单选题(本题共30道小题,每题2分,共60分)
1.在 Visual Basic 6.0 中,事件过程名由对象名、下划线和______组成
A. 过程类型 B. 控件类型
C. 参数名 D. 事件名
2.Form_Load 事件在______时触发
A. 单击窗体时 B. 双击窗体时
C. 窗体被加载时 D. 关闭窗体时
3.以下哪个是正确的事件过程名?( )
A. Click_Command1 B. 事件_Command1
C. Command1.Click D. Command1_Click
4.定义 Sub 过程的起始语句是( )
A. Sub 过程名()...End Sub B. Sub 过程名()...End
C. Function 过程名()...End D. Procedure 过程名()...End Proc
5.在 Visual Basic 6.0 中,调用 Sub 过程可以使用 Call 语句或( )
A. 直接写过程名和参数 B. 使用 Invoke 语句
C. 使用 Run 语句 D. 使用 Execute 语句
6.在 Visual Basic 6.0 中,Sub 过程( )
A. 有返回值 B. 必须有参数
C. 没有返回值 D. 返回值类型为 Variant
7.在 Visual Basic 6.0 中,默认的参数传递方式是( )
A. ByVal(传值) B. ByParam(参数传递)
C. ByCopy(复制传递) D. ByRef(传地址)
8.在过程定义中,使用______关键字声明参数后,过程内对参数的修改不会影响调用处的原变量
A. ByVal B. ByRef
C. ByCopy D. ByParam
9.定义过程时括号中的参数称为( )
A. 实际参数 B. 变量参数
C. 形式参数 D. 调用参数
10.在 Visual Basic 6.0 中,一个 Sub 过程内部调用另一个 Sub 过程,这称为( )
A. 递归调用 B. 无限调用
C. 循环调用 D. 过程的嵌套调用
11.递归过程是指( )
A. 过程直接或间接地调用自身 B. 过程调用另一个过程
C. 过程中包含循环语句 D. 过程中包含选择语句
12.用递归方法求 n 的阶乘,递归结束条件(基例)是( )
A. n = 0 B. n = n - 1
C. n > 1 D. n = n
13.关于 VB6.0 事件过程,以下说法不正确的是( )
A. 事件过程由系统自动调用 B. 可以像普通过程一样用 Call 调用事件过程
C. 事件过程名不能随意修改 D. 所有事件过程都必须在代码中显式调用
14.Timer 控件的 Timer 事件在______时触发
A. 用户单击 Timer 控件时 B. 窗体加载时
C. 每隔指定的时间间隔 D. 鼠标移动到 Timer 上时
15.用 Call 语句调用 Sub 过程 Test(a, b),正确的写法是( )
A. Call Test a, b B. Call Test, a, b
C. Call Test(a b) D. Call Test(a, b)
16.以下定义 Function 过程的正确语法是( )
A. Function f(x) As Integer ... End Function B. Function f(x) End f
C. Function f(x) ... End D. Func f(x) ... End Func
17.以下过程定义中,参数 x 的传递方式是
Private Sub Test(x As Integer)( )
A. 传值 B. 由调用方式决定
C. 传地址 D. 无法确定
18.以下程序段运行后,Print 输出的值是
Private Sub Change(ByVal x As Integer)
x = x + 1
End Sub
Private Sub Command1_Click()
Dim a As Integer
a = 10
Call Change(a)
Print a
End Sub( )
A. 10 B. 11
C. 0 D. 报错
19.递归过程必须包含的两个要素是( )
A. 循环条件和结束条件 B. 判断语句和循环语句
C. 输入参数和输出参数 D. 递归条件和基例(结束条件)
20.以下递归函数的功能是
Private Function f(ByVal n As Integer) As Integer
If n = 0 Then
f = 1
Else
f = n * f(n - 1)
End If
End Function( )
A. 计算 1 到 n 的和 B. 计算 n 的阶乘
C. 计算 n 的平方 D. 计算斐波那契数列第 n 项
21.使用辗转相除法求最大公约数,当余数为 0 时的______即为最大公约数
A. 被除数 B. 除数
C. 商 D. 余数
22.对于同一个控件可以编写多个不同的事件过程,以下说法正确的是( )
A. 每个控件只能有一个事件过程
B. 一个控件可以响应多种事件
C. 事件过程必须由用户编写调用代码
D. 事件过程中不能调用其他过程
23.以下程序段运行后,Print 输出的值是
Private Sub Test()
Static x As Integer
x = x + 1
Print x
End Sub
Private Sub Command1_Click()
Call Test
Call Test
Call Test
End Sub( )
A. 1 1 1 B. 1 2 3
C. 3 3 3 D. 1 3 3
24.Function 过程的返回值通过______赋给函数名
A. Return 语句 B. 给函数名赋值的语句
C. Result 关键字 D. Output 参数
25.以下程序段运行后,Print 输出 a 和 b 的值分别是
Private Sub Swap(ByRef x As Integer, ByRef y As Integer)
Dim t As Integer
t = x: x = y: y = t
End Sub
Private Sub Command1_Click()
Dim a As Integer, b As Integer
a = 5: b = 10
Call Swap(a, b)
Print a, b
End Sub( )
A. 5 10 B. 10 5
C. 5 5 D. 10 10
26.递归过程中,每次递归调用都会在内存的______中保存当前状态
A. 堆 B. 栈
C. 全局变量区 D. 代码区
27.以下递归函数计算斐波那契数列第 n 项(n>=1),函数返回
Private Function Fib(ByVal n As Integer) As Integer
If n = 1 Or n = 2 Then
Fib = 1
Else
Fib = Fib(n - 1) + Fib(n - 2)
End If
End Function
则 Fib(5) 的值是( )
A. 3 B. 5
C. 8 D. 13
28.用辗转相除法求 48 和 18 的最大公约数,结果应为( )
A. 2 B. 3
C. 6 D. 9
29.以下程序段运行后,Print 输出的值是
Private Sub AddOne(ByRef x As Integer, ByVal y As Integer)
x = x + y
y = y + x
End Sub
Private Sub Command1_Click()
Dim m As Integer, n As Integer
m = 3: n = 7
Call AddOne(m, n)
Print m, n
End Sub( )
A. 10 7 B. 3 17
C. 10 17 D. 3 7
30.判断一个整数 n 是否为素数,循环判断范围可以是 2 到( )
A. n B. n-1
C. Sqr(n) D. n/2
二、填空题(本题共10道小题,每题2分,共20分)
1.在事件过程命名中,对象名和事件名之间使用______符号连接。
2.窗体被加载时自动触发的事件是______事件。
3.Sub 过程以______语句结束。
4.在 Visual Basic 6.0 中,______过程可以有返回值。
5.在 Visual Basic 6.0 中,参数传递的默认方式是______(按地址传递)。
6.调用过程时传入的参数称为______参数(实参),定义过程时声明的参数称为形式参数(形参)。
7.在 Visual Basic 6.0 中,一个过程直接调用自身的过程调用方式称为______。
8.递归过程必须具备两个要素:递推关系和______条件(基例)。
9.使用辗转相除法求两个正整数的最大公约数,当余数为______时,除数即为结果。
10.判断一个整数 n 是否为素数时,循环只需检查到 n 的______(取整)即可。
三、程序填空题(本题共2道小题,每题10分,共20分)
1.
以下程序的功能是:使用辗转相除法(欧几里得算法)求两个正整数 m 和 n 的最大公约数。请补充完善程序。
Private Sub Command1_Click()
Dim m As Integer, n As Integer, r As Integer
m = 48: n = 18
Do While n <> 0
r = [1]______
m = [2]______
n = [3]______
Loop
Print “最大公约数为”; m
End Sub
2.
以下程序的功能是:用递归函数求 n 的阶乘。请补充完善程序。
Private Function Fact(ByVal n As Integer) As Long
If [1]______ Then
Fact = 1
Else
Fact = [2]______ * Fact(n - 1)
End If
End Function
Private Sub Command1_Click()
Dim result As Long
result = [3]______
Print “5的阶乘为”; result
End Sub
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$