[计算机类试卷]国家二级VB机试(Visual Basic控制结构)模拟试卷2及答案与解析.doc

上传人:fatcommittee260 文档编号:499476 上传时间:2018-11-30 格式:DOC 页数:25 大小:61.50KB
下载 相关 举报
[计算机类试卷]国家二级VB机试(Visual Basic控制结构)模拟试卷2及答案与解析.doc_第1页
第1页 / 共25页
[计算机类试卷]国家二级VB机试(Visual Basic控制结构)模拟试卷2及答案与解析.doc_第2页
第2页 / 共25页
[计算机类试卷]国家二级VB机试(Visual Basic控制结构)模拟试卷2及答案与解析.doc_第3页
第3页 / 共25页
[计算机类试卷]国家二级VB机试(Visual Basic控制结构)模拟试卷2及答案与解析.doc_第4页
第4页 / 共25页
[计算机类试卷]国家二级VB机试(Visual Basic控制结构)模拟试卷2及答案与解析.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、国家二级 VB机试( Visual Basic控制结构)模拟试卷 2及答案与解析 一、选择题 1 在下面语句或函数中,不能描述选择结构的是 ( A) If语句 ( B) IIf函数 ( C) SelectCase语句 ( D) While语句 2 编写如下程序: Private Sub Command1_Click() Dim score As Integer score=86 If score 85 Then r=1 ElseIf score 60Then r=2 Else r=0 End If Print r EndSub 程序运行后,单击命令按钮 Command1,输出结果为 ( A)

