1、国家二级 VB机试(选择题)模拟试卷 176及答案与解析 一、选择题 1 编写如下程序: Private Sub Command 1 Click() Dim m As Integer,n As Integer m=2: n=1 Select Case m Case 1 Select Case n Case 1 Print“AAA” Case 2 Prim“BBB” Case 2 Print“CCC” End Select End Sub 程序运行后,单击命令按钮 Commandl,输出结果为 ( A) AA A ( B) BBB ( C) CCC ( D) 1 2 某人为计算 n!(0“”Th
2、en temp=s+temp Else List 1 Add ( A) year new Happy ( B) Happy new year ( C) raey wen yppaH ( D) yppaH wen raey 11 设窗体上有一个文本框 Textl和一个命令按钮 Commandl,并有以下事件过程:Private SubCommandlClick()Dim s As String, ch As String s=“”For k=1 To Len(Textl)ch=Mid(Textl, k, 1)s=ch+s Next k Text1 Text=s End Sub程序执行时,在文本框
3、中输入 “Basic”,然后单击命令按钮,则 Textl中显示的是 ( A) Basic ( B) cisaB ( C) BASIC ( D) CISAB 12 某人编写了如下程序,用来求 10个整数 (整数从键盘输入 )中的最大值: Private Sub Commadl_Ctick() Dim a(10)As Integer,maxAs Integer For k=1 To 10 a(k)=InputBox(“输入一个整数 ”) Next k max=0 For k=1 To 10 Ira(k)max Then max=a(k) End If Next k Print max End Su
4、b 运行程序时发现,当输入 10个正数时,可以得到正确结果,但输入 10个负数 ( A)把 Ira(k)max Then改为 If a(k)10 Then Exit For Next Text1 Text=Str(n) End Sub 程序运行后,单击命令按钮,在文本框中显示的值是 ( A) 2 ( B) 3 ( C) 4 ( D) 5 14 在窗体上画一个名为 Commandl的命令按钮,然后编写如下代码: Option Base 1 Private Sub Commandl Click() Dim a a=Array(1, 2, 3, 4): j=1 For i=4 To 1 Step一
5、1 S=S+a(i)*j: j=j*10 Next i Print s End Sub 运行上面的程序,其输出结果是 ( A) 1234 ( B) 12 ( C) 34 ( D) 4321 15 茬窗体上画一个 名称为 Textl的文本框和一个名称为 Commandl的命令按钮,然后编写如下事件过程: Private Sub Commandl_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 程序运行后,单击命令按钮,
6、在文本框中显示的值是 ( A) 2 ( B) 3 ( C) 4 ( D) 5 16 在窗体上画一个名称为 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=d C End If Next i Print d End Sub 程序运行后,如果单击命令按钮,则在窗体上输出的内容为 ( A) 89 ( B) 99 ( C) 2 ( D) 77
7、 17 在窗体上画 1个名称为 commaIldl的命令按钮 ,并编写如下事件过程: 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+1 31+1 41+1 5 1 ( D) s=4+1 (1*2)+1 (2*3)+1 (3*4)+1 (4*5) 18 有如下程序: Private Sub Form Click() Dim i As I
8、nteger,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 19 有以下通用过程: 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+
9、1) 20 编写如下程序: Option Base 1 Prirate Sub Commandl () Click(Dim a a=Array(1, 2, 3, 4): s=0: j=1 For i=4 To 1 Step1 S=S+a(i)*j: j=j*10 Next i Print s End Sub 程序运行后,单击命令按钮 Commandl,输出结果为 ( A) 110 ( B) 123 ( C) 1234 ( D) 4321 21 在窗体上画一个名称为 Commandl的命令按钮,编写如下事件过程: Private Sub Commandl_Click() n=0 For i=0
10、To 10 X=2*i 1 If X Mod 3=0 Then n=n+1 Next i Print n End Sub 运行程序;单击命令按钮,则窗体上显示的是 ( A) 1 ( B) 3 ( C) 5 ( D) 7 22 窗体上有一个名称为 Textl的文本框,一个名称为 Commandl的命令按钮。要 求编写一个程序,统计文本框中 0-9各数字字符的个数。某人编写如下程序: Private Sub Commandl Click() Dim count(10)As、 Integer第 1个 For循环 r For i=0 To 9 count(i)=0 Next s=Trim(Textl
11、Text) strLen=t,en(s)第 2个 For循环 For i=1 To strLen c=Mid(s, i, 1) Ifc=“0”And cb a=a-b Wend fun=a End Function 在调试时发现函数是错误的。为使函数能产生正确的返回值,应做的修改是 ( A)把 a=a-b改为 a=b-a ( B)把 a=a-b改为 a=a b ( C)把 While ab改为 While ab改为 While a=b 25 设有如下事件过程: Private Sub Form_Click0 x=0 Wlile x10 Then Exit Do Else x=x+3 End I
12、f Loop Until x0 s=s&n Mod 10: s=S&n 10 Mod 10 n=n100 Loop Print s End Sub 程序运行后,单击命令按钮 Commandl,并输入数值 123456,则输出结果为 ( A) 654321 ( B) 563412 ( C) 642531 ( D) 615243 31 下面程序计算并输出的是 Private Sub Command1 Click() a=10: s=0 Do s=s+a*a*a: a=a-1 Loop Until ab改为 While a=b。 【知识模块】 控制结构 25 【正确答案】 D 【试题解析】 本题是简
13、单 While循环,在循环中改变循环变量 x的值,要注意退出循环时 x必然是不会满足循环条件的。本题中循环中 x依次变化为 1、 4、 25。 【知识模块】 控制结构 26 【正确答案】 D 【试题解析】 本题考查的考点是有关 Do型循环的。对于这种循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体:如果是后判断条件,则无论条件如何至少执行一次循环体。在 Untj1循环中条件为 False时执行循环体,条件为 True时退出循环;在 While循环中条件为 True时执行循环体,条件为 False时退出循环,这一点要注意区分清楚。 【知识模块】 控制结
14、构 27 【正确答案】 D 【试题解析】 visual Basic支持的循环结构包括: FoLNext 循环、 For EachNext 循环、 DoL00p 循环和 While循环。 【知识模块】 控制结构 28 【正确答案】 B 【试题解析】 本题考查的考点是有关 D0型循环的。对于这种循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则 有可能一一次也不执行循环体;如果是后判断条件,则无论条件是什么,至少执行一次循环体。在until循环中条件为 False时执行循环体,条件为 Tme时退出循环;在 While循环中条件为 True时执行循环体,条件为 FaIse时退出循环
15、,这一点要注意区分清楚。本题只需要实际计算一下两次循环中 x和 n值的变化即可容易的得出结果。 【知识模块】 控制结构 29 【正确答案】 B 【试题解析】 Do型循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条 件,则无论条件是什么,至少执行一次循环体。在 Until循环中条件为 False时执行循环体,条件为 me时退出循环:在 while循环中条件为 Tnle时执行循环体,条件为 False时退出循环。本题中使用的是后判断型循环,第一次循环时 y的值为 1,不满足y10,执行 Else分支, x变成 4,此时由于满足 x=10所
16、以结束循环。 【知识模块】 控制结构 30 【正确答案】 A 【试题解析】 本题在循环中先将 n除以 10的余数 (即个位数字 )连接到 s上,然后将整除 10后除以 10的余数 (即十位上数字 )连接到 s上 ,然后 n整除 100的值赋值给 n(即去掉最后两位 ),然后继续进行循环,所以最终将会输出数字的逆序。 【知识模块】 控制结构 31 【正确答案】 A 【试题解析】 对于 Do型循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件是什么,至少执行一次循环体。在 Until循环中条件为 False时执行循环体,条件为 Tme时退出循环:在 while循环中条件为 Tme时执行循环体,条件为False时退出循环。本题是一个比较简单的 Do循环,计 算从 1到 10的立方和。 【知识模块】 控制结构