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

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

1、国家二级 VB机试(控制结构)模拟试卷 11及答案与解析 一、选择题 1 有下面程序代码: Private Sub Command1_Click() Dim sign As Integer sign=1 a=1: b=2 For k=l To 5 c=a+sign*b a=b: b=c Print c: sign=-sign Next k End Sub 程序运行后,单击命令按钮 Command1,输出结果是 ( A) 3 -1 2 -3 -1 ( B) 3 5 8 13 21 ( C) -1 1 -2 -1 -1 ( D) 3 4 5 6 7 2 编写如下程序: Private Sub Co

2、mmand1_Click() Dim a(10)As String s=“123456“: n=Len(s) For k=1 To n a(k)=Mid(s, k, 1) Next k For i=1 To n 2 t=a(i) a(i)=a(n-i+1): a(n-i+1)=t Next i For k=l To n Print a(k); Next k End Sub 程序运行后,单击命令按钮 Command1,输出结果为 ( A) 654321 ( B) 123456 ( C) 654123 ( D) 123654 3 窗体上有 1个名称为 Command1的命令按钮; 1个名称为 Li

3、st1、没有列表项的列表框。编写如下程序: Private Sub Command1_Click() Dim x As String, s As String, temp As String Dim i As Integer x=InputBox(“输入字符串 “, “输入 “) Ifx“Then temp=s+temp Else List1 AddItem temp s=“: temp=“ End If Next List1 AddItem temp Else MsgBox“输入内容为空 !“ End If End Sub 程序运行后,单击命令按钮 Command1,并输入 “Happy n

4、ew year”,则在 List1中显示的内容为 ( A) year new Happy ( B) Happy new year ( C) raey wen yppaH ( D) yppaH wen raey 4 设窗体上有一个文本框 Text1和一个命令按钮 Command1,并有以下事件过程:Private Sub Command1_Click()Dim s As String, ch As String s=“For k=1 To Len(Text1)ch=Mid(Text1, k, 1)s=ch+s Next k Text1 Text=s End Sub程序执行时,在文本框中输入 “B

5、asic”,然后单击命令按钮,则 Text1中显示的是 ( A) Basic ( B) cis aB ( C) BASIC ( D) CISAB 5 某人编写了如下程序,用来求 10个整数 (整数从键盘输入 )中的最大值: Private Sub Command1_Click() Dim a(10)As Integer, max As Integer For k=1 To 10 a(k)=InputBox(“输入一个整数 “) Next k max=0 For k=1 To 10 Ifa(k)max Then max=a(k) End If Next k Print max End Sub 运

6、行程序时发现,当输入 10个正数时,可以得到正确结果,但输入 10个负数时结果是错误的,程序需要修改。下面的修改中可以得到正确运行结果的是 ( A)把 Ifa(k)max Then改为 Ifa(k)10 Then Exit For Next Text1 Text=Str(n) End Sub 程序运行后,单击命令按钮,在文本框中显示的值是 ( A) 2 ( B) 3 ( C) 4 ( D) 5 7 在窗体上画一个名为 Command1的命令按钮,然后编写如下代码: Option Base1 Private Sub Command1 Click(1) Dim a a=Array(1, 2, 3,

7、 4): j=1 For i=4 To 1 Step-1 s=s+a(i)*j: j=j*10 Next i Print s End Sub 运行上面的程序,其输出结果是 ( A) 1234 ( B) 12 ( C) 34 ( D) 4321 8 在窗体上画一个名称为 Text1的文本框和一个名称为 Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click0 Dim iAs Integer, n As Integer For i=0 To 50 i=i+3: n=n+1 Ifi10 Then Exit For Next Text1 Text=St

8、r(n) End Sub 程序运行后,单击命令按钮,在文本框中显示的值是 ( A) 2 ( B) 3 ( C) 4 ( D) 5 9 在窗体上画一个名称为 Command1的命令按钮,然后编写如下程序: Option Base1 Private Sub Command1_Click() d=0: c=10: x=Array(10, 12, 21, 32, 24) For i=l To 5 Ifx(i)c Then d=d+x(i): c=x(i) Else d=d-c End If Next i Print d End Sub 程序运行后,如果单击命令按钮,则在窗体上输出的内容为 ( A) 8

