1、国家二级 VB机试(控制结构)模拟试卷 19及答案与解析 一、选择题 1 现有语句: y=IIf(x0, X Mod 3, 0)设 x=10,则 y的值是 ( A) 0 ( B) l ( C) 3 ( D)语句有错 2 设 X是整型变量,与函数 IIf(x0, 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) l 8 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 程序运行后,单击命令按钮 Commandl,输出结果为 ( A) Tree ( B) False ( C) 1 ( D)一 1 8 编写如下程序: Private Sub Command
3、l_Click() Dim score As Integer score=86 If score85 Then r=1 Else Ifscore60 Then r=2 Else r=0 End If Print r End Sub 程序运行后,单击命令按钮 Commandl,输出结果为 ( A) 0 ( B) 1 ( C) 2 ( D) 86 9 设有如下事件过程: Private Sub Form_Click() Sum=0 For k=1 To 3 Ifk0, 1, IIf(x0 Then x=1 Elselfx0 Then Print 1 Elself X0 Print 1 Case I
4、s0 Then Ifx0 Then Print 1 ElselfxC And a+cb And b+Ca Then Print”可以构成一个三角形 ” Else Print”不能构成三角形 ” End If ( B) If a-t-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 Commandl_Click() X=UCase(InputBox(”输入: ”) Select Case x Case”A”To”C” Print”考核通过 !” Case”D” Print”考核不通过 !” Case Else Print”输入数据不 合法 !” End Select End Sub 执行程序,在输入框中输入字母 “B”,则以下叙述中正确的是 ( A)程序运行错 ( B)在窗体上显示 “考核通过 !” ( C)在窗体上显示 “考核不通过 !” ( D)在窗体上显示 “输入数据不合法 !” 16 窗体上
6、有 1个名称为 Commandl的命令按钮,事件过程如下: Private Sub Commandl_Click() Dim num As Integer,x As Integer num=Val(InputBox(”请输入一个正整数 ”) Select Case num Case Is100 x=x+num Case Is“Then 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)把 Ira(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 在窗体上画一个名为 Commandl的命令按钮,然后编写如下代码: 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 在窗体上画一个名称为 Textl的文本框和一个名称为 Commandl的命令按钮,然后编写如下事件过程: Private Sub Commandl_Click() Dim i As Integer,n As 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 在窗体上画一个名称为 Commandl的命令按钮,然后编写如下程序: 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=dc End If Next i Print d End Sub 程序运行后,如果单击命令按钮,则在窗体上输出的内容为 ( A) 89 ( B) 99 ( C) 23 ( D) 77 36 在窗体上
10、画 1个名称为 Commandl的命令按钮,并编写如下事件过程: 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+1 4 1+1 5 1 ( D) s=1+1 (1*2)+1 (2*3)+1 (3*4)+1 (4*5) 37 有如下程序: Private Sub Form_Click() Dim i As Integer,nAs
11、 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 38 有以下通用过程: 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)计算 12233NN ( D)计算 12+23+34+N(N+1) 39 编写如下程
12、序: Option Base 1 Private Sub Commandl_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 程序运行后,单击命令按钮 Commandl,输出结果为 ( A) 110 ( B) 123 ( C) 1234 ( D) 4321 40 在窗体上画一个名称为 Commandl的命令按钮,编写如下事件过程: Private Sub Commandl_Click() n=0 For i=0 To 10 X=2*i
13、 1 IfX Mod 3=0 Then n=n+1 Next 1 Print n End Sub 运行程序,单击命令按钮,则窗体上显示的是 ( A) 1 ( B) 3 ( C) 5 ( D) 7 国家二级 VB机试(控制结构)模拟试卷 19答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 本题考查的考点是有关 IIf函数 的。 IIf函数可用于执行简单的条件判断操作,它是 “IfThenElse” 结构的简写版本。 格式: Result=IIf(,) 其中 “Result”是函数的返回值, “条件 ”是一个逻辑表达式。当 “条件 “为真时, IIf函数返回 “True部分 ”的值,而
14、当 “条件 ”为假时返回 “False部分 ”的值。 “True部分 ”或 “False部分 ”可以是表达式、变量或其他函数。本题中由于 x=10是大于 0的,所以返回值为 xMod 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函数可用来执行简单的条件判断操作,它是 “IfThenEl se”结构的简写版本。格式
16、为: result=IIf(, , )。当 为真时, IIf函数返回 ,而当 为假时,返回 。本题中 a的值是 52,所以条件为真,将返回 52 3的值即 17。 【知识模块】 控制结构 5 【正确答案】 D 【试题解析】 选择结构可以使用 IIf函数、 If语句来实现两个分支的选择结构,使用 Select Case语句实现多分支选择结构, While语句用来描述循环结构。 【知识模块】 控制结构 6 【正确答案】 A 【试题解析】 本题中的第一个 IfThen 结构的作用是将所有输入的大写字符转换为小写字符:第二个 If结构的条件是按下回车键,里面嵌套了一个 For循环,在循环中依次取出文本
17、框中的每一个字符进行判断,若其为小写字符则 n自加 1,循环结束后 n的值就是文本框中字母的个数。 【知识模块】 控制结构 7 【正确答案】 B 【试题解析】 本题的程序中由于 a*b0的值即 False。 【知识模块】 控制结构 8 【正确答案】 B 【试题解析】 块结构条件语句的格式为: If Then : ElseIf 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,否则返回 0,
19、即返回 x的符号。分析 4个选项只有 D选项不应该使用 ElseIf语句而应该使用 Else语句。 【知识模块】 控制结构 11 【正确答案】 A 【试题解析】 命令按钮的 Defa, ult属性用于设置窗体的缺省命令按钮,程序运行时,按下 键将执行该命令按钮的单击事件过程。 IIf函数可用来执行简单的条件判断操作,它是 “IfthenElse” 结构的简 写版本。格式为: Result=IIf(, , )。当 为真时, IIf函数返回 ,而当 为假时,返回 。本题在函数 Fun中判断 x是否比 y小,如果小则返回 x作为返回值,否则返回 y作为返回值,即返回两个参数中的最小值。 【知识模块】
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语句,可以同时对条件的多个取值来判断。其格式为: Select Case Case: 语句块 1 Case Else: 语句块 n End-Select 【知识模块】 控制结构 16 【正确答案】 B 【试题解析】 多分支控制结构又称为 Select Case语句或 Case语句,可以同时对条件的多个取值来判断。其格式为: Select Case Case: 语句块 1 Case Else
22、: 语句块 n End-Select 本题中第一次输入 100执行 Case Else分支,由于 x是默认初值 0所以输出 0;第二次输入 90也执行 Case Else分支,由于 x是默认初值 0所以输出 0;第三次输入 60执行第二个分支输出 60。 【知识模块】 控制结构 17 【正确答案】 D 【试题解析】 Trim函数的作用是去掉文本框中字符串两端的空格;多分支控制结构又称为 Select Case语句或 Case语句,可以同时对条件的多个取值来判断,Case后面的表达式可采用 3种形式: 表达式 1,表达式 2 ; 表达式 1 To表达式 2; Is关系运算表达式。最终 x1是字符
23、串中数字的个数; x2是字符串中大写字母的个数; x3是字符串中小写字母的个数; x4是字符串中非字母、非数字字符的个数。 【知识模块】 控制结构 18 【正确答案】 C 【试题解析】 多分支控制结构又称为 Select Case语句或 Case语句,可以同时对条件的多个取值来判断。本题是一个嵌套的 Select Case语句,首先判断 m的值,本题由于 m的值为 2,所以不会执行 Case 1分支,直接执行 Case 2分支输出“CCC” 【知识模块】 控制结构 19 【正确答案】 A 【试题解析】 本题考查循环控制结构。在 Commandl的 Click事件过程中,变量t的初值为 0,在
24、For循环里面, t变量保存累乘积。由于 t初值为 0,因此累乘积永远都是 0,因此 t的初值应该设置为 1。 【知识模块】 控制结构 20 【正确答案】 B 【试题解析】 本题考查循环控制结构。选项 A)循环少执行一次,由于 p初始化为 a相当于执行了第一次,因此循环必须少执行一次才能计算正确的 an;选项 B)中 pa已经是幂运算了,不需要循环来计算; 选项 C)循环少执行一次,正确;选项 D)中 p初始化为 1,循环执行 n次正确。 【知识模块】 控制结构 21 【正确答案】 B 【试题解析】 本题考查的考点是有关循环次数的。本题题干中程序的错误在于,p的值是从 1一直乘到 n-1的值,
25、也就是 n1的阶乘。选项 A)可以在这个基础上再乘 n就得到 n的阶乘;选项 C)和 D)都能够保证从 1乘到 n,只有选项 B)是错误的。 【知识模块】 控制结构 22 【正确答案】 D 【试题解析】 本题考查的考点是有关循环的。本题中循环的特点是:每执行 3次循环,依 次向 a中加上 0+1+2也就是 3:循环共执行了 15次,所以 a中的值应该为 15。 【知识模块】 控制结构 23 【正确答案】 B 【试题解析】 本题考查的考点是有关循环的。在本题的循环中,首先取得数组的最后一个元素并乘 1后放入 s;然后取得第 3个元素并乘 10后加到 s里面,然后取得第 2个元素并乘 1 00后加
26、到 s里面,最后取得第 1个元素并乘 1000后加到 s里面,所以 s的最终值为 1234。 【知识模块】 控制结构 24 【正确答案】 C 【试题解析】 本题的关键之处在于抓住每次具体给哪个 数组元素进行了赋值,第一次循环中输入的 2被赋给了 A1(1)和 A2(3),第二次循环中输入的 4被赋给了A1(2)和 A2(2),第三次循环中输入的 6被赋给了 A1(3)和 A2(1),跳出循环时 k的值为 3,所以最后输出 2。 【知识模块】 控制结构 25 【正确答案】 A 【试题解析】 本题考查的考点是有关循环的。本题需要写出每一次循环的变量变化情况。第一次循环时输入 15, If判断为真,
27、所以 a=15, x=15;第二次循环时输入 24, If判断为假,所以 a=15+15=30, x仍然为 15;第三次循环时输入 35, If判断为真,所以 a=30+35=65, x=35;第四次循环时输入 46, If判断为假,所以a=65+35=1 00, 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
28、和一 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。 【知识模块】 控制结构 28 【正确答案】 A 【试题解析】 本题中有三个 For循环,但是这三个循环之间没有嵌套关系,而是顺序的关系。在第一个 循环中依次取出字符串 s中的每一个字符存入数组 a;第二个循环中将数组的第一个元素和最后一个元素互换,第二个元素和倒数第二个元素互换 以此类推完成数组的逆序;第三个循环输出数组元素。 【知识模块】 控制结构 29 【正确答案】 A 【试题解析】 本题的循环中倒序从字符串 s中依次取出每一个字符,只要该字符不是空格就将其连接到 temp的前面,见到空格就把连接好的 temp加入到列表框中,即先加入 year,然后是 new,最后是 Happy。 【知识模块】 控制结构 30 【正确答案】 B