2、0 ( B) 1 ( C) 2 ( D) 86 3 窗体上有 1个名称为 Command1的命令按钮,事件过程如下: Private Sub Commond1_Click() Dim num As Integer, x As Integer num=Val(InputBox(“请输入一个正整数 “) Select Case num Case Is 100 x=x+num Case Is 90 x=Hum Case Else x=x*num End Select Print x: End Sub 运行程序,并在三次单击命令按钮时,分别输入正整数 100、 90和 60,则窗体上显示的内容为 (

3、A) 0 0 0 ( B) 0 0 60 ( C) 0 90 0 ( D) 100 0 60 4 编写如下程序: Private Sub Command1_Click() Dim i As Integer, j As Integer n=InputBox(“输入一个大于 1的正整数 “) For i=2 To n For j=2 To Sqr(i) If i Mod j=0 Then Exit For Next j If j Sqr(i)Then Print i Next i End Sub 该程序的功能是 ( A)判断 n是否为素数 ( B)输出 n以内所有的奇数 ( C)输出 n以内所有的

4、偶数 ( D)输出 n以内所有的素数 5 窗体上有一个名称为 Command1的命令按钮,其单击事件过程如下: Option Base1 Private Sub Command1_Click() Dim a(4, 4)As Integer For i=1 To 4 For j=1 To 4 a(i, j)=Int(Rnd*100) Next Next x=a(1, 1) y=a(1, 1) For i=1To 4 For j=1 To 4 If x a(i, j)Then x=a(i, j) If y a(i, j)Then y=a(i, j) Next s=s+a(i, i) Next Pr

5、int x, y, s End Sub 关于以上程序,以下叙述中错误的是 ( A)二维数组元素的值是不大于 99的随机整数 ( B)计算结果 x是二维数组各元素中的最大数 ( C)计算结果 y、是二维数组各元素中的最小数 ( D)计算结果 s是二维数组各行第一个元素之和 6 窗体上有一个名称为 Command1的命令按钮,有程序如下: Option Base 1 Private SUb Command1_Click() Dim a(10)As Integer 第 1个 For For i=1 To 10 a(i)=Int(Rnd*100+100) Print a(i); Next x=a(i)

6、 y=x 第 2个 For For i=1 To 10 If x a(i)Then x=a(i) If y a(i)Then y=a(i) s=s+a(i) Next Print x, y, 8 End Sub 关于上述程序的叙述中,正确的是 ( A)程序运行出错,第 1个 For循环之后的 x=a(i)赋值语句错 ( B)程序正常运行, x是 10个随机数中的最大值 ( C)程序正常运行, S是 10个随机数的和 ( D)程序正常运行, 10个随机数的范围是 100-200 7 阅读程序: Option Base 1 Private Sub Form_Click() Dim Art(3, 3

7、)As Integer For i=1 To 3 For j=1 To 3 If j=i Or j=3-i+1 Then Arr(i, j)=1 Else Arr(i, j)=0 End If Next j Next i For i=1 To 3 For j=1 To 3 Print Arr(i, j); Next j Print Next i End Sub 程序运行后,如果单击窗体,则输出结果为 ( A) 1 1 1 1 1 1 1 1 1 ( B) 0 0 0 0 0 0 0 0 0 ( C) 1 0 0 0 1 0 0 0 1 ( D) 1 0 1 0 1 0 1 0 1 8 在窗体上

8、 画一个组合框,其名称为 Combo1,然后编写如下事件过程: Private Sub Form_Load() Combo1 Text=“1“ For i=1 To 10 Sum=Sum+i Next i C0mbo1 Text=Sum End Sub 程序运行后,输出结果为 ( A)在组合框的编辑区中显示 1 ( B)在组合框的编辑区中显示不定值 ( C)在组合框的编辑区中显示 55 ( D)出错信息 9 阅读程序: Option Base 1 Private Sub Form_Click() Dim a(3, 3)As Integer For i=1 To 3 For j=1 To 3 a

9、(i, j)=_ Print a(i, j); Next j Print Ncxt i End Sub 运行上面的程序,单击窗体,输出结果如下: 1 4 7 2 5 8 3 6 9 则在横线处应填入的内容为 ( A) i+j ( B) i*j ( C) (i-1)*3+j ( D) i+(j-1)*3 10 在窗体上画一个命令按钮,然后编写如下程序: Option Base 1 Prirate Sub Command1_Click() Dim Arr(10)As Integer For i=1 To 10 Art(i)=11-i Next i x=InputBox(“输入一个整数 (3 10)

10、“) Print Arr(2+ArKx) End Sub 程序运行后,单击命令按钮,在输入对话框中输入 7,则输出结果为 ( A) 3 ( B) 4 ( C) 5 ( D) 6 11 设有下面程序代码: Option Base 1 Private Sub Commanmd1_Click() Dim x(6) a=Array(4, 2, 5, 1, 6, 3) b=Array(64, 24, 98, 27, 58, 41) For k=1 To 6 x(a(k)=b(k) Nextvk For k=1 Tp 6 Print x(k); Next k End Sub 程序运行时的输出是 ( A)

11、27 24 41 64 98 58 ( B) 64 24 98 27 58 41 ( C) 24 27 41 58 64 98 ( D) 98 64 58 41 27 24 12 有下面程序代码: Private Sub Command1_Click() a=3 s=0 For k=1 To 5 s=s+a Mod k a=a+k Next k Print s End Sub 程序运行后,单击命令按钮 Command1,输出结果是 ( A) 15 ( B) 13 ( C) 4 ( D) 1 13 有下面程序代码: Private Sub Comraand1_Click() a=Array(1,

12、 2, 3, 4, 5, 6, 7, 8, 9, 10) n=UBound(A) For k=0 To UBound(A) 2 Print a(k)*a(n); n=n-1 Next k End Sub 程序运行后,单击命令按钮 Command1,输出结果是 ( A) 2 6 12 20 30 ( B) 2 12 20 56 90 ( C) 30 28 24 18 10 ( D) 10 18 24 28 30 14 编写如下程序: Private Sub Command1_Click() Dim a(3, 3)As Integer Dim b(3, 3)As Integer For i=1 T

13、o 3 For j=1 To 3 a(i, j)=i+j b(i, j)=a(i, j)+i*(j-1) Next j Next i For i=1 To 3 For j=1 To 3 Print b(i, j); Next j Print Next i End Sub 程序运行后,单击命令按钮 Command1,输出结果为 ( A) 2 3 4 3 4 5 4 5 6 ( B) 2 4 6 3 6 9 4 8 12 ( C) 3 5 7 5 8 11 7 11 15 ( D) 4 6 8 7 10 13 10 14 18 15 编写如下程序: Private Sub Command1_Cli

14、ck() Dim a(3, 3)As Integer Dim i As Integer, j As Integer For i=1 To 3 For j=1 To 3 If i 1 And j 1 Then a(i, j)=a(a(i-1, j-1), a(i, j-1)+1 Else a(i, j)=i*j End If 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 程序运行后,单击命令按钮 Command1,输出结果为 ( A) 1 2 3 2 3 1 3 2 3 ( B

15、) 1 2 3 2 1 1 3 1 1 ( C) 1 2 3 2 0 0 3 0 0 ( D) 1 2 3 2 2 2 3 3 3 16 设有如下事件过程: Private Sub Form_Click() x=0 Whilex10 x=x+1 x=x*x Wend Print x End Sub 运行程序,单击窗体,输出结果是 ( A) 16 ( B) 19 ( C) 20 ( D) 25 17 下列循环中,可以正常结束的是 ( A) i=10 Do i=i+1 Loop Until i 1 ( B) i=1 Do i=i+1 Loop Until i=10 ( C) i=10 Do i=i

16、+1 Loop While i 1 ( D) i=10 Do i=i-2 Loop Until i=1 18 以下能够正常结束循环操作的程序段是 ( A) i=5 Do i=i+1 Loop Until i 0 ( B) i=5 Do i=i+2 Loop Until i=1 ( C) i=5 Do Whilei 0 i=i-2 Loop ( D) i=0 Do While i 1 i=i-2 Loop 19 假定有如下程序: Private Sub Form_Click() Dim N As Integer, J As Integer N=0 J=1 Do Until N 2 N=N+1 J

17、=J+N*(N+1) Loop Print N: J End Sub 运行程序,单击窗体,输出结果是 ( A) 3 21 ( B) 3 7 ( C) 0 1 ( D) 3 13 20 有下面程序代码: Private Sub Command1_Click() i=1 Do While i 5 j=1 Do j=j+1 Print“*”; Loop Until i+j 10 Print i=i+2 Loop End Sub 程序运行时输出字符 “*”的个数是 ( A) 50 ( B) 20 ( C) 16 ( D) 15 21 编写如下程序: Private Sub Conunand1_Clic

18、k() Dim x As Integer, y As Integer x=1 y=1 Do y=x*y If y 10 Then Exit Do Else x=x+3 End If Loop Until x =10 Print x; yY End Sub 程序运行后,单击命令按钮 Command1,输出结果为 ( A) 1 1 ( B) 4 1 ( C) 4 2 ( D) 7 28 22 编写如下程序: Private Sub Command1_Click() Dim n As Long, s As String n=InputBox(“输入一个数 “) Do IWhile n 0 s=s&n

19、 Mod 10 s=s&n 10 M0d 10 n=n 100 Loop Print s End Sub 程序运行后,单击命令按钮 Command1,并输入数值 123456,则 输出结果为 ( A) 654321 ( B) 563412 ( C) 642531 ( D) 615243 23 编写如下程序: Private Sub Command1_Click() Dim n As Long, s As String n=InputBox(“输入一个数 “) Do While n 0 Print n 10 Mod 10: Print n Mod 10: n=n 100 Loop Print s

20、 End Sub 程序运行后,单击命令按钮 Command1,并输入数值 123456,则输出结果为 ( A) 6 5 4 3 2 1 ( B) 5 6 3 4 1 2 ( C) 6 4 2 5 3 1 ( D) 6 1 5 2 4 3 24 以下关于数组的叙述中,错误的是 ( A) Variant类型的数组中各数组元素的类型可以不同 ( B)各数组元素可以是不同类型的控件 ( C)各数组元素通过下标进行区别 ( D)各数组元素具有相同的名称 25 窗体上有名称为 Command1的命令按钮,其事件过程如下: Option Base 1 Private Sub Command1_Click()

21、 Dim a Dim b(10)As Integer a=Array(2, 4, 7, 3, 9, 6) For i=LBound(A)To UBound(A) b(i)=a(i)+i Sum=Sum+b(i) Next i Print Sum End Sub 运行程序,单击命令按钮时,窗体上显示的是 ( A) 44 ( B) 46 ( C) 50 ( D) 52 26 以下叙述中错误的是 ( A)用 ReDim语句可以改变数组的维数 ( B)用 ReDim语句可以改变数组的类型 ( C)用 ReDim语句可以改变数组每一维的大小 ( D)用 ReDim语句可以对数组中的所有元素置 0或空字符

22、串 27 在窗体上画一个命令按钮 (其 Name属性为 Command1),然后编写如下代码: Private Sub Command1_Click() Dim n()As Integer Dim a, b As Integer a=InputBox(“Enter the first number“) b=InputBox(“Enter the second number“) ReDim n(a To B) For k=LBound(n)To UBound(n) n(k)=k Print n(k); Next k End Sub 程序运行后,单击命令按钮,在输入对话框中分别输入 2和 3,输出

23、结果为 ( A) 1 2 ( B) 2 3 ( C) 3 4 ( D) 4 5 28 在窗体上画一个命令按钮和一个标签,其名称分别为 Command1和 lahel1,然后编写如下事件过程: Private Sub Command1_Click() Dim arr(10) For i=6 To 10 arr(i)=i-5 Next i Label1 Caption=arr(0)+air(arr(10) arr(6) End Sub 运行程序,单击命令按钮,则在标签中显示的是 ( A) 0 ( B) 1 ( C) 2 ( D) 3 29 在窗体上画一个名称为 Text1的文本框,并编写如下程序:

24、 Option Base 1 Private Sub Form_Click() Dim arr Dim Start As Integer, Finish As Integer Dim Sum As Integer art=Amy(12, 4, 8, 16) Start=LBound(arr) Finish=UBound(arr) Sum=0 For i=Start To Finish Sum=Sum+arr(i) Next i c=Sum Finish Text1 Text=c End Sub 运行程序,单击窗体,则在文本框中显示的是 ( A) 40 ( B) 10 ( C) 12 ( D)

25、16 30 以下关于控件数组的叙述中,错误的是 ( A)各数组元素共用相同的事件过程 ( B)各数组元素通过下标进行区别 ( C)数组可以由不同类型的控件构成 ( D)各数组元素具有相同的名称 31 下面关于控件数组的叙 述中正确的是 ( A)控件数组中所有控件的名称相同,但其 Index属性值各不相同 ( B)控件数组中所有控件的名称相同,但其 Value属性值各不相同 ( C)控件数组中每个元素都是独立的控件,因此都有各自的事件过程 ( D)上述都是错误的 国家二级 VB机试( Visual Basic控制结构)模拟试卷 2答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 Whi

26、le语句不能描述选择结构。 【知识模块】 Visual Basic控制结构 2 【正确答案】 B 【试题解析】 本 题考查 IfElse IfElseEnd If 语句。条件判断成立则执行对应分支的语句。 86 85,所以 r=1。选 B。 【知识模块】 Visual Basic控制结构 3 【正确答案】 B 【试题解析】 按钮事件中变量 x为过程局部变量,第 1次输入 100时, Select语句执行 CaseElse分支 x=x*num=0*100=0。第二次输入 90时, Select语句执行Case Else分支 x=x*num=0*90=0。第三次输入 60时 Select语句执行

27、Case Is 90分支 x=num=60。因此窗体上显示为 0 0 60。 【知识模块】 Visual Basic控制结构 4 【正确答案】 D 【试题解析】 假设输入 2、 4、 9进行验证,输入 2时程序会输出 2,输入 4时,程序会输出 2、 3,可见程序不是判断 n是否为素数,所以 A不对。由前面验证可知,程序也不是输出 n以内的所以奇数或偶数,所以 B、 C也不对。如果输入 9时,程序会输出 2、 3、 5、 7,说明程序是输出 n以内的所有素数,所以 D正确。 【知识模块】 Visual Basic控制结构 5 【正确答案】 D 【试题解析】 程序首先通过 For循环给数组 a元

28、素赋值。取随机数函数返回的值介于 0和 1之间。乘以 100后取整介于 0和 99。故 A正确。接下来对 x和 y赋初值 (s的第一个元素 ),在循环内部进行数值大小的比较,把当前比 x大的存入 x,比 y小的存入 y,循环结束后, x中存储的是最大值, y中存储的是最小值。故B, C对。 s中存储一维和二维下标相同的数组元素的和。选 D。 【知识模块】 Visual Basic控制结构 6 【正确答案】 A 【试题解析】 第一个 For循环中缺省 Step,步长为 1,退出循环时下标为 10,第 1个 For循环之后的 x=a(i)赋值语句下标越界,出错。选 A。 【知识模块】 Visual

29、 Basic控制结构 7 【正确答案】 D 【试题解析】 第一个 For循环给数组 Arr赋值。第二个 For循环打印数组各元素的值。在第一个 For循环中,数组的下标用变量 i表示,上标用变量 j表示。IfElse 语句对两种情况进行判断,在 i等于 j的时候或者 i和 j满足 j=3-i+1关系的时候, Arr数组元素被赋值为 1,其他情况被赋值为 0。可以根据循环语句的执行,代入各变量值算得各元素的值。选 D。 【知识模块】 Visual Basic控制结构 8 【正确答案】 C 【试题解析】 For循环实现 1到 10的累加,结束循环后 Sum=55。选 C。 【知识模块】 Visua

30、l Basic控制结构 9 【正确答案】 D 【试题解析】 该程序段是个两重嵌套循环给数组 a元素赋值。下标用变量 i表示,上标用 j表示。按循环执行顺序依次代入变量值计算,需要得出如题的打印结果,计算公式为 i+(j-1)*3,选 D。 【知识模块】 Visual Basic控制结构 10 【正确答案】 C 【试题解析】 For循环对数组 An,赋初值。得到的结果是元素值从 10到 1的倒序。 Art(7)=4。 Art(2+Arr(x)=Arr(2+4)=5。选 C。 【知识模块】 Visual Basic控制结构 11 【正确答案】 A 【试题解析】 第一个 For循环对 x数组元素赋初

31、值。被赋的值根据下标,从 b数组中获取。而 x的下标从数组 a的元素中获得。注意 Option Base 1的影响,下标从 1开始。因此 x数组中的值实际上是按照 a数组中值进行了一个重新排序。即x(1)是数组 b中第 4个元素的值: 27,其他值以此类推 。选 A。 【知识模块】 Visual Basic控制结构 12 【正确答案】 C 【试题解析】 Mod为求余函数。 For循环执行 5次。第一次执行时 a Mod k的值为 0,则 s=0, a=4;循环继续直到 k=5退出。分步计算可得最后 s=4,选 C。 【知识模块】 Visual Basic控制结构 13 【正确答案】 D 【试题

32、解析】 UBound获取数组 a的上标值, n=9。 For循环边界为 0至 4。每次执行 For的循环体时均会进行打印。选 D。 【知识模块】 Visual Basic控制结构 14 【正确答案】 B 【试题解析】 第一个 For循环对数组 a和数组 b的元素赋初值。第二个 For循环实现答应。嵌套循环先执行内循环,条件不满足时退出执行外循环。直到外循环也不满足条件时结束。选 B。 【知识模块】 Visual Basic控制结构 15 【正确答案】 A 【试题解析】 第一个 For循环对数组 a(3, 3)元素赋初值。根据循环体内的条件数组元素获得初值。第二个 For循环进行数组元素的打印。

33、选 A。 【知识模块】 Visual Basic控制结构 16 【正确答案】 D 【试题解析】 WhileWend 语句只要指定的条件为 True,则会重复执行一系列的语句。程序中只要满足 x 10的条件循环就一直执行。当 x=4时,执行完循环体内容后 x=25,条件为 False,退出,打印。选 D。 【知识模块】 Visual Basic控制结构 17 【正确答案】 B 【试题解析】 选项 A中先执行一次循环体, i的值变成 1,测试循环结束条件, i 1不成立,循环继续, i值总是增加,达不到循环结束条件,不能正常结束。选项 _B先执行循环体, i值加 l变成 2,再测 试循环结束条件

34、i=10。继续循环, i值再加 1,直到 i变为 10,循环结束。选项 C中 i初值为 10,先执行一次循环体,使 i加 1,然后判断继续循环的条件 i 1是否成立,此后 i值不会小于等于 1,循环会一直继续下去,不会正常结束。选项 D中 i初值为 10,每次循环 i值减 2,因此它总是偶数,而循环结束的条件是 i=1,不可能达到,循环会一直继续下去。 【知识模块】 Visual Basic控制结构 18 【正确答案】 C 【试题解析】 A中循环体内 i=i+1, i永远不会小于 0; B中 i的初值为 5,执行语句 i=i+2后不会等于 1。 D中 i 1一直满足条件,不能退出循环。 C中

35、i的初值为5, i=i-2则每次都减 2,在第 3次执行循环后 i 0条件不满足,退出循环。选 C。 【知识模块】 Visual Basic控制结构 19 【正确答案】 A 【试题解析】 Do UntilLoop 语句在条件满足的前提下会一直执行中间的循环语句。 N的初值为 0,因此循环会执行 3次。在循环体内 N每次被加 1。因此结束时N=3。同样的方法可算出 J=21。选 A。 【知识模块】 Visual Basic控制结构 20 【正确答案】 C 【试题解析】 DoLoop Until 循环和 Do WhileLoop 循环都是满足执行条件时会一直执行循环体内的语句。直到条件不满足退出。

36、外循环 i初值为 1,条件是小于 5,每次循环加 2,则执行 2次。内循环条件 i=1时执行 10次, i=3时执行 6次。选 C。 【知识模块】 Visual Basic控制结构 21 【正确答案】 B 【试题解析】 DoLoop Until 循环当条件为真时循环执行循环体。代入初值进行计算可得结果。选 B。 【知识模块】 Visual Basic控制结构 22 【正确答案】 A 【试题解析】 &为字符串连接函数。循环体取 n的个位数,十位数,百位数组成字符串 s。循环执行后 s字符串和输入的字符串倒序。选 A。 【知识模块】 Visual Basic控制结构 23 【正确答案】 B 【试题

37、解析】 Print语句对输入的数值 n=123456进行处理并打印。第一条语句打印 n的十位数,第二条语句打印 n的个位数。然后 n被求余。 【知识模块】 Visual Basic控制结构 24 【正确答案】 B 【试题解析】 控件数组是由一组相 同类型的控件组成。它们共用一个控件名,绝大部分的属性也相同,但 Index属性的值不同。当建立控件数组时,系统给每个元素赋一个唯一的索引号 (Index),通过属性窗口的 Index属性,可以知道该控件的下标是多少,第 1个元素下标是 0。 【知识模块】 Visual Basic控制结构 25 【正确答案】 D 【试题解析】 不同维数的数组缺省下界都

38、是 0或 1,这取决于 Option Base语句的设置。本题中有语句 Option Base 1,所以 LBound(A)=1, UBound(A)=6; For循环 进行求和计算,结果为 52,选 D。 【知识模块】 Visual Basic控制结构 26 【正确答案】 B 【试题解析】 BeDim语句无法更改数组变量的数据类型。 【知识模块】 Visual Basic控制结构 27 【正确答案】 B 【试题解析】 输入 2和 3后, n被重新定义,下标为 2,上标为 3。 For循环执行2次, k=2k=3。因此选 B。 【知识模块】 Visual Basic控制结构 28 【正确答案】

39、 A 【试题解析】 程序为使用 For语句为数组中部分元 素赋值,没显示赋值的数组元素的值默认为 0,因此 arr(0)=0, art(10)=10-5=5, arr(6)=6-5=1, arr(arr(10)arr(6)即, arr(5 1)=arr(5)=0, arr(0)+arr(5)=0+0=0。因此标签中显示为 0。 【知识模块】 Visual Basic控制结构 29 【正确答案】 B 【试题解析】 程序中将变量 arr初始化为有 4个元素的数组,使用 Lbound和Ubotmd函数分别获取数组下标的上下限,然后将数组中的元素值相加,用整除运算求它们的平 均值。算式可写为 (12+4+8+16) 4=(40) 4=10。所以答案为 B。 【知识模块】 Visual Basic控制结构 30 【正确答案】 C 【试题解析】 控件数组是由类型相同的控件组成,具有相同的名称,用下标Index属性区分各数组元素。它们共用相同的事件过程。故 C选项错误。 【知识模块】 Visual Basic控制结构 31 【正确答案】 A 【试题解析】 控件数组的 Index属性,标识数组中的每个控件,使之与其他控件能够区分开来,索引在内部必须是唯一的,不能 与其他相同。故答案选 A。 【知识模块】 Visual Basic控制结构

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1