1、国家二级 VB机试(控制结构)模拟试卷 16及答案与解析 一、选择题 1 现有语句: y=IIf(x0, x Mod 3, 0)设 x=10,则 y的值是 ( A) 0 ( B) 1 ( C) 3 ( D)语句有错 2 设 x是整型变量,与函数 Ilffx0, -X, x)有相同结果的代数式是 ( A) |x| ( B)一 |x| ( C) x ( D) -x 3 计算下面分段函数的正确语句是 ( A) y=IIf(x0, x+1, IIf(x0, x一 1, x+1) ( C) Y=IIf(x0, x+1, IIf(x50, Int(a 3), a Mod 2)当 a=52时, x的值是 (
2、 A) 0 ( B) 1 ( C) 17 ( D) 18 5 在下面语句或函数中,不能描述选择结构的是 ( A) If语句 ( B) IIf函数 ( C) Select Case语句 ( D) While语句 6 设窗体上有 Text1、 Text2两个文本框,并编写了下面的程序代码: Private Sub Text1_KeyPress(KeyAscii As Integer) If”A”0 End Sub 程序运行后,单击命令按钮 Command1,输出结果为 ( A) True ( B) False ( C) 1 ( D) -1 8 编写如下程序: Private Sub Command
3、1_Click() Dim score As Integer score=86 If score85 Then r=1 Else If score60 Then r=2 Else r=0 End If Print r End Sub 程序运行后,单击命令按钮 Command1,输出结果为 ( A) 0 ( B) 1 ( C) 2 ( D) 86 9 设有如下事件过程: Private Sub Form_Click() Sum=0 For k=1 To 3 Ifk0, 1, Ilf(x0 Then x=1 Elself x0 Then Print 1 Elselfx0 Print 1 Case
4、Is0 Then Ifx0 Then Print 1 Elselfxc 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) Ifa+b20 ( B) Case 1 To 10 ( C) Case 05的 Case子句是 ( A) Case Not(-5 To 5) ( B) Case 5 To 一 5 ( C) Case Is5 ( D) C
5、ase Abs(X)5 15 现有如下一段程序: Private Sub Command1_Click() x=UCase(InputBox(”输入: ”) Select Case x Case”A”Tb”C” Print”考核通过 !” Case”D” Print”考核不通过 !” Case Else Print”输入数据不合法 !” End Select End Sub 执行程序,在输入框中输入字母 “B”,则以下叙述中正确的是 ( A)程序运行错 ( B)在窗体上显示 “考核通过 !” ( C)在窗体上显示 “考核不通过 !” ( D)在窗体上显示 “输入数据不合法 !” 16 窗体上有
6、 1个名称为 Command1的命令按钮,事件过程如下: Private Sub Commandl_Click() Dim sum As Integer,X As Integer num=Val(InputBox(”请输入一个正整数 ”) Select Case num Case Is100 x=x+sum Case IsThen For i=Len(x)To 1 Step一 1 s=Mid(x, i, 1) If smax Then max=a(k) End If Next k Print max End SUb 运行程序时发现,当输入 10个正数时,可以得到正确结果,但输入 10个负数时结
7、果是错误的,程序需要修改。下面的修改中可以得到正确运行结果的是 ( A)把 If a(k)max Then改为 Ifa(k)10 Then Exit For Next Text1 Text=Str(n) End Sub 程序运行后,单击命令按钮,在文本框中显示的值是 ( A) 2 ( B) 3 ( C) 4 ( D) 5 33 在窗体上画一个名为 Command1的命令按钮,然后编写如下代码: Option Base 1 Private Sub Commandl_Click() Dim a a=Array(1, 2, 3, 4): j=1 For i=4 To 1 Step-1 s=s+a(i
8、)*j: j=j*10 Next i Print s End Sub 运行上面的程序,其输出结果是 ( A) 1234 ( B) 12 ( C) 34 ( D) 4321 34 在窗体上画一个名称为 Text1的文本框和一个名称为 Commandl的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim iAs Integer,nAs Integer For i=0 To 50 i=i+3: n=n+1 Ifi10 Then Exit For Next TeXt1 Text=Str(n) End Sub 程序运行后,单击命令按钮,在文本框中显示的值是
9、 ( A) 2 ( B) 3 ( C) 4 ( D) 5 35 在窗体上画一个名称为 Command1的命令按钮,然后编写如下程序: Option Base 1 Private Sub Commandl_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-c End If Next i Print d End Sub 程序运行后,如果单击命令按钮,则在窗体上输出的内容为 ( A) 89 ( B) 99 ( C) 23 ( D) 77 36 在窗体上画
10、 1个名称为 Command1的命令按钮,并编写如下事件过程: Private Sub Commandl_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) 37 有如下程序: Private Sub Form_Click() Dim iAs Integer,nAs Int
11、eger 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 38 有以下通用过程: Function fun(N As Integer) S=0 For k=1 T0 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) 39 编写如下程序: O
12、ption Base 1 Prirate 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 40 在窗体上画一个名称为 Command1的命令按钮,编写如下事件过程: Private Sub Commandl_Click() n=0 For i=0 To 10 X=2*i-1 T
13、f X Mod 3=0 Then n=n+1 Next 1 Print n End Sub 运行程序,单击命令按钮,则窗体上显示的是 ( A) 1 ( B) 3 ( C) 5 ( D) 7 国家二级 VB机试(控制结构)模拟试卷 16答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 本题考查的考点是有关 IIf函数的。 IIf函数可用于执行简单的条件判断操作,它是 “IfThenElse” 结构的简写版本。 格式: ReSUlt=IIf(, , ) 其中 “Result”是函数的返回值, “条件 ”是一个逻辑表达式。当 “条件 ”为真时, IIf函数返回 “True部分 ”的值,而当
14、 “条件 ”为假时返回 “False部分 ”的值。 “True部分 ”或 “False部分 ”可以是表达式、变量或其他函数。本题中由于 x=10是大于 0的,所以返回值为 x Mod 3的值即 1。 【知识模块】 控制结构 2 【正确答案】 B 【试题解析】 IIf函数可以用来执行简单的条件判断操作,它是 “IfThenElse”结构的简写版本,其格式为: result=IIf(条件, True部分, False部分 )。其中“result”是函数的返回值, “条件 ”是一个逻辑表达式。当 “条件 ”为真时, IIf函数返回 “True部分 ”,否则返回 “False部分 ”。 “True部分
15、 ”或 “False部分 ”可以是表达式、变量或其他函数。本题中 IIf函数的作用是如果 x0则返回一 x,否则返回x,等价于一 |x|。 【知识模块】 控制结构 3 【正确答案】 A 【试题解析】 IIf函数可用来执行简单的条件判断操作,它是 “IfThenElse” 结构的简写版本。格式为: result=IIf(, , )。当 为真时, IIf函数返回 ,而当 为假时,返回一 。本题中分段函数共有三段,因此需要使用嵌套的 IIf函数。 【知识模块】 控制结构 4 【正确答案】 C 【试题解析】 IIf函数可用来执行简单的条件判断操作,它是 “IfThenElse” 结构的简写版本。格式为
16、: result=lIf(, , )。当 为真时, IIf函数返回 , 而当 为假时,返回 。本题中 a的值是 52,所以条件为真,将返回 52 3的值即 17。 【知识模块】 控制结构 5 【正确答案】 D 【试题解析】 选择结构可以使用 lIf函数、 If语句来实现两个分支的选择结构,使用 Select Case语句实现多分支选择结构, while语句用来描述循环结构。 【知识模块】 控制结构 6 【正确答案】 A 【试题解析】 本题中的第一个 IfThen 结构的作用是将所有输入的大写字符转换为小写字符;第二个 If结构的条件是按下回车键 ,里面嵌套了一个 For循环,在循环中依次取出文
17、本框中的每一个字符进行判断,若其为小写字符则 n自加 1,循环结束后 n的值就是文本框中字母的个数。 【知识模块】 控制结构 7 【正确答案】 B 【试题解析】 本题的程序巾由于 a*b0的值即 False。 【知识模块】 控制结构 8 【正确答案】 B 【试题解析】 块结构条件语句的格式为: If Then : Elself Then : Else : End If 如果 “条件 1”为 True,则执行 “语句块 1”并跳出结构;否则如果 “条件 2”为True,则执行 “语句块 2”并跳出结构 否则执行 “语句块 n”并结束整个结构。 【知识模块】 控制结构 9 【正确答案】 B 【试题
18、解析】 本题总共循环三次,在每次循环中由于循环变量 k的值不同,将分别进入 If语句的不同分支。在块结构的 If语句中,一旦满足某个 If或者 ElseIf后面的条件,将不再判断其 他条件是否满足。所以本题输出的是 1+2+3的值。 【知识模块】 控制结构 10 【正确答案】 D 【试题解析】 IIf函数可用来执行简单的条件判断操作,它是 “IfthenElse” 结构的简写版本。格式为: Result=IIf(, , )。当 为真时, IIf函数返回 ,而当 为假时,返回 。本题中 IIf函数的功能是判断 x是不是正数,如果是返回 1,否则继续判断 a是不是负数,如果是返回一 1,否则返回
19、0,即返回 x的符 号。分析 4个选项只有 D选项不应该使用 ElseIf语句而应该使用 Else语句。 【知识模块】 控制结构 11 【正确答案】 A 【试题解析】 命令按钮的 Default属性用于设置窗体的缺省命令按钮,程序运行时,按下 键将执行该命令按钮的单击事件过程。 IIf函数可用来执行简单的条件判断操作,它是 “IfthenElse” 结构的简写版本。格式为: Result=IIf(, , )。当 为真时, IIf函数返回 ,而当 为假时 ,返回 。本题在函数 Fun中判断 x是否比 v小,如果小则返回 x作为返回值,否则返回 v作为返回值,即返回两个参数中的最小值。 【知识模块
20、】 控制结构 12 【正确答案】 B 【试题解析】 任意两边之和大于第三边,必须要求任意两个变量的和全部大于另一个变量,也就是三个表达式必须同时成立,只有一个或两个成立是不行的,故此 B选项不能正确判断。 【知识模块】 控制结构 13 【正确答案】 C 【试题解析】 Case语句中含有多个参量,这些参量的含义分别为: 测试表达式:可 以是任何表达式,通常采用变量或常量; 语句块 1,语句块 2, :每个语句块由一行或多行合法的 Visual Basic语句组成; 表达式列表 1,表达式列表 2, :称为域值。可采用 2种形式之一:表达式 1、 ,表达式 2 和表达式 1 To表达式 2。 Is
21、关系运算表达式,其中可使用的运算符有 =(等于 )、 )、小于 ()、小于或等于 (=)。 【知识模块】 控制结构 15 【正确答案】 B 【试题解析】 多分支控制结构又称为 Select Case语句或 Case语句,可以同时对条件的多个取值来判断。 【知识模块】 控制结构 16 【正确答案】 B 【试题解析】 多分支控制结构又称为 Select Case语句或 Case语句,可以同时对条件的多个取值来判断。本题中第一次输入 100执行 Case Else分支,由于 x是 默认初值 0所以输出 0;第二次输入 90也执行 Case Else分支,由于 x是默认初值 0所以输出 0;第三次输入
22、 60执行第二个分支输出 60。 【知识模块】 控制结构 17 【正确答案】 D 【试题解析】 Trim函数的作用是去掉文本框中字符串两端的空格;多分支控制结构又称为 Select Case语句或 Case语句,可以同时对条件的多个取值来判断,Case后面的表达式可采用 3种形式: 表达式 1,表达式 2 ; 表达式 1 To表达式 2; Is关系运算表达式。最终 x1是字符串中数字的个数; x2是字 符串中大写字母的个数; x3是字符串中小写字母的个数; x4是字符串中非字母、非数字字符的个数。 【知识模块】 控制结构 18 【正确答案】 C 【试题解析】 多分支控制结构又称为 Select
23、 Case语句或 Case语句,可以同时对条件的多个取值来判断。本题是一个嵌套的 Select Case语句,首先判断 m的值,本题由于 m的值为 2,所以不会执行 Case 1分支,直接执行 Case 2分支输出“CCC” 【知识模块】 控制结构 19 【正确答案】 A 【试题解析】 本题考查循环控制结 构。在 Command1的 Click事件过程中,变量 t的初值为 0,在 For循环里面, t变量保存累乘积。由于 t初值为 0,因此累乘积永远都是 0,因此 t的初值应该设置为 1。 【知识模块】 控制结构 20 【正确答案】 B 【试题解析】 本题考查循环控制结构。选项 A)循环少执行
24、一次,由于 p初始化为 a相当于执行了第一次,因此循环必须少执行一次才能计算正确的 an;选项 B)中 pa已经是幂运算了,不需要循环来计算;选项 C)循环少执行一次,正确:选项 D)中 D初始化为 1,循环执行 n次正确。 【知识模块】 控制结构 21 【正确答案】 B 【试题解析】 本题考查的考点是有关循环次数的。本题题干中程序的错误在于,p的值是从 1一直乘到 n1的值,也就是 n1的阶乘。选项 A)可以在这个基础 _卜再乘 n就得到 n的阶乘;选项 C)和 D)都能够保证从 1乘到 n,只有选项 B)是错误的。 【知识模块】 控制结构 22 【正确答案】 D 【试题解析】 本题考查的考
25、点是有关循环的。本题中循环的特点是:每执行 3次循环,依次向 a中加上 0+1+2也就是 3;循环共执行了 15次,所以 a中的值应该为 15。 【知识模 块】 控制结构 23 【正确答案】 B 【试题解析】 本题考查的考点是有关循环的。在本题的循环中,首先取得数组的最后一个元素并乘 1后放入 s;然后取得第 3个元素并乘 10后加到 s里面,然后取得第 2个元素并乘 1 00后加到 s里面,最后取得第 1个元素并乘 1000后加到 s里面,所以 s的最终值为 1234。 【知识模块】 控制结构 24 【正确答案】 C 【试题解析】 本题的关键之处在于抓住每次具体给哪个数组元素进行了赋值,第一
26、次循环中输入的 2被赋给了 A1(1)和 A2(3),第二次循环中输入的 4被赋给了A1(2)和 A2(2),第三次循环中输入的 6被赋给了 A1(3)和 A2(1),跳出循环时 k的值为 3,所以最后输出 2。 【知识模块】 控制结构 25 【正确答案】 A 【试题解析】 本题考查的考点是有关循环的。本题需要写出每一一次循环的变量变化情况。第一次循环时输入 15, If判断为真,所以 a=15, x=15;第二次循环时输入 24, If判断为假,所以 a=15+15=30, x仍然为 15;第三次循环时输入 35, If判断为真,所以 a=30+35=65, x=35;第四次循环时输入 46
27、, If判断为假 ,所以a=65+35=100, x=35。 【知识模块】 控制结构 26 【正确答案】 C 【试题解析】 在 For循环中 k的值从 1变化到 5,在每次循环中为累加和变量 s累加上 a Mod k的值然后令 a自加 k,故此整个循环过程中 s=0+0+0+1+3=4。 【知识模块】 控制结构 27 【正确答案】 A 【试题解析】 在每次循环中 sign的值在 1和 -1之间来回变化,第一次循环时sign的值为 1;在循环中 c的值为 a+sign*b,然后将 b赋值给 a, c赋值给 b;因此第一次循环结束后 c的值为 3, a的值为 2, b的值为 3;第二次循环结束后
28、c的值为 -1, a的值为 3,b的值为一 1;第三次循环结束后 c的值为 2,a的值为 1, b的值为 2;第四次循环结束后 c的值为一 3, a的值为 2, b的值为 -3;第五次循环结束后 c的值为一 1, a的值为一 3, b的值为一 1。 【知识模块】 控制结构 28 【正确答案】 A 【试题解析】 本题中有三个 For循环,但是这三个循环之间没有嵌套关系,而是顺序的关系。在第一个循环中依次取出字符串 s中的每一个字符存入数组 a;第二个循环中将数组的第一个元素和最后一个元素互 换,第二个元素和倒数第二个元素互换 以此类推完成数组的逆序;第三个循环输出数组元素。 【知识模块】 控制结
29、构 29 【正确答案】 A 【试题解析】 本题的循环中倒序从字符串 s中依次取出每一个字符,只要该字符不是空格就将其连接到 temp的前面,见到空格就把连接好的 temp加入到列表框中,即先加入 year,然后是 new,最后是 Happy。 【知识模块】 控制结构 30 【正确答案】 B 【试题解析】 本题考查的考点是有关循环和取子串函数的。本题比较简单,循环次数就是字符串的长度 ,每次都在第 k位取一个字母,最后倒序连接起来。注意每次都把 ch连接到 s的前面。 【知识模块】 控制结构 31 【正确答案】 D 【试题解析】 本题考查的考点是有关循环和数组的。本题为了实现求取最大值,首先应该假设数组中的某一个数就是最大值,再依次与数组元素比较,一旦某个元素比当前的最大值大,就把它作为新的最大值。 max初值设为 0是不可以的,它没有考虑到数组元素都小于 0的情况。