1、国家二级 VB机试(控制结构)模拟试卷 1及答案与解析 一、选择题 1 现有语句: y=IIf(x0, x Mod 3, 0)设 x=10,则 y的值是 ( A) 0 ( B) 1 ( C) 3 ( D)语句有错 2 现有如下语句: x=IIf(a50, Int(a 3), a Mod 2)当 a=52时, x的值是 ( A) 0 ( B) 1 ( C) 17 ( D) 18 3 编写如下程序: Private Sub Command 1 Click() Dim a As Integer,b As Integer a=3: b=2 If a*b0 End Sub 程序运行后,单击命令按钮 Co
2、mmand 1,输出结果为 ( A) True ( B) FALSE ( C) 1 ( D) -1 4 设有下面的语句: Print IIf(x0, 1, Ilffx0 Then x=1 Elselfx0 Then Print 1 Elselfx0 Print 1 Case Is0 Then Ifx0 Then Print 1 Elselfx20 ( B) Case 1 To 10 ( C) Case 0100 x=x+num Case Is10 Then Exit Do Else x=x+3 End If Loop Until xy Then x=x-y Else y=y-x End if
3、Loop Print x End Sub 运行程序,单击命令按钮,并输入 2个整数 169和 39,则在窗体上显示的内容为 ( A) 11 ( B) 13 ( C) 23 ( D) 39 18 下列循环中,可以正常结束的是 ( A) i=10 Do i=i+1 Loop Until i1 ( D) i=10 Do i=i-2 Loop Until i=1 19 假定有如下程序: Private Sub Form Click() Dim N As Intege,J As Integer N=0 J=1 Do Until N2 N=N+1: J=J+N*fN+1) Loop Print N: J
4、End Sub 运行程序,单击窗体,输出结果是 ( A) 3 21 ( B) 3 7 ( C) 0 1 ( D) 3 13 20 编写如下程序: Dim num As Integer,r As Integer,n As Integer,i As Integer,arr(5)As Integer Private Sub Command 1 Click() num=12: r=2 Call sub1(hum, r, n) For i=n To 1 Step 1 Print arr(i); Next i End Sub Sub sub 1(d As Integer,r As Integer,k As
5、 Integer) k=0 Do While d3 n=n+2 Loop Until n10 Print sum End Sub 运行上述程序,外层 Do循环执行的次数为 ( A) 4 ( B) 5 ( C) 7 ( D) 10 27 窗体上有一个名称为 Command1的命令按钮,其单击事件过程如下: Private Sub Command1_Click() For i=3 To 1 Step-1 Sum=0 For i=1 To i Sum=Sum+i*j Next Next Print Sum End Sub 运行程序时,单击命令按钮,则窗体上显示的是 ( A) 1 ( B) 6 ( C
6、) 18 ( D) 25 28 有下面程序代码: Private Sub Command1 Click()i=1 Do While i10 Print i=i+2 Loop End Sub 程序运行时输出字符 “*“的个数是 ( A) 50 ( B) 20 ( C) 16 ( D) 15 国家二级 VB机试(控制结构)模拟试卷 1答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 本题考查的考点是有关 IIf函数的。 IIf函数可用于执行简单的条件判断操作,它是 “IfThenElse” 结构的简写版本。 格式: Result=IIf(, ) 其中 “Result”是函数的返回值, “
7、条件 ”是一个逻辑表达式。当 “条件 ”为真时, IIf函数返回 “True部分 ”的值,而当 “条件 ”为假时返回“False部分 ”的值。 “True部分 ”或 “False部分 ”可以是表达式、变量或其他函数。本题中由于 x=10是大于 0的,所以返回值为 x Mod 3的值即 1。 【知识模块】 控制结构 2 【正确答案】 C 【试题解析】 IIf函数可用来执行简单的条件判断操作,它是 “IfThenElse” 结构的简写版本。格式为: result=IIf(, , )。当 为真时, IIf函数返回 ,而当 为假时,返回 。本题中 a的值是 52,所以条件为真,将返回 52 3的值即
8、17。 【知识模块】 控制结构 3 【正确答案】 B 【试题解析】 本题的程序中由于 a*b0的值即 False。 【知识模块】 控制结构 4 【正确答案】 D 【试题解析】 IIf函数可用来执行简单的条件判断操作,它是 “IfthenElse” 结构的简写版本。格式为: Result=IIf(, ,)。当 为真时, IIf函数返回 ,而当 为假时,返回 。本题中 IIf函数的功能是判断 x是不是正数,如果是返回 1,否则继续判断 a是不是负数,如果是返回 -1,否则返回 0,即返回 x的符号。分析 4个选项只 有 D选项不应该使用 Elself语句而应该使用 Else语句。 【知识模块】 控
9、制结构 5 【正确答案】 C 【试题解析】 Case语句中含有多个参量,这些参量的含义分别为: 测试表达式:可以是任何表达式,通常采用变量或常量; 语句块 1,语句块 2, :每个语句块由一行或多行合法的 Visual Basic语句组成; 表达式列表 1,表达式列表 2, :称为域值。可采用下列 3种形式之一: 表达式 1,表达式 2 。 表达式 1 To表达式 2。 Is关系运算表达式,其中可使用的运算符有 =(等于 )、 )、小于 ()、小于或等于(=)。 【知识模块】 控制结构 7 【正确答案】 B 【试题解析】 本题考查的考点是有关循环次数的。本题题干中程序的错误在于,p的值是从 1
10、一直乘到 n-1的值,也就是 n-1的阶乘。选项 A)可以在这个基础上再乘 n就得到 n的阶乘;选项 C)和 D)都能够保证从 1乘到 n,只有选项 B)是错误的。 【知识模块】 控制结构 8 【正确答案】 C 【试题解析】 本题的关键之处在于抓住每次具体给哪个数组元素进行了赋值,第一次循环中输入的 2被赋给了 A1(1)和 A2(3),第二次循环中输入的 4被赋给了A1(2)和 A2(2),第三次循环中输入的 6被赋给了 A1(3)和 A2(1),跳出循环时 k的值为 3,所以最后输出 2。 【知识模块】 控制结构 9 【正确答案】 A 【试题解析】 在每次循环中 sign的值在 1和 1之
11、间来回变化,第一次循环时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。 【知识模块】 控制结构 10 【正确答案】 B 【试题解析】 本题考查的考点是有关循环和取了串函数的。本题比较简单,循环次数就是字符串的长
12、度,每次都在第 k位取一个 字母,最后倒序连接起来。注意每次都把 ch连接到 s的前面。 【知识模块】 控制结构 11 【正确答案】 A 【试题解析】 本题考查的考点是有关循环的。本题也很简单,首先取得数组的最后一个元素加到累加变量中,然后取倒数第二个元素,乘 10后加到累加变量中,然后取倒数第三个元素,乘 100后加到累加变量中,以此类推,最后结果为1234。 【知识模块】 控制结构 12 【正确答案】 C 【试题解析】 在本题的循环中每次累加的变量是 x,而 x在每次的循环中都会除以 i,即第一次除以 1,第二次再 除以 2,第三次再除以 3 以此类推 C选项是正确答案。 【知识模块】 控
13、制结构 13 【正确答案】 C 【试题解析】 本题的循环首先取出数组的最后一位累加,然后取出倒数第二位乘以 10以后累加;然后取出倒数第三位乘以 100后累加 以此类推,最终结果为1234。 【知识模块】 控制结构 14 【正确答案】 C 【试题解析】 组合框的 Text属性将会返回或者设置编辑区中的文本,本题中显示的是 1 10的累加和 55。 【知识模块】 控制结构 15 【正确答案】 D 【试 题解析】 本题考查的考点是有关 Do型循环的。对于这种循环结构,首先看条件判断在循环体的前面还是后叫,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件如何至少执行一次循环
14、体。在 until循环中条件为 False时执行循环体,条件为 True时退出循环;在 while循环中条件为True时执行循环体,条件为 False时退出循环,这一点要注意区分清楚。 【知识模块】 控制结构 16 【正确答案】 B 【试题解析】 Do型循环结构,首先看条件判断在循环体的前面还是后面,如果是先判 断条件,则有可能一次也不执行循环体:如果是后判断条件,则无论条件是什么,至少执行一次循环体。在 Until循环中条件为 False时执行循环体,条件为 True时退出循环;在 while循环中条件为 True时执行循环体,条件为 False时退出循环。本题中使用的是后判断型循环,第一次
15、循环时 y的值为 1,不满是y10,执行 Else分支, x变成 4,此时由于满是 x1而无限循环; D选项由于 i的值从 10开始递减,但是因为每次递减 2,所以 i永远为偶数,不会满是 i=1而无限循环。 【知识模块】 控制结构 19 【正确答案】 A 【试题解析】 Do循环语句的功能是:当指定的 “循环条件 ”为真或直到指定的 “循环条件 ”变为真之前重复执行循环体。 Do While|UntilLoop 循环是在条件满足的情况下才执行一次循环体,而 DoLoop While|Until 循环不管是否满足条件都先执行一次循环体,然后再判断条件是否成立以决定后续操作。本题的循环共执行 3次
16、,跳出循环时 N的值为 3, J的值为 21。 【知识模块】 控制结构 20 【正确答案】 A 【试题解析】 本题实际上是存子过程 sub1中对 arr数组进行的赋值工作,形参 d的值为 12, r的值为 2, k的初值为 0;在循环中计算 d除以 2的余数放到数组的第一个元素,整除 2后再除以 2的余数放到第二个元素 以此类推,最后数组arr中存放的是 (0、 0、 1、 1),住 Command1 Click()过程中调用先完子过程对数组进行赋值以后,逆序输出了数组的值。 【知识模块】 控制结构 21 【正确答案 】 B 【试题解析】 本题通过一个嵌套的 For循环为二维数组 a的各元素赋
17、值,该二维数组对应矩阵的主对角线上的元素 (即满足条件 m=n)和副对角线上的元素 (即满足条件 m+n=4)其值为 m+n,即主对角线上的元素从左上至右下依次为 2、 4、 6,副对角线 E的元素均为 4,而其它元素均为 0。 【知识模块】 控制结构 22 【正确答案】 B 【试题解析】 本题考查的考点是有关循环求和和二维数组的。本题要对二维数组的每行进行累加求和,每计算新的一行就应该将累加和变量 sum清零,否则上一行的累加计算结果将 会在下一行继续累加,造成结果不正确。 【知识模块】 控制结构 23 【正确答案】 B 【试题解析】 在二重循环中为二维数组赋初值,每个元素的值均为行号 *2
18、加上列号;在 If语句中进行判断,如果数组元素能被 7整除则令计数器 n加 1,所以整个程序的功能就是统计二维数组中能被 7整除的数的个数。 【知识模块】 控制结构 24 【正确答案】 D 【试题解析】 本题是一个二重循环,而且内循环次数根据外循环的循环变量而定。内循环完成累加,内循环结束后将累加和乘到 p中保存起来。在 4次外循环中分别 累乘的是 1、 4、 10、 20。 【知识模块】 控制结构 25 【正确答案】 C 【试题解析】 本题中首先用一个二重循环为二维数组的每一个元素赋值,然后累加二维数组的部分元素,即依次累加 a(1, 3)、 a(2, 2)、 a(3, 1)的值,相当于对角
19、线求和。 【知识模块】 控制结构 26 【正确答案】 B 【试题解析】 外循环的控制条件为 n10,即 n10的时候结束循环;在每次内循环中 j都会自加, j3的时候退出内循环,即每次外循环中内循环都会执行 3次;由于内循环没有改变 n的值,而在外 循环中 n的值自加 2,所以外循环共循环 5次。 【知识模块】 控制结构 27 【正确答案】 A 【试题解析】 本题是一个简单的二重循环,只要注意到 i的值逐渐递减,而且在内循环执行之前都会重新将 Sum的值设置为 0,不难得出只会输出最后一次外循环的 Sum值,由于此时 i=1,所以内循环只会执行一次,最终输出 1作为结果。 【知识模块】 控制结构 28 【正确答案】 C 【试题解析】 本题是一个二重循环,最终求星号的个数,实际上就是计算内循环总共执行了多少次。 i=1的时候内循环执行 9次, i=3的时候内循环执行 7次, i=5的时候跳出循环,内循环共执行了 16次。 【知识模块】 控制结构
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1