9、9 ( B) 99 ( C) 23 ( D) 77 10 在窗体上画 1个名称为 Command1的命令按钮,并编写如下事件过程: Private Sub Command1_Click() x=1: s=0 For i=1 To 5 x=x i: s=s+x Next Print s End Sub 该事件过程的功能是计算 ( A) s=1+2+3+4+5q ( B) s=1+1 2+1 3+1 4+1 5 ( C) s=1+1 2!+1 3!+1 4!+1 5! ( D) s=1+1 (1*2)+1 (2*3)+1 (3*4)+1 (4*5) 11 有如下程序: Private Sub Fo

10、rm_Click() Dim i As Integer, n As Integer For i=1 To 20 i: i+4: n=n+i Ifi10 Then Exit For Next Print n End Sub 程序运行后,单击窗体,则输出结果是 ( A) 14 ( B) 15 ( C) 29 ( D) 30 12 有以下通用过程: Function fun(N As Integer) s=0 For k=1 To N s=s+k*(k+1) Next k fun=s End Function 该过程的功能是 ( A)计算 N! ( B)计算 1+2+3+N ( C)计算 12233

11、NN ( D)计算 12+23+34+N(N+1) 13 编写如下程序: Option Base1 Private Sub Command1_Click() Dim a a=Array(1, 2, 3, 4): s=0: j=1 For i=4 To 1 Step-1 s=s+a(i)*j: j=j*10 Next i Print s End Sub 程序运行后,单击命令按钮 Command1,输出结果为 ( A) 110 ( B) 123 ( C) 1234 ( D) 4321 14 在窗体上画一个名称为 Command1的命令按钮,编写如下事件过程: Private Sub Command

12、1_Click() n=0 For i=0 To 10 X=2*i=1 IfX Mod 3=0 Then n=n+1 Next i Print n End Sub 运行程序,单击命令按钮,则窗体上显示的是 ( A) 1 ( B) 3 ( C) 5 ( D) 7 15 窗体上有一个名称为 Text1的文本框,一个名称为 Command1的命令按钮。要求编写一个程序,统计文本框中 0-9各数字字符的个数。某人编写如下程序: Private Sub Command1_Click() Dim count(10)As Integer第 1个 For循环 For i=0 To 9 count(i)=0 N

13、ext S=Trim(Text1 Text) strLen=Len(s)第 2个 For循环 For i=1 To strLen c=Mid(s, i, 1) If C=“0“And c 循环体 Loop ( B) While 循环体 Wend ( C) Do 循环体 Loop Until ( D) Do Until 循环体 Loop 18 设 a、 b都是自然数,为求 a除以 b的余数,某人编写了以下函数: Function fun(a As Integer, b As Integer) While ab a=a b Wend fun=a End Function 在调试时发现函数是错误的。

14、为使函数能产生正确的返回值 ,应做的修改是 ( A)把 a=a b改为 a=b a ( B)把 a=a b改为 a=a b ( C)把 While ab改为 While ab改为 While a=b 19 设有如下事件过程: Private Sub Form Click() x=0 While x10 Then Exit Do Else x=x+3 End If Loop Until x0 s=s n Mod 10: s=S n 10 Mod 10 n=n 100 Loop Print s End Sub 程序运行后,单击命令按钮 Command1,并输入数值 123456,则输出结果为 (

15、A) 654321 ( B) 563412 ( C) 642531 ( D) 615243 26 下面程序计算并输出的是 Private Sub Command1_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 x End Sub 运行程序,单击命令按钮,并输入 2个整数 169和 39,则在窗体上显示的内容为 ( A) 11 ( B) 13 ( C) 23 ( D) 39 国家二级 VB机试(控制结构)模拟试卷 11答案与解析 一、选择题 1 【正确答案】

16、A 【试题解析】 在每次循环中 sign的值在 1和 -1之间来回变化,第一次循环时sign的值为 1;在循环中 c的值为 a+sign*b,然后将 b赋值给 a, c赋值给 b;因此第一次循环结束后 c的值为 3, a的值为 2, b的值为 3;第二次循环结束后 c的值为 -1, a的值为 3, b的值为 -1;第三次循环结束后 c的值为 2, a的值为 -1, b的值为 2;第四次循环结束后 c的值为 -3, a的值为 2, b的值为 -3;第五次循环结束后 c的值为 -1, a的值为 -3, b的值为 -1。 【知识模块】 控制结构 2 【正确答案】 A 【试题解析】 本题中有三个 Fo

