1、国家二级 VB机试(控制结构)模拟试卷 12及答案与解析 一、选择题 1 窗体上有 1个名称为 Command1的命令按钮,事件过程及函数过程如下: Private Sub Command1_Click() Dim m As String m=InputBox(“请输入字符串 “) Print pick_str(m) End Sub Private Function pick_str(s As String)As String temp=“: i=1: sLen=Len(s) Do Wbile i1 ( D) i=10 Do i=i 2 Loop Until i=1 4 以下能够正常结束循环操
2、作的程序段是 ( A) i=5 Do i=i+1 Loop Until i0 i=i-2 Loop ( D) i=0 Do While i2 N=N+1: J=J+N*(N+1) Loop Print N: J End Sub 运行程序,单击窗体,输出结果是 ( A) 3 21 ( B) 3 7 ( C) 0 1 ( D) 3 13 7 有如下程序: Function fun(ByVal nuin As Integer)As Integer Dim k As Integer k=1 num=Abs(num) Do Wbile num k=k*(num Mod 10): num=num 10 L
3、oop fun=k End Function Private Sub Form_Click() Dim n As Integer, r As Integer n=InputBox(“请输入一个数: “): n=Int(n): r=fun(n): Print r End Sub 程序运行后,单击窗体,在输入对话框中输入 246,输出结果为 ( A) 120 ( B) 48 ( C) 24 ( D) 60 8 下面程序的功能是输出 100以内所有素数: Private Sub Command1_Click() For n=2 To 100 isprime=True: k=2 Do While k0
4、 k=k+1: arr(k)=d Mod r: d=d r Loop End Sub 程序运行后,单击命令按钮 Command1,输出结果为 ( A) 1 1 0 0 ( B) 0 0 1 1 ( C) 0 1 0 1 ( D) 1 0 1 0 10 编写如下程序: Private Sub Command1_Click() Dim n As Long, s As String n=InputBox(“输入一个数 “) Do While nk 2 End Sub 程序运行后,单击命令按钮 Command1,并输入数值 20,则输出结果为 ( A) 2 2 5 ( B) 2 3 4 ( C) 2
5、3 4 5 ( D) 2 5 14 编写如下程序: Private Sub Command1_Click() Dim a(3, 3)As Integer, b(3, 3)As Integer For i=1 To 3 For j=1 To 3 a(i, j)=i+j: b(i, j)=a(i, j)+i*(j-1) Next i Next i For i=1 To 3 For i=1 To 3 Print b(i, j); Next i Print Next i End Sub 程序运行后,单击命令按钮 Command1,输出结果为 ( A) 2 3 4 3 4 5 4 5 6 ( B) 2
6、4 6 3 6 9 4 8 12 ( C) 3 5 7 5 8 11 7 11 15 ( D) 4 6 8 7 10 13 10 14 18 15 已知在 4行 3列的全局数组 score(4, 3)中存放了 4个学生 3门课程的考试成绩(均为整数 )。 现需要计算每个学生的总分,某人编写程序如下: Option Base1 Private Sub Command1_Click() Dim sum As Integer sum=0 For i=1 To 4 For j=1 To 3 sum=sum+score(i, j) Nextj Print“第 “ i “个学生的总分是: “; sum N
7、ext i End Sub 运行此程序时发现,除第 1个人的总分计算正确外,其他人的总分都是错误的,程序需要修改。以下修改方案中正确的是 ( A)把外层循环语句 For i=1 To 4改为 For i=1 To 3内层循环语句 Forj=1 To 3改为 For j=1 To 4 ( B)把 sum=0移到 For i=1 To 4和 Forj=1 To 3之间 ( C)把 sum=slim+score(i, j)改为 sum=sum+score(j, i) ( D)把 sum=sum+score(i, j)改为 sum=score(i, j) 16 在窗体上画一个命令按钮和一个标签,其名称
8、分别为 Command1和 Label1,然后编写如下事件过程: Private Sub Command1_Click() Counter=0 For i=1 To 4 For j=6 To 1 Step-2 Counter=Counter+1 Next i Next i Label 1 Caption=Str(Counter) End Sub 程序运行后,单击命令按钮,标签中显示的内容是 ( A) 11 ( B) 12 ( C) 16 ( D) 20 17 在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim I, Num Rand
9、omize Do For I=1 To 1000 Num=Int(Rnd * 100): Print Num; Select Case Num Case 12 Exit For Case 58 Exit Do Case 65, 68, 92 End End Select Next I Loop End Sub 上述事件过程执行后,下列描述中正确的是 ( A) Do循环执行的次数为 1000次 ( B)在 For循环中产生的随机数小于 或等于 100 ( C)当所产生的随机数为 12时结束所有循环 ( D)当所产生的随机数为 65、 68或 92时窗体关闭、程序结束 18 运行如下程序 Priv
10、ate Sub Command1_Click() Dim a(5, 5)As Integer For i=1 To 5 Forj=1 To 4 a(i, j)=i*2+j If a(i, j) 7=a(i, j) 7 Then n=n+1 End If Nextj Next Print n End Sub 则 n的值是 ( A) 2 ( B) 3 ( C) 4 ( D) 5 19 命令按钮 Command1的单击事件过程如下: Private Sub Command1_Click() Dim a(10, 10)As Integer x=0 For i=1 To 3 Forj=1 To 3 a(
11、i, j)=i*2 Mod j IfxSqr(i)Then Print i Next i End Sub 该程序的功能是 ( A)判断 n是否为素数 ( B)输出 n以内所有的奇数 ( C)输出 n以内所有的偶数 ( D)输出 n以内所有的素数 26 命令按钮 Command1的事件过程如下: Private Sub Command1_Click() Dim arr(5, 5)As Integer Dim i As Integer, j As Integer For i=1 To 4 Forj=2 To 4 arr(i, j)=i+j Nextj Next i Print art(1, 3)+
12、arr(3, 4) End Sub 执行上述过程,输出结果是 ( A) 6 ( B) 7 ( C) 11 ( D) l 2 27 有如下程序: Private Sub Command1_Click() Dim i As Integer, j As Integer, sum As Integer n=1 Do j=1 Do sum=sum+j: j=j+1 Printj; Loop Until j3 n=n+2 Loop Until n10 Print sum End Sub 运行上述程序,外层 Do循环执行的次数为 ( A) 4 ( B) 5 ( C) 7 ( D) 10 国家二级 VB机试(
13、控制结构)模拟试卷 12答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 本题的函数中使用了 Do循环循环冬件是 il而无限循环: D选项由于 i的值从 10开始递减,但是因为每次递减 2,所以 i永远为偶数,不会满足 i=1而无限循环。 【知识模块】 控制结构 4 【正确答案】 C 【试题解析】 Do循环语句的功能是:当指定的 “循环条件 ”为真或直到指定的 “循环条件 ”变为真之前重复执行循环体。 Do while|UntilLoop 循环是在条件满足的情况下才执行一次循环体,而 DoLoop While|Until 循环不管是否满足条件都先执行一次循环体,然 后再判断条件是否成
14、立以决定后续操作。本题的 A选项由于 i的值从 5开始递增,永远不会满足 iSqr(i),不会输出 i的值;只有 i不能被任何一个 j整除的情况下才会输出 i的值,即判断 i是不是素数,只有素数才输出。 【知识模块】 控制结构 26 【正确答案】 C 【试题解析】 本题中首先在一个二重循环中给二维数组 arr的部分元素赋值,循环结束后输出两个数组元素的和,根据题意 arr(1, 3)+art(3, 4)=4+7=11。 【知识模块】 控制结构 27 【正确答案】 B 【 试题解析】 外循环的控制条件为 n10,即 n10的时候结束循环:在每次内循环中 j都会自加, j3的时候退出内循环,即每次外循环中内循环都会执行 3次;由于内循环没有改变 n的值,而在外循环中 n的值自加 2,所以外循环共循环 5次。 【知识模块】 控制结构