1、国家二级 VB机试(控制结构)模拟试卷 3及答案与解析 一、选择题 1 计算下面分段函数的正确语句是 ( A) y=IIf(x0, x+1, IIf(x0, x-1, x+1) ( C) y=IIf(x0, x+1, Ilffxc And a+cb And b+ca Then Print“可以构成一个三角形 “ Else Print“不能构成三角形 “ End If ( B) If a+bc Or a+cb Or b+ca Then Print“可以构成一个三角形 “ Else Print“不能构成三角形 “ End If ( C) If a+b“Then For i=Len(x)To 1 S
2、tep-1 S=Mid(x, i, 1) If S10 Then Exit For Next Text1 Text: Str(n) End Sub 程序运行后,单击命令按钮,在文本框中显示的值是 ( A) 2 ( B) 3 ( C) 4 ( D) 5 11 在窗体上画一个名称为 Command1的命令按钮,然后编写 如下程序: Option Base 1 Private Sub Command 1 Click() d=0: C=10: x=Array(10, 12, 21, 32, 24) For i=1 To 5 Ifx(i)C Then d=d+x(i): C=x(i) Else d=d-
3、C End If Next i Print d End Sub 程序运行后,如果单击命令按钮,则在窗体上输出的内容为 ( A) 89 ( B) 99 ( C) 23 ( D) 77 12 有以下通用过程: Function funfN 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)计算 12233NN ( D)计算 12+23+34+N(N+1) 13 窗体上有一个名称为 Text1的文本框,一个名称为 Command 1的命令按钮。
4、要求编写一个程序,统计文本框中 0-9各数字字符的个数。某人编写如下程序: Private Sub Command 1_Click() Dim count(10)As Integer第 1个 For循环 For i=0 To 9 count(i)=0 Next S=Trim(Text1 Text) strLen=Len(s)第 2个 For循环 For i=1 To strLen C=Mid(s, i, 1) If C=“0“And cx Then x=m: b=a(i) End If Next i Printb End Sub 运行程序,输出是 ( A) 2 ( B) 3 ( C) 5 (
5、D) 9 27 阅读程序: Option Base 1 Private Sub Form_Click() Dim Arr(3, 3)As Integer For i=1 To 3 For j=1 To 3 ifj=i Or j=3-i+1 Then Arr(i, j)=1 Else Arr(i, j)=0 End If Next i Next i For i=1 To 3 Forj=1 To 3 PrintArr(i, j); Next i Print Next i End Sub 程序运行后,如果单击窗体,则输出结果为 ( A) 1 1 1 1 1 1 1 1 1 ( B) 0 0 0 0
6、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 国家二级 VB机试(控制结构)模拟试卷 3答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 IIf函数可用来执行简单的条件判断操作,它是 “IfThenElse” 结构的简写版本。格式为: result=IIf(, , )。当 为真时, IIf函数返回 ,而当 为假时,返回 。本题中分段函数共有三段,因此需要使用嵌套的 IIf函数。 【知识模块】 控制结构 2 【正确答案】 A 【试题解析】 本题中的第一个 IfThen 结构的作用是将所有输入的大写字符转换为小写字符;第二
7、个 If结构的条件是按下回车键,里面嵌套了一个 For循环,在循环中依次取出文本框中的每一个字符进行判断,若其为小写字符则 n自加 1,循环结束后 n的值就是文本框中字母的个数。 【知识模块 】 控制结构 3 【正确答案】 B 【试题解析】 本题总共循环三次,在每次循环中由于循环变量 k的值不同,将分别进入 If语句的不同分支。在块结构的 If语句中,一旦满足某个 If或者 Elself后面的条件,将不再判断其他条件是否满足。所以本题输出的是 1+2+3的值。 【知识模块】 控制结构 4 【正确答案】 B 【试题解析】 任意两边之和大于第三边,必须要求任意两个变量的和全部大于另一个变量,也就是
8、三个表达式必须同时成立,只有一个或两个成立是不行的,故此 B选项不能正确判断。 【知识 模块】 控制结构 5 【正确答案】 B 【试题解析】 多分支控制结构又称为 Select Case语句或 Case语句,可以同时对条件的多个取值来判断。其格式为: Select Case Case 语句块 1 Case Else 语句块 n End Select Case语句以 Select Case开头,以 End Select结束。 其中,表达式列表 1,表达式列表 2, 称为域值。 可采用 3种形式: 表达式 1,表达式 21 ; 表达式 1 To表达式 2; Is关系运算表达式。 其中,可使用的运算
9、符有等于 (=)、不等于 ()、小于 ()、小于或等于(=)。 【知识模块】 控制结构 6 【正确答案】 C 【试题解析】 多分支控制结构又称为 Select Case语句或 Case语句,可以同时对条件的多个取值来判断。本题是一个嵌套的 Select Case语句,首先判断 m的值,本题由于 m的值为 2,所以不会执行 Case 1分支,直接执行 Case 2分支输出“CCC” 【知识模块】 控制结构 7 【正确答案】 B 【试题解析】 本题考查的考点是有关循环的。在本题的循环中,首先取得数组的最后一个元素并乘 1后放入 s;然后取得第 3个元素并乘 10后加到 s里面,然后取得第 2个元素
10、并乘 100后加到 s里面,最后取得第 1个元素并乘 1000后加到 s里面,所以 s的最终值为 1234。 【知识模块】 控制结构 8 【正确答案】 C 【试题解析】 在 For循环中 k的值从 1变化到 5,在每次循环中为累加和变量 s累加上 a Mod k的值然后令 a自加 k,故此整个循环过程中 s=0+0+0+1+3=4。 【知识模块】 控制 结构 9 【正确答案】 A 【试题解析】 本题的循环中倒序从字符串 s中依次取出每一个字符,只要该字符不是空格就将其连接到 temp的前面,见到空格就把连接好的 temp加入到列表框中,即先加入 year,然后是 new,最后是 Happy。
11、【知识模块】 控制结构 10 【正确答案】 B 【试题解析】 本题考查的考点是有关循环的。实际上本题就要关注循环何时结束,第一次循环中, i的值变成 3, n的值变为 1,然后 i+1变成 4;由于满足循环条件,所以第二次循环中, i的值变成 7, n的值变为 2,然后 i+1变成 8;由于还是满足循环条件,所以第二三次循环中, i的值变成 11, n的值变为 3,然后判断由于 i已经大于 10,所以退出循环,最后 n的值为 3。 【知识模块】 控制结构 11 【正确答案】 C 【试题解析】 本题的循环中依次用数组的每个元素和 c进行比较,如果比 c大就将数组元素累加,并令数组元素成为新的 c
12、值:否则令累加和 d减去 c。在 5次循环中 d的累加过程为 -10+12+21+32-32=23。 【知识模块】 控制结构 12 【正确答案】 D 【试题解析】 在函数中每次向累加和变量 s中累加 k*(k+1)的值,循环变量 k从1循环到 N,即为求 12+23+34+N(N+1) 的值。 【知识模块】 控制结构 13 【正确答案】 D 【试题解析】 本题中要求分别统计数字 0 9的个数,使用了一个数组 count来存放各个数字的个数。在第一个 For循环中,将数组的各个元素设置为 0,在第二个循环中,依次取出字符串中的每一个字符,判断是不是在 0 9之间,如果在范围内,则应该令对应的数组
13、元素加 l。如果写成 count(i)=coum(i)+1,只能顺序的令每一个数组元素都加 1,只有改 写成 count(x)=count(x)+1,让 x作为下标,才能保证让 x对应的数组元素加 1。 【知识模块】 控制结构 14 【正确答案】 D 【试题解析】 本题是简单 while循环,在循环中改变循环变量 x的值,要注意退出循环时 x必然是不会满足循环条件的。本题中循环中 x依次变化为 1、 4、 25。 【知识模块】 控制结构 15 【正确答案】 B 【试题解析】 本题考查的考点是有父 Do型循环的。对于这种循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一
14、次也不 执行循环体;如果是后判断条件,则无论条件是什么,至少执行一次循环体。在 Until循环中条件为 False时执行循环体,条件为 True时退出循环;在 While循环中条件为 True时执行循环体,条件为 False时退出循环,这一点要注意区分清楚。本题只需要实际计算一下两次循环中 x和 n值的变化即可容易的得出结果。 【知识模块】 控制结构 16 【正确答案】 A 【试题解析】 对于 Do型循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体:如果是后判断条件,则无论条件是什么,至少执行一次循环体。在 Until循环中条件为 False时执行循
15、环体,条件为 True时退出循环;存 While循环中条件为 True时执行循环体,条件为False时退出循环。本题是一个比较简单的 Do循环,计算从 1到 10的立方和。 【知识模块】 控制结构 17 【正确答案】 A 【试题解析】 本题的 Do循环是一个先判断条件型的循环,在循环中将循环变量m的值每次改变。分析循环可看出,在 4次循环中 m的值分别为 1、 4、 13、 40,而只有前三次循环中的 m值被累加到 n中,最后一次循环由于不满足 m20而跳出。 【知识模块】 控制结构 18 【正确答案】 D 【试题解析】 本题中 Do循环的循环变量 i的初值为 1,继续循环的条件是 i6,在每
16、次循环中 i的值加 1,因此循环会执行 5次;在第一次循环中累加 1 2,第二次循环中累加 2 3,第三次循环中累加 3 4 即最后计算的是 1 2+2 3+34+4 5+5 6的值。 【知识模块】 控制结构 19 【正确答案】 A 【试题解析】 求素数的基小思路是,用 2到 n 2依次去除要判断的数 n,如果能整除就将 isprime置为 False代表 不是素数;如果 isprime已经为 False,那么循环没有继续执行的必要了,所以应填入 isprime=True,由于是布尔型变量,可以简写为 isprime。 【知识模块】 控制结构 20 【正确答案】 A 【试题解析】 小题考查的考
17、点是有关:二重循环的。 ForNext 循环语句可提供一个重复执行的语句序列,遵循 “先检查,后执行 ”的规则,执行过程中,循环次数 =Int(终值 -初值 )步长 +1。二重循环的内循环语句执行次数等于内外循环次数之积。 【知识模块】 控制结构 21 【正确答案】 B 【试题解析】 本题中有两个二维数组 a和 b,然后用一个二重循环为两个数组赋值,根据每次循环中 i和 j的值不难得出 B为正确答案。 【知识模块】 控制结构 22 【正确答案】 D 【试题解析】 本题考查的考点是有关随机数和退出语句的。在本题中,首先在循环中生成一个随机数,由于 Rnd函数可以生成 0 1开区间的数,所以Int
18、(Rnd*100)能够生成 0 99之间的整数,随后对此数进行判断,当随机数为 12时退出内循环;当随机数为 58时退出外循环;当随机数为 65、 68或 92时将会结束整个窗体的运 行。本题中的循环次数受随机数控制,所以次数不定。 【知识模块】 控制结构 23 【正确答案】 B 【试题解析】 在窗体模块中使用 Dim声明模块接变量,也可以声明模块级数组;在循环 1中 i从 1到 3, j从 1到 4,无论是访问 b(j, i)还是 a(i, j)均在数组的范围内,可以正常运行;在循环 2中 b(i, j)的值也在数组范围内,循环可以正常运行;最后 x里面保存的是数组中最大的数。 【知识模块】
19、 控制结构 24 【正确答案】 D 【试题解析】 本题中首先用一个二重循环为二维数组的每一个元 素赋值,然后输出二维数组的部分元素,即依次输出 a(3, 3)、 a(4, 3)、 a(3, 4)、 a(4, 4)的值,根据二维数组元素的值,输出分别为 9、 12、 10、 13。 【知识模块】 控制结构 25 【正确答案】 C 【试题解析】 本题中首先在一个二重循环中给二维数组 arr的部分元素赋值,循环结束后输出两个数组元素的和,根据题意 arr(1, 3)+arr(3, 4)=4+7=11。 【知识模块】 控制结构 26 【正确答案】 B 【试题解析】 本题是一个二重循环,外循环从 0循环到 n,也就 是遍历整个数组;在内循环中统计数组中和 a(i)相同的数组元素的个数放到 m中,内循环结束后判断 m是不是比 x大,如果比 x大的话让 m成为新的 x,并且把当前数组元素放到 b中,其本质是求出重复次数最多的数字, x保存重复次数, b保存该数字。 【知识模块】 控制结构 27 【正确答案】 D 【试题解析】 本题是用一个二重循环为二维数组赋值,只有满足下标 j=i或者j=3-i+1才将其设置为 1,否则设置为 0,如果写出这个二维数组可以看出,两个对角线的元素被设置成 1。 【知识模块】 控制结构