【计算机类职业资格】国家二级VB机试(控制结构)模拟试卷17及答案解析.doc

上传人:dealItalian200 文档编号:1332975 上传时间:2019-10-17 格式:DOC 页数:15 大小:86.50KB
下载 相关 举报
【计算机类职业资格】国家二级VB机试(控制结构)模拟试卷17及答案解析.doc_第1页
第1页 / 共15页
【计算机类职业资格】国家二级VB机试(控制结构)模拟试卷17及答案解析.doc_第2页
第2页 / 共15页
【计算机类职业资格】国家二级VB机试(控制结构)模拟试卷17及答案解析.doc_第3页
第3页 / 共15页
【计算机类职业资格】国家二级VB机试(控制结构)模拟试卷17及答案解析.doc_第4页
第4页 / 共15页
【计算机类职业资格】国家二级VB机试(控制结构)模拟试卷17及答案解析.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、国家二级 VB机试(控制结构)模拟试卷 17及答案解析(总分:80.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.窗体上有一个名称为 Text1的文本框,一个名称为 Command1的命令按钮。要求编写一个程序,统计文本框中 0-9各数字字符的个数。某人编写如下程序: Private Sub Commandl_Click() Dim count(10)As Integer第 1个 For循环 For i=0 To 9 count(i)=0 Next S=Trim(Text1Text) strLen=Len(s)第 2个 For循环 For i=1 To strLe

2、n C=Mid(s,i,1) Ifc=”0”And cb a=a-b Wendfun=a End Function 在调试时发现函数是错误的。为使函数能产生正确的返回值,应做的修改是(分数:2.00)A.把 a=a-b改为 a=b-aB.把 a=a-b改为 a=abC.把 While ab改为 While ab改为 While a=b5.设有如下事件过程: Private Sub Form_Click() x=0 While XA.16B.19C.20D.256.下面程序在调试时出现了死循环 Pfivate Sub Commandl_Click() n=InputBox(“请输入一个整数”)

3、Do Ifn Mod 2=0 Then n=n+1 Else n=n+2 End If Loop Until n=1000 End Sub(分数:2.00)A.只有输入的 n是偶数时才会出现死循环,否则不会B.只有输入的 n是奇数时才会出现死循环,否则不会C.只有输入的 n是大于 1000的整数时才会出现死循环,否则不会D.输入任何整数都会出现死循环7.假定有以下循环结构 Do Until条件表达式循环体 Loop则以下正确的描述是(分数:2.00)A.如果“条件表达式”的值是 0,则一次循环体也不执行B.如果“条件表达式”的值不为 0,则至少执行一次循环体C.不论“条件表达式”的值是否为“真

4、”,至少要执行一次循环体D.如果“条件表达式”的值恒为 0,则无限次执行循环体8.以下 Visual Basic不支持的循环结构是(分数:2.00)A.ForNextB.For EachNextC.DoLoopD.DoEnd Do9.在窗体上画两个文本框(名称分别为 Text1和 Text2)和一个命令按钮(名称为 Command1),然后编写如下事件过程: Private Sub Commandl_Click() x=0 Do While xA.1和 0B.2和 72C.3和 50D.4和 16810.编写如下程序: Privme Sub Commandl_Click() Dim xAs I

5、nteger,y As Integer x=1:y=1 Do y=x*y Ify10 Then Exit Do Else x=x+3 End If Loop Until X0 s=S&n Mod 10:s=S&n10 Mod 10 n=n|100 Loop Print s End Sub 程序运行后,单击命令按钮 Command1,并输入数值 123456,则输出结果为(分数:2.00)A.654321B.563412C.642531D.61524312.下面程序计算并输出的是 Private Sub Commandl_Click() a=10:s=0 Do s=s+a*a*a:a=a-1 L

6、oop Until ay Then x=x-y Else y=y-x End if Loop Print xEnd Sub 运行程序,单击命令按钮,并输入 2个整数 169和 39,则在窗体上显示的内容为(分数:2.00)A.11B.13C.23D.3914.窗体上有 1个名称为 Commandl的命令按钮,事件过程及函数过程如下: Private Sub Commandl_Click() Dim m As String m=InputBox(”请输入字符串”) Print pick_str(m) End Sub Private:Function pick_str(s As String)As

7、 Stringtemp=“:i=1:sLen=Len(s) Do While i=sLen2 temp=temp+Mid(s,i,1)+Mid(s,sLen-i+1,1) i=i+1 Loop pick_str=temp End Function 运行程序,单击命令按钮,并在输入对话框中输入“basic”,则在窗体上显示的内容为(分数:2.00)A.bcaiB.cbiaC.bcaisD.cbias15.编写如下程序: Private Sub Commandl_Click() Dim m As Integer,n As Integer m=1:n=0 Do While mA.40 18B.40

8、19C.20 64D.21 6416.下列循环中,可以正常结束的是(分数:2.00)A.i=10 Do i=i+1 Loop Until i1D.i=10 Do i=i2 Loop Until i=117.以下能够正常结束循环操作的程序段是(分数:2.00)A.i=5 Do i=i+1 Loop Until i0 i=i-2 LoopD.i=0 Do While i18.窗体上有一个名称为 Commandl的命令按钮,其单击事件过程如下: Private Sub Commandl_Click() Dim sAs Double s=0:i=1 Do While i6 s=s+i(i+1):i=i

9、+1 Loop Print s End Sub 该事件过程的功能是计算一个表达式的值,该表达式是(分数:2.00)A.1+12+23+34+45B.1+12+23+34+45+56C.12+23+34+45D.12+23+34+45+5619.假定有如下程序: Private Sub Form_Click() Dim N As Integer,J As Integer N=0 J=1 Do Until N2 N=N+1:J=J+N*(N+1) Loop Print N:J End Sub 运行程序,单击窗体,输出结果是(分数:2.00)A.3 21B.3 7C.0 1D.3 1320.有如下程

10、序: Function fun(ByVal num As Integer)As Integer Dim k As Integer k=l num=Abs(num) Do While hum k=k*(num Mod 10):num=num10 Loop fun=k End Function Private Sub Form Click() Dim n As Integer,r As Integer n=InputBox(”请输入一个数:”):n=Int(n):r=fun(n):Print r End Sub 程序运行后,单击窗体,在输入对话框中输入 246,输出结果为(分数:2.00)A.12

11、0B.48C.24D.6021.下面程序的功能是输出 100以内所有素数: Private Sub Commandl_Click() For n=2 To 100 isprime=True:k=2 Do While k=n2 And_ Ifn Mod k=0 Then isprime=False k=k+1 Loop If isprime Then Print n Next nEnd Sub 为使上面程序可以实现该功能,程序代码中横线处应填写的代码是(分数:2.00)A.isprimeB.Not isprimeC.n0 k=k+1:arr(k)=d Mod r:d=dr Loop End Su

12、b 程序运行后,单击命令按钮 Commandl,输出结果为(分数:2.00)A.1 1 0 0B.0 0 1 1C.0 1 0 1D.1 0 1 023.编写如下程序: Private Sub Commandl_Click() Dim n As Long,s As String n=InputBox(”输入一个数”1) Do While nSqr(i)Then Print i End Sub该程序的功能是(分数:2.00)A.判断 n是否为素数B.输出 n以内所有的奇数C.输出 n以内所有的偶数D.输出 n以内所有的素数39.命令按钮 Command1的事件过程如下: Private Sub

13、Command1_Click() Dim arr(5,5)As Integer Dim i As Integer,j As Integer For i=1 To 4 Forj=2 To 4 arr(i,j)=i+j Nextj Print arr(1,3)+arr(3,4) End Sub 执行上述过程,输出结果是(分数:2.00)A.6B.7C.11D.1240.有如下程序: Private Sub Commandl_Click() Dim i As Integer,j As Integer,sum As Integer Doj=1 Do sum=sum+j:j=j+1 Printj; Lo

14、op Until j3 n=n+2 Loop Until n10 Print sumEnd Sub 运行上述程序,外层 Do循环执行的次数为(分数:2.00)A.4B.5C.7D.10国家二级 VB机试(控制结构)模拟试卷 17答案解析(总分:80.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.窗体上有一个名称为 Text1的文本框,一个名称为 Command1的命令按钮。要求编写一个程序,统计文本框中 0-9各数字字符的个数。某人编写如下程序: Private Sub Commandl_Click() Dim count(10)As Integer第 1个 Fo

15、r循环 For i=0 To 9 count(i)=0 Next S=Trim(Text1Text) strLen=Len(s)第 2个 For循环 For i=1 To strLen C=Mid(s,i,1) Ifc=”0”And cb a=a-b Wendfun=a End Function 在调试时发现函数是错误的。为使函数能产生正确的返回值,应做的修改是(分数:2.00)A.把 a=a-b改为 a=b-aB.把 a=a-b改为 a=abC.把 While ab改为 While ab改为 While a=b 解析:解析:本题函数过程的原代码仅适合 a不能被 b整除的两数,而当 a能被 b

16、整除时则不适用,如a=4,b=2,a 除以 b的余数为 0,而原代码返回的函数值为 2。因此需将语句 While ab改为 While a=b。5.设有如下事件过程: Private Sub Form_Click() x=0 While XA.16B.19C.20D.25 解析:解析:本题是简单 While循环,在循环中改变循环变量 x的值,要注意退出循环时 x必然是不会满足循环条件的。本题中循环中 x依次变化为 1、4、25。6.下面程序在调试时出现了死循环 Pfivate Sub Commandl_Click() n=InputBox(“请输入一个整数”) Do Ifn Mod 2=0 T

17、hen n=n+1 Else n=n+2 End If Loop Until n=1000 End Sub(分数:2.00)A.只有输入的 n是偶数时才会出现死循环,否则不会B.只有输入的 n是奇数时才会出现死循环,否则不会C.只有输入的 n是大于 1000的整数时才会出现死循环,否则不会D.输入任何整数都会出现死循环 解析:解析:本题考查循环。如果输入的 n是偶数,那么在循环体中执行 n=n+1,偶数+1 是奇数,循环结束条件 Loop Untiln=1000不会满足,形成死循环;如果输入的 n是奇数,那么循环体内执行 n=n+2,奇数+2 依然是奇数,循环结束条件永远不会满足,也形成死循环

18、。7.假定有以下循环结构 Do Until条件表达式循环体 Loop则以下正确的描述是(分数:2.00)A.如果“条件表达式”的值是 0,则一次循环体也不执行B.如果“条件表达式”的值不为 0,则至少执行一次循环体C.不论“条件表达式”的值是否为“真”,至少要执行一次循环体D.如果“条件表达式”的值恒为 0,则无限次执行循环体 解析:解析:本题考查的考点是有关 Do型循环的。对于这种循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件如何至少执行一次循环体。在 Until循环中条件为。False 时执行循环体,条件为 Tru

19、e时退出循环;在 While循环中条件为 True时执行循环体,条件为 False时退出循环,这一点要注意区分清楚。8.以下 Visual Basic不支持的循环结构是(分数:2.00)A.ForNextB.For EachNextC.DoLoopD.DoEnd Do 解析:解析:Vistlal Basic 支持的循环结构包括:For.Next 循环、For Each.Next 循环、:Do.Loop 循环和 While循环。9.在窗体上画两个文本框(名称分别为 Text1和 Text2)和一个命令按钮(名称为 Command1),然后编写如下事件过程: Private Sub Command

20、l_Click() x=0 Do While xA.1和 0B.2和 72 C.3和 50D.4和 168解析:解析:本题考查的考点是有关 Do型循环的。对于这种循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件是什么,至少执行一次循环体。在 Until循环中条件为 False时执行循环体,条件为 True时退出循环;在 While循环中条件为 True时执行循环体,条件为 False时退出循环,这一点要注意区分清楚。本题只需要实际计算一下两次循环中 x和 n值的变化即可容易的得出结果。10.编写如下程序: Privme

21、Sub Commandl_Click() Dim xAs Integer,y As Integer x=1:y=1 Do y=x*y Ify10 Then Exit Do Else x=x+3 End If Loop Until X10,执行 Else分支,x 变成 4,此时由于满足 x0 s=S&n Mod 10:s=S&n10 Mod 10 n=n|100 Loop Print s End Sub 程序运行后,单击命令按钮 Command1,并输入数值 123456,则输出结果为(分数:2.00)A.654321 B.563412C.642531D.615243解析:解析:本题在循环中先将

22、 n除以 10的余数(即个位数字)连接到 s上,然后将整除 10后除以 10的余数(即十位上数字)连接到 s上,然后 n整除 100的值赋值给 n(即去掉最后两位),然后继续进行循环,所以最终将会输出数字的逆序。12.下面程序计算并输出的是 Private Sub Commandl_Click() a=10:s=0 Do s=s+a*a*a:a=a-1 Loop Until ay Then x=x-y Else y=y-x End if Loop Print xEnd Sub 运行程序,单击命令按钮,并输入 2个整数 169和 39,则在窗体上显示的内容为(分数:2.00)A.11B.13 C

23、.23D.39解析:解析:本题的循环中将两个输入的数 x和 y互相相减,直到 x=y为止,实际上就是辗转相减法,求最大公约数的过程。14.窗体上有 1个名称为 Commandl的命令按钮,事件过程及函数过程如下: Private Sub Commandl_Click() Dim m As String m=InputBox(”请输入字符串”) Print pick_str(m) End Sub Private:Function pick_str(s As String)As Stringtemp=“:i=1:sLen=Len(s) Do While i=sLen2 temp=temp+Mid(

24、s,i,1)+Mid(s,sLen-i+1,1) i=i+1 Loop pick_str=temp End Function 运行程序,单击命令按钮,并在输入对话框中输入“basic”,则在窗体上显示的内容为(分数:2.00)A.bcai B.cbiaC.bcaisD.cbias解析:解析:本题的函数中使用了 Do循环,循环条件是 i=sLen2;由于字符串的长度为 5,所以循环会执行两次;在每次循环中使用 Mid函数依次取得字符串的第一个字符、最后一个字符、第二个字符、倒数第二个字符。15.编写如下程序: Private Sub Commandl_Click() Dim m As Integ

25、er,n As Integer m=1:n=0 Do While mA.40 18 B.40 19C.20 64D.21 64解析:解析:本题的 Do循环是一个先判断条件型的循环,在循环中将循环变量 m的值每次改变。分析循环可看出,在 4次循环中 m的值分别为 1、4、13、40,而只有前三次循环中的 m值被累加到 n中,最后一次循环由于不满足 m1D.i=10 Do i=i2 Loop Until i=1解析:解析:Do 循环语句的功能是:当指定的“循环条件”为真或直到指定的“循环条件”变为真之前重复执行循环体。Do While|UntilLoop 循环是在条件满足的情况下才执行一次循环体,

26、而 DoLoop While|Until循环不管是否满足条件都先执行一次循环体,然后再判断条件是否成立以决定后续操作。本题的 A选项由于 i的值从 10开始递增,永远不会满足 i1而无限循环;D 选项由于 i的值从 10开始递减,但是因为每次递减 2,所以 i永远为偶数,不会满足 i=1而无限循环。17.以下能够正常结束循环操作的程序段是(分数:2.00)A.i=5 Do i=i+1 Loop Until i0 i=i-2 Loop D.i=0 Do While i解析:解析:Do 循环语句的功能是:当指定的“循环条件”为真或直到指定的“循环条件”变为真之前重复执行循环体。Do while|U

27、ntilLoop 循环是在条件满足的情况下才执行一次循环体,而 DoLoop While|Until循环不管是否满足条件都先执行一次循环体,然后再判断条件是否成立以决定后续操作。本题的 A选项由于 i的值从 5开始递增,永远不会满足 i2 N=N+1:J=J+N*(N+1) Loop Print N:J End Sub 运行程序,单击窗体,输出结果是(分数:2.00)A.3 21 B.3 7C.0 1D.3 13解析:解析:Do 循环语句的功能是:当指定的“循环条件”为真或直到指定的“循环条件”变为真之前重复执行循环体。Do while|UntilLoop 循环是在条件满足的情况下才执行一次循

28、环体,而 DoLoop While|Until循环不管是否满足条件都先执行一次循环体,然后再判断条件是否成立以决定后续操作。本题的循环共执行 3次,跳出循环时 N的值为 3,J 的值为 21。20.有如下程序: Function fun(ByVal num As Integer)As Integer Dim k As Integer k=l num=Abs(num) Do While hum k=k*(num Mod 10):num=num10 Loop fun=k End Function Private Sub Form Click() Dim n As Integer,r As Inte

29、ger n=InputBox(”请输入一个数:”):n=Int(n):r=fun(n):Print r End Sub 程序运行后,单击窗体,在输入对话框中输入 246,输出结果为(分数:2.00)A.120B.48 C.24D.60解析:解析:在函数 fun中会对传过来的参数 num进行判断,如果不为 0则进行循环,将各位数字乘到一起然后作为函数的返回值。21.下面程序的功能是输出 100以内所有素数: Private Sub Commandl_Click() For n=2 To 100 isprime=True:k=2 Do While k=n2 And_ Ifn Mod k=0 The

30、n isprime=False k=k+1 Loop If isprime Then Print n Next nEnd Sub 为使上面程序可以实现该功能,程序代码中横线处应填写的代码是(分数:2.00)A.isprime B.Not isprimeC.n0 k=k+1:arr(k)=d Mod r:d=dr Loop End Sub 程序运行后,单击命令按钮 Commandl,输出结果为(分数:2.00)A.1 1 0 0 B.0 0 1 1C.0 1 0 1D.1 0 1 0解析:解析:本题实际上是在子过程 subl中对 arr数组进行的赋值工作,形参 d的值为 12,r 的值为2,k

31、的初值为 0;在循环中计算 d除以 2的余数放到数组的第一个元素,整除 2后再除以 2的余数放到第二个元素以此类推,最后数组 air中存放的是(0、0、1、1),在 Commandl Click()过程中调用完子过程对数组进行赋值以后,逆序输出了数组的值。23.编写如下程序: Private Sub Commandl_Click() Dim n As Long,s As String n=InputBox(”输入一个数”1) Do While nSqr(i)Then Print i End Sub该程序的功能是(分数:2.00)A.判断 n是否为素数B.输出 n以内所有的奇数C.输出 n以内所

32、有的偶数D.输出 n以内所有的素数 解析:解析:本题中的外循环是从 2循环到 n,然后进入内循环,在内循环中依次判断 i能否被 j整除,若能整除则退出内循环;内循环结束后进行判断,如果是中途退出内循环的则必然不满足 iSqr(i),不会输出 i的值;只有 i不能被任何一个整除的情况下才会输出 i的值,即判断 i是不是素数,只有素数才输出。39.命令按钮 Command1的事件过程如下: Private Sub Command1_Click() Dim arr(5,5)As Integer Dim i As Integer,j As Integer For i=1 To 4 Forj=2 To

33、4 arr(i,j)=i+j Nextj Print arr(1,3)+arr(3,4) End Sub 执行上述过程,输出结果是(分数:2.00)A.6B.7C.11 D.12解析:解析:本题中首先在一个二重循环中给二维数组 arr的部分元素赋值,循环结束后输出两个数组元素的和,根据题意 arr(1,3)+air(3,4)=4+7=11。40.有如下程序: Private Sub Commandl_Click() Dim i As Integer,j As Integer,sum As Integer Doj=1 Do sum=sum+j:j=j+1 Printj; Loop Until j3 n=n+2 Loop Until n10 Print sumEnd Sub 运行上述程序,外层 Do循环执行的次数为(分数:2.00)A.4B.5 C.7D.10解析:解析:外循环的控制条件为 n10,即 n10的时候结束循环;在每次内循环中 j都会自加,i3 的时候退出内循环,即每次外循环中内循环都会执行 3次;由于内循环没有改变 n的值,而在外循环中 n的值自加 2,所以外循环共循环 5次。

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

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

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