17、r循环,但是这三个循环之间没有嵌套关系,而是顺序的关系。在第一个循环中依次取出字符串 s中的每一个字符存入数组 a:第二个循环中 将数组的第一个元素和最后一个元素互换,第二个元素和倒数第二个元素互换 以此类推完成数组的逆序;第三个循环输出数组元素。 【知识模块】 控制结构 3 【正确答案】 A 【试题解析】 本题的循环中倒序从字符串 s中依次取出每一个字符,只要该字符不是空格就将其连接到 temp的前面,见到空格就把连接好的 temp加入到列表框中,即先加入 year,然后是 new,最后是 Happy。 【知识模块】 控制结构 4 【正确答案】 B 【试题解析】 本题考查的考点是有关循环和取

18、子串函数的。本题比较 简单,循环次数就是字符串的长度,每次都在第 k位取一个字母,最后倒序连接起来。注意每次都把 ch连接到 s的前面。 【知识模块】 控制结构 5 【正确答案】 D 【试题解析】 本题考查的考点是有关循环和数组的。本题为了实现求取最大值,首先应该假设数组中的某一个数就是最大值,再依次与数组元素比较,一旦某个元素比当前的最大值大,就把它作为新的最大值。 max初值设为 0是不可以的,它没有考虑到数组元素都小于 0的情况。 【知识模块】 控制结构 6 【正确答案】 B 【试题解析】 本题考 查的考点是有关循环的。实际上本题就要关注循环何时结束,第一次循环中, i的值变成 3, n

19、的值变为 1,然后 i+1变成 4;由于满足循环条件,所以第二次循环中, i的值变成 7, n的值变为 2,然后 i+1变成 8;由于还是满足循环条件,所以第三次循环中, i的值变成 11, n的值变为 3,然后判断由于 i已经大于 10,所以退出循环,最后 n的值为 3。 【知识模块】 控制结构 7 【正确答案】 A 【试题解析】 本题考查的考点是有关循环的。本题也很简单,首先取得数组的最后一个元素加到累加变量中,然后取倒数第二个元素,乘 10后加到累加变量中,然后取倒数第三个元素,乘 100后加到累加变量中,以此类推,最后结果为1234。 【知识模块】 控制结构 8 【正确答案】 B 【试

20、题解析】 语句 Exit For的作用是退出当前 For循环。 本题中 For循环语句的循环变量 i不仅在执行到 Next语句时后自动加 1,而且在每次执行循环体中的 i=i+3语句时,还会加 3。当第 1次进入循环体时 i=0、n=0;当第 2次进入循环体时 i=4、 n=1:当第 3次进入循环体时 i=8、 n=2,此时当执行 i=i+3和 n=n+1语句后, i=11、 n=3, If语句的条件表达式 i10为真,将退出循环,故文本框中显示的值为 3。 【知识模块】 控制结构 9 【正确答案】 C 【试题解析】 本题的循环中依次用数组的每个元素和 c进行比较,如果比 c大就将数组元素累加

21、,并令数组元素成为新的 c值;否则令累加和 d减去 c。在 5次循环中 d的累加过程为 -10+12+21+32-32=23。 【知识模块】 控制结构 10 【正确答案】 C 【试题解析】 在本题的循环中每次累加的变量是 x,而 x在每次的循环中都会除以 i,即第一次除以 1,第二次再 除以 2,第三次再除以 3 以此类推 C选项是正确答案。 【知识模块】 控制结构 11 【正确答案】 D 【试题解析】 本题的 For循环中改变了循环变量 i的值,而且在循环中还有 Exit语句退出循环,故此需要逐次循环进行分析。第一次循环中 i的初值为 1,然后变为 5,将其累加到 n中然后因其不满足 If条

22、件,所以 i的值加上步长 1(特别重要很容易忘记 )继续循环;第二次循环开始 i的值为 6,加上 4以后变为 10,将其累加到 n中然后因其不满足 If条件,所以 i的值加上步长 l继续循环;第三次循环开始i的值为 11,加上 4以后变为 15,将其累加到 n中然后因其满足 If条件退出循环,所以累加三次的值为 5+10+15=30。 【知识模块】 控制结构 12 【正确答案】 D 【试题解析】 在函数中每次向累加和变量 s中累加 k*(k+1)的值,循环变量 k从1循环到 N,即为求 12+23+34+N(N+1) 的值。 【知识模块】 控制结构 13 【正确答案】 C 【试题解析】 本题的

23、循环首先取出数组的最后一位累加,然后取出倒数第二位乘以 10以后累加;然后取出倒数第三位乘以 100后累加 以此类推,最 终结果为1234。 【知识模块】 控制结构 14 【正确答案】 B 【试题解析】 本题的 For循环共执行 11次,在每次循环中计算出一个 X的值,然后判断能否被 3整除,如能整除则令计数器 n自加 1。 【知识模块】 控制结构 15 【正确答案】 D 【试题解析】 本题中要求分别统计数字 0 9的个数,使用了一个数组 count来存放各个数字的个数。在第一个 For循环中,将数组的各个元素设置为 0,在第二个循环中,依次取出字符串中的每一个字符,判断是不是在 0 9之间,

24、如果在范围内,则应该令对 应的数组元素加 1。如果写成 count(i)=count(i)+1,只能顺序的令每一个数组元素都加 1,只有改写成 count(x)=count(x)+1,让 x作为下标,才能保证让 x对应的数组元素加 l。 【知识模块】 控制结构 16 【正确答案】 C 【试题解析】 组合框的 Text属性将会返回或者设置编辑区中的文本,本题中显示的是 1 10的累加和 55。 【知识模块】 控制结构 17 【正确答案】 C 【试题解析】 本题考查循环, Do Loop Until循环至少会执行一次,该循环是 先执行然后判断循环条件。 【知识模块】 控制结构 18 【正确答案】

25、D 【试题解析】 本题函数过程的原代码仅适合 a不能被 b整除的两数,而当 a能被b整除时则不适用,如 a=4, b=2, a除以 b的余数为 0,而原代码返回的函数值为2。因此需将语句 While ab改为 While a=b。 【知识模块】 控制结构 19 【正确答案】 D 【试题解析】 本题是简单 While循环,在循环中改变循环变量 x的值,要注意退出循环时 x必然是不会满足循环条件的。本题中循环中 x依次变化为 1、 4、 25。 【知识模块】 控制结构 20 【正确答案】 D 【试题解析】 本题考查循环。如果输入的 n是偶数,那么在循环体中执行n=n+1,偶数 +1是奇数,循环结束

26、条件 Loop Until n=1000不会满足,形成死循环;如果输入的 n是奇数,那么循环体内执行 n=n+2,奇数 +2依然是奇数,循环结束条件永远不会满足,也形成死循环。 【知识模块】 控制结构 21 【正确答案】 D 【试题解析】 本题考查的考点是有关 Do型循环的。对于这种循环结构,首先看条件判断在循环体的前面还是后面,如 果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件如何至少执行一次循环体。在 Until循环中条件为 False时执行循环体,条件为 True时退出循环:在 While循环中条件为True时执行循环体,条件为 False时退出循环,这一点要注

27、意区分清楚。 【知识模块】 控制结构 22 【正确答案】 D 【试题解析】 Visual Basic支持的循环结构包括: ForNext 循环、 For EachNext 循环、 DoLoop 循环和 While循环。 【知识模块】 控制结构 23 【正确答案】 B 【试题解析】 本题考查的考点是有关 Do型循环的。对于这种循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件是什么,至少执行一次循环体。在 Until循环中条件为 False时执行循环体,条件为 True时退出循环;在 While循环中条件为 True时执行循

28、环体,条件为 False时退出循环,这一点要注意区分清楚。本题只需要实际计算一下两次循环中 x和 n值的变化即可容易的得出结果。 【知识模块】 控制结构 24 【正确答案】 B 【试题解析】 Do型循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件是什么,至少执行一次循环体。在 Until循环中条件为 False时执行循环体,条件为 True时退出循环;在 WhiIe循环中条件为 1 me时执行循环体,条件为 FaIse时退出循环。本题中使用的是后判断型循环,第一次循环时 y的值为 1,不满足y10,执行 Else分支,

29、x变成 4,此时由于满足 x=10所以结束循环。 【知识模块】 控制结构 25 【正确答案】 A 【试题解析】 本题在循环中先将 n除以 10的余数 (即个位数字 )连接到 s上,然后将整除 10后除以 10的余数 (即十位上数字 )连接到 s上,然后 n整除 100的值赋值给 n(即去掉最后两位 ),然后继续进行循环,所以最终将会输出数字的逆序。 【知识模块】 控制结构 26 【正确答案】 A 【试题解析】 对于 Do型循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件是什么,至少执行一次循环体。在 Until循 环中条件为 False时执行循环体,条件为 True时退出循环;在 While循环中条件为 True时执行循环体,条件为False时退出循环。本题是一个比较简单的 Do循环,计算从 1到 10的立方和。为止,实际上就是辗转相减法求最大公约数的过程。 【知识模块】 控制结构 27 【正确答案】 B 【试题解析】 本题的循环中将两个输入的数 x和 y互相相减,直到 x=y为止,实际上就是辗转相减法求最大公约数的过程。 【知识模块】 控制结构

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

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

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