内容正文:
编写说明:内蒙古自治区对口招生《计算机类考纲百套卷》,依据《2019年内蒙古自治区高等职业院校对口招收中等职业学校毕业生计算机类专业课综合考试指导纲要》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲“掌握”“理解”要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第12卷,为考点训练卷,按《Visual Basic程序设计》范围和要求编写。具体内容为:For 循环,Do循环,列表框与组合框控件常用算法实例。
内蒙古对口招生《计算机类考纲百套卷》 第12卷
《Visual Basic程序设计》
循环结构 考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单选题(本题共30道小题,每题2分,共60分)
1. 以下程序执行后的输出结果是
Dim i As Integer, j As Integer, s As Integer
s = 0
For i = 1 To 3
For j = i To 3
s = s + i * j
Next j
Next i
Print s
A. 25
B. 36
C. 20
D. 56
【答案】A
【解析】i=1: j=1,2,3 → s=1+2+3=6; i=2: j=2,3 → s=6+4+6=16; i=3: j=3 → s=16+9=25。注意内层j从i开始而非从1开始。输出25。
2. 下列程序的输出结果是
Dim n As Integer, k As Integer
n = 0
For k = 1 To 10
n = n + 1
k = k + 2
Next k
Print "n=" & n; "k=" & k
A. n=4, k=13
B. n=4, k=12
C. n=5, k=13
D. n=3, k=11
【答案】A
【解析】注意:在循环体内修改循环变量k会影响循环!k=1→n=1,k=3; Next k→k=4; k=4→n=2,k=6; Next k→k=7; k=7→n=3,k=9; Next k→k=10; k=10→n=4,k=12; Next k→k=13>10停止。n=4, 最终k=13(Next后又加了1变成13?不对,让我仔细看:Next k会将k加step(=1)。所以:k=1→n=1,k变3; Next k→k=4; k=4→n=2,k变6; Next→k=7; k=7→n=3,k变9; Next→k=10; k=10→n=4,k变12; Next→k=13; 13>10退出。输出n=4, k=13。
3. 执行下面程序后,变量a和b的值分别是
a = 0: b = 0
Do While a < 8
a = a + 1
b = b + a
If b > 20 Then Exit Do
Loop
Print a, b
A. 6, 21
B. 7, 28
C. 6, 21
D. 7, 28
【答案】A
【解析】a=1,b=1; a=2,b=3; a=3,b=6; a=4,b=10; a=5,b=15; a=6,b=21(21>20, Exit Do)。输出a=6, b=21。这是1+2+3+4+5+6=21,到a=6时b首次超过20。
4. 以下程序段执行后,变量t的值为
t = 0
For i = -3 To 3
Select Case i
Case Is < 0: t = t + 1
Case Is > 0: t = t + 2
Case Else: t = t + 3
End Select
Next i
Print t
A. 12
B. 13
C. 11
D. 14
【答案】A
【解析】i=-3,-2,-1: 各t+1(负数Case),t=3; i=0: Case Else, t=6; i=1,2,3: 各t+2(正数Case),t=6+2+2+2=12。输出12。
5. 下列程序的运行结果是
Dim i As Integer, j As Integer
For i = 1 To 4
For j = 1 To 4 - i
Print " ";
Next j
For j = 1 To 2 * i - 1
Print "*";
Next j
Print
Next i
A. 左对齐直角三角形
B. 正三角形星号图
C. 菱形
D. 倒三角
【答案】B
【解析】这是一个打印正三角形(金字塔形)的程序。外层控制行数(1~4),第一个内层打印空格(递减:3,2,1,0),第二个内层打印星号(递增:1,3,5,7)。输出为居中对齐的金字塔形状。
6. 以下程序执行后,组合框Combo1中会有多少个项目?(设Combo1初始为空)
For i = 10 To 0 Step -2
Combo1.AddItem i / 2
Next i
A. 5
B. 6
C. 4
D. 0
【答案】B
【解析】i的取值:10,8,6,4,2,0(共6个值)。i/2分别为:5,4,3,2,1,0。共添加6个项目到组合框中。
7. 下列程序的输出结果是
Dim a(5) As Integer, i As Integer
For i = 0 To 5
a(i) = 2 * i + 1
Next i
s = 0
For i = 0 To 5
If a(i) Mod 3 = 0 Then s = s + a(i)
Next i
Print s
A. 27
B. 18
C. 0
D. 9
【答案】D
【解析】数组a的值:a(0)=1,a(1)=3,a(2)=5,a(3)=7,a(4)=9,a(5)=11。能被3整除的有3和9,s=3+9=9。
8. 在以下Do循环嵌套结构中,内层Exit Do的行为是
Do
Do
If x < 0 Then Exit Do
'...
Loop
'外层后续代码...
Loop
A. 跳出内外两层Do循环
B. 只跳出内层Do循环
C. 语法错误
D. 结束整个程序
【答案】B
【解析】Exit Do只退出其所在的最内层Do循环,控制流转移到紧接在内层Loop之后的外层循环体中继续执行。这与Exit For的行为一致——只退出一层。
9. 以下程序的功能是判断输入的正整数n是否为素数。程序中条件表达式应填
n = Val(InputBox("输入正整数:"))
isPrime = True
For i = 2 To Sqr(n)
If ______ Then
isPrime = False
Exit For
End If
Next i
If isPrime Then Print "是素数" Else Print "不是素数"
A. n Mod i = 0
B. n Mod i <> 0
C. n / i = 0
D. n \ i = 0
【答案】A
【解析】素数判断的核心:如果n能被2~√n范围内的任何整数整除(n Mod i = 0),则n不是素数。找到一个因子就可以确定不是素数,用Exit For提前退出。
10. 下列程序执行后,List1和List2中各有几个项目?
For i = 1 To 10
If i Mod 2 = 0 Then
List1.AddItem i
Else
List2.AddItem i
End If
Next i
A. List1有4个,List2有6个
B. List1有5个,List2有5个
C. List1有5个,List2有5个
D. List1有6个,List2有4个
【答案】C
【解析】1~10中偶数:2,4,6,8,10(5个)→List1;奇数:1,3,5,7,9(5个)→List2。各5个项目。
11. 下面程序的输出结果是
Dim fib1 As Long, fib2 As Long, temp As Long, i As Integer
fib1 = 1: fib2 = 1
For i = 3 To 6
temp = fib1 + fib2
fib1 = fib2
fib2 = temp
Next i
Print fib2
A. 5
B. 8
C. 13
D. 21
【答案】B
【解析】斐波那契数列:F1=1,F2=1,F3=2,F4=3,F5=5,F6=8。循环从i=3到6共4轮:i=3:fib2=2; i=4:fib2=3; i=5:fib2=5; i=6:fib2=8。输出fib2=8(即第6项)。
12. 以下程序段执行后,变量s的值是
s = "ABC"
For i = 1 To Len(s)
s = Mid(s, i + 1, 1) & Left(s, i)
Next i
Print s
A. CAB
B. ACB
C. BC
D. CBC
【答案】C
13. 下列程序使用冒泡排序对数组a进行升序排序,空白处应填入
Dim a(1 To 5) As Integer
'... 数组赋值 ...
For i = 1 To 4
For j = 1 To [ 第一空 ]
If a(j) > a(j+1) Then
temp = a(j): a(j) = a(j+1): a(j+1) = temp
End If
Next j
Next i
A. 5-i
B. 5
C. 4
D. i
【答案】A
【解析】冒泡排序的内层循环边界应为5-i(或n-i)。每轮外层循环将一个最大元素"沉底",下一轮无需再比较已排好的末尾元素。5个元素需要4轮,第i轮比较5-i次。
14. 以下程序执行后,输出的结果是
Dim x As Integer, y As Integer
x = 3: y = 100
Do While x <= y
x = x * 2
y = y + 50
Loop
Print x, y
A. 6, 150
B. 12, 200
C. 768, 500
D. 768, 350
【答案】C
15. 在列表框中实现"全选"功能的代码如下,其中正确的是
For i = 0 To List1.ListCount - 1
______
Next i
A. List1.Text = List1.List(i)
B. List1.Selected(i) = False
C. List1.ListIndex = i
D. List1.Selected(i) = True
【答案】D
【解析】Selected属性是一个布尔数组,设置Selected(i)=True可以将索引为i的项目标记为选中状态。前提是MultiSelect属性不为0(允许多选)。ListIndex只能设置单项选中。
16. 以下程序的功能是找出100~999之间的所有"水仙花数"(各位数字立方和等于该数本身)。程序输出的数字个数是
Dim count As Integer, a As Integer, b As Integer, c As Integer
count = 0
For a = 1 To 9
For b = 0 To 9
For c = 0 To 9
If a^3 + b^3 + c^3 = a * 100 + b * 10 + c Then
count = count + 1
End If
Next c
Next b
Next a
Print count
A. 3
B. 4
C. 1
D. 0
【答案】A
【解析】三位水仙花数只有3个:153(1³+5³+3³=153)、371(27+343+1=371)、407(64+0+343=407)。三重循环穷举验证,共找到3个。
17. 下列程序执行后,s的值是
s = 0
For i = 1 To 5 Step 2
For j = i To 5
s = s + 1
Next j
Next i
A. 9
B. 12
C. 10
D. 8
【答案】A
【解析】i=1: j=1~5, 5次; i=3: j=3~5, 3次; i=5: j=5, 1次。总计5+3+1=9次,每次s加1,s=9。
18. 下面程序使用选择排序对数组进行降序排列。空白处的正确代码是
For i = 1 To n - 1
maxIdx = i
For j = i + 1 To n
If a(j) > a(maxIdx) Then ______
Next j
If maxIdx <> i Then
temp = a(i): a(i) = a(maxIdx): a(maxIdx) = temp
End If
Next i
A. a(i) = a(j)
B. i = j
C. maxIdx = j
D. Continue
【答案】C
【解析】选择排序在每轮中找最大元素的索引。当发现a(j)>a(当前最大)时,更新最大索引maxIdx=j。循环结束后再将maxIdx位置的元素与i位置交换。
19. 以下程序的输出结果是
Dim n As Integer
n = 12345
s = 0
Do While n > 0
s = s * 10 + n Mod 10
n = n \ 10
Loop
Print s
A. 54321
B. 12345
C. 0
D. 15
【答案】A
【解析】该程序将数字反转(翻转各位)。n=12345: s=0*10+5=5, n=1234; s=5*10+4=54, n=123; s=54*10+3=543, n=12; s=543*10+2=5432, n=1; s=5432*10+1=54321, n=0(退出)。输出54321。
20. 在组合框的Change事件中写入代码MsgBox Combo1.Text,当用户手动输入文字时,
A. 只有选择已有项目时才触发
B. 只有按回车键后才会触发
C. Change事件不会被触发
D. 每输入一个字符就会触发一次Change事件
【答案】D
【解析】组合框的Change事件在文本内容发生任何变化时都会触发,包括用户每次键盘输入。这意味着每敲一个键盘就会触发一次Change事件。如需避免频繁触发,可考虑使用其他事件或延时处理。
21. 下列程序的功能是完全打乱数组中元素的顺序。空白处的正确代码是
Randomize
For i = n To 2 Step -1
r = Int(Rnd() * i) + 1
______
Next i
A. temp=a(i):a(i)=a(r):a(r)=temp
B. a(i)=a(r):a(r)=a(i)
C. Swap a(i), a(r)
D. a(i)=r:r=a(i)
【答案】A
【解析】Fisher-Yates洗牌算法:从后向前遍历,每次随机选取一个位置r(1~i),将a(i)与a(r)交换。这是产生均匀随机排列的标准算法。注意VB没有内置Swap语句,需要手动三变量交换。
22. 执行以下程序后,List1中各项目的排列是
List1.AddItem "X"
List1.AddItem "Z", 0
List1.AddItem "Y", 1
List1.AddItem "A", 0
A. X, Z, Y, A
B. A, Z, Y, X
C. Z, Y, X, A
D. A, X, Y, Z
【答案】B
【解析】逐步追踪:Add"X"→[X]; Add"Z"@0→[Z,X]; Add"Y"@1→[Z,Y,X]; Add"A"@0→[A,Z,Y,X]。最终顺序为A,Z,Y,X。
23. 以下程序的功能是计算分数序列前n项之和:2/1, 3/2, 5/3, 8/5, 13/8...(分子分母均为斐波那契数列)。输出S的值(n=5)约为
a = 2: b = 1: s = 0
For i = 1 To 5
s = s + a / b
temp = a: a = a + b: b = temp
Next i
Print Format(s, "0.00")
A. 8.38
B. 7.00
C. 8.39
D. 9.00
【答案】C
【解析】斐波那契分数序列。a/b: 2/1=2, 3/2=1.5, 5/3≈1.667, 8/5=1.6, 13/8=1.625。Sum=2+1.5+1.667+1.6+1.625=8.392。约8.39。
24. 下面程序的功能是将十进制整数转换为二进制字符串表示。空白处应填入
n = Val(InputBox("输入正整数:"))
binStr = ""
Do
binStr = ______ & binStr
n = n \ 2
Loop While n > 0
Print binStr
A. Str(n Mod 2)
B. Str(n \ 2)
C. Str(n / 2)
D. Str(n)
【答案】A
【解析】进制转换核心:不断取n Mod 2(最低位的二进制位),拼接到结果字符串前面(因为是倒序得到的),然后将n整除2去掉已处理的位数。Str()将数值转为字符串。
25. 下列程序执行后,输出结果是
Dim i As Integer, j As Integer, k As Integer
k = 0
For i = 1 To 3
For j = 1 To 3
If i = j Then k = k + 1
Next j
Next i
Print k
A. 1
B. 9
C. 6
D. 3
【答案】D
【解析】3×3循环中,i=j的情况有3种:(1,1),(2,2),(3,3)。所以k=3。这实际上是求矩阵主对角线上的元素个数。
26. 以下关于列表框和组合框协同使用的说法,错误的是
A. 可以将列表框的选中项添加到组合框中
B. 可以在组合框中输入新内容后添加到列表框中
C. 列表框的SelectedChanged事件可以联动更新组合框
D. 列表框和组合框共享同一个项目数据源
【答案】D
【解析】列表框和组合框是独立的控件对象,各自维护自己的项目列表。它们之间没有内置的数据绑定关系。如果需要同步数据,需要通过编程手动实现(如在某一方的AddItem事件中同时更新另一方)。
27. 下面程序的输出结果是
Dim s As Integer, i As Integer
s = 1
For i = 1 To 10
s = s * i
If s > 100 Then Exit For
Next i
Print "i=" & i, "s=" & s
A. i=5, s=120
B. i=4, s=24
C. i=5, s=120
D. i=4, s=24
【答案】A
【解析】s=1×1=1; ×2=2; ×3=6; ×4=24; ×5=120(120>100, Exit For)。退出时i=5(注意Exit For在s>120判断之后,i还是当前值5),s=120。注意:Exit For后i不再递增,保持为5。
28. 以下程序的功能是统计字符串中每个英文字母出现的次数(不区分大小写)。程序中使用了列表框辅助显示结果。空白处应使用的方法是
Dim txt As String, ch As String * 1, i As Integer
txt = "HelloWorld"
' 统计完成后...
For i = Asc("A") To Asc("Z")
If cnt(i) > 0 Then
List1.______ Chr(i) & ":" & cnt(i)
End If
Next i
A. Add
B. AddItem
C. Insert
D. Append
【答案】B
【解析】向列表框中添加项目统一使用AddItem方法。这是VB列表类控件的标准方法,没有Add、Insert或Append这些方法名。
29. 下列程序执行后,输出的结果是
Dim a(3, 3) As Integer, i As Integer, j As Integer, sum As Integer
For i = 0 To 3
For j = 0 To 3
If i = j Or i + j = 3 Then a(i, j) = 1 Else a(i, j) = 0
Next j
Next i
sum = 0
For i = 0 To 3
For j = 0 To 3
sum = sum + a(i, j)
Next j
Next i
Print sum
A. 8
B. 16
C. 6
D. 4
【答案】A
【解析】4×4矩阵,条件i=j(主对角线)或i+j=3(副对角线)时置1。主对角线4个元素(0,0)(1,1)(2,2)(3,3),副对角线4个元素(0,3)(1,2)(2,1)(3,0),但中心两个(1,2)和(2,1)不重复吗?实际上4×4矩阵两条对角线不相交(偶数阶),共8个1。sum=8。
30. 以下程序的功能是使用穷举法求解"百钱买百鸡"问题:公鸡5元一只,母鸡3元一只,小鸡1元3只,用100元买100只鸡。程序输出的解的组数是
count = 0
For x = 0 To 20
For y = 0 To 33
z = 100 - x - y
If 5 * x + 3 * y + z / 3 = 100 Then
count = count + 1
End If
Next y
Next x
Print count
A. 3
B. 4
C. 6
D. 1
【答案】B
【解析】百钱百鸡问题的经典解有4组:(0,25,75)、(4,18,78)、(8,11,81)、(12,4,84)。公鸡最多20只(100/5),母鸡最多33只(100/3)。程序穷举验证,共找到4组解。
二、填空题(本题共10道小题,每题2分,共20分)
31. 在For i = a To b Step c中,当c为______且a > b时,循环体______执行(填"会"或"不会")。
【答案】正数(或>0/大于0); 不会
32. 列表框的ItemData属性是一个______数组,常用于存储与每个列表项相关联的______数据。
【答案】长整型(或Long/整数); 附加(或辅助/扩展/额外)
33. Do While...Loop与Do...Loop While除了判断时机不同外,还有一个重要区别:前者在条件一开始为False时______;后者______。
【答案】一次都不执行(或执行0次); 至少执行一次
34. 在VB中实现"打印九九乘法表",需要使用______层For循环嵌套,外层控制______,内层控制______。
【答案】两; 行数; 列数
35. 若For循环的初值、终值和步长都是Single类型变量,则循环次数可能存在______误差,原因是浮点数的______性。
【答案】累积(或舍入/精度/计算); 不精确(或近似/精度受限)
36. 组合框Style=0与Style=2的共同点是都有下拉列表部分,主要区别是Style=0______,而Style=2______。
【答案】允许用户在文本框中输入自定义内容; 不允许输入(只能从列表中选择)
37. 在程序中动态地向列表框批量添加大量项目(如1000条以上)时,为提高性能,可以先设置______属性,添加完成后再恢复。
【答案】Visible = False(或 Enabled = False)
38. 素数判定算法中,只需检查n能否被2到______之间的整数整除即可,这是因为如果n有大于√n的因子a,则必有对应的小于√n的因子b=n/a。
【答案】Sqr(n)(或 √n / Int(Sqr(n)) / n的平方根)
39. 在列表框中实现"将选中项上移一位"的操作,需要用到______方法先取出原项目,再用______方法插入到新位置,最后用______方法删除原位置的项目。
【答案】List(); AddItem; RemoveItem
40. ______的基本思想是:不重复列举问题的所有可能解,逐一验证是否满足约束条件。
【答案】穷举法(枚举法)
三、程序填空题(本题共2道小题,每题10分,共20分)
41.以下程序功能:将列表框List1中的所有项目按字母升序排序后排回List1中。请补充完整程序代码。
Private Sub Command1_Click()
Dim n As Integer, i As Integer, j As Integer
Dim temp As String
n = [ ① ]
For i = 0 To n - 2
For j = 0 To [ ② ]
If List1.List(j) [ ③ ] List1.List(j + 1) Then
temp = List1.List(j)
List1.List(j) = List1.[ ④ ]
List1.List(j + 1) = [ ⑤ ]
End If
Next j
Next i
End Sub
【答案】List1.ListCount
【答案】n - 2 - i(或 n - i - 2)
【答案】>
【答案】List(j + 1)
【答案】temp
42.完数(完全数)是指一个正整数恰好等于它的所有真因子(不含自身)之和。例如6=1+2+3。以下程序功能:找出2~1000之间的所有完数,并将结果逐项添加到列表框List1中。请补充完整程序代码。
Private Sub Command1_Click()
Dim n As Integer, i As Integer, sum As Integer
List1.Clear
For n = 2 To 1000
sum = [ ① ]
For i = 1 To [ ② ]
If n Mod i = 0 Then sum = sum + i
Next i
If [ ③ ] Then
List1.[ ④ ] n & " = 1"
For i = 2 To n \ 2
If n Mod i = 0 Then
List1.List(List1.ListCount - 1) = _
List1.List(List1.ListCount - 1) & "+" & i
End If
[ ⑤ ]
End If
Next n
End Sub
【答案】 0
【答案】n \ 2(或 n / 2 或 Int(n/2))
【答案】sum = n(或 sum = n )
【答案】AddItem
【答案】Next i
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:内蒙古自治区对口招生《计算机类考纲百套卷》,依据《2019年内蒙古自治区高等职业院校对口招收中等职业学校毕业生计算机类专业课综合考试指导纲要》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲“掌握”“理解”要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第12卷,为考点训练卷,按《Visual Basic程序设计》范围和要求编写。具体内容为:For 循环,Do循环,列表框与组合框控件常用算法实例。
内蒙古对口招生《计算机类考纲百套卷》 第12卷
《Visual Basic程序设计》
循环结构 考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单选题(本题共30道小题,每题2分,共60分)
1. 以下程序执行后的输出结果是
Dim i As Integer, j As Integer, s As Integer
s = 0
For i = 1 To 3
For j = i To 3
s = s + i * j
Next j
Next i
Print s
A. 25
B. 36
C. 20
D. 56
2. 下列程序的输出结果是
Dim n As Integer, k As Integer
n = 0
For k = 1 To 10
n = n + 1
k = k + 2
Next k
Print "n=" & n; "k=" & k
A. n=4, k=13
B. n=4, k=12
C. n=5, k=13
D. n=3, k=11
3. 执行下面程序后,变量a和b的值分别是
a = 0: b = 0
Do While a < 8
a = a + 1
b = b + a
If b > 20 Then Exit Do
Loop
Print a, b
A. 6, 21
B. 7, 28
C. 6, 21
D. 7, 28
4. 以下程序段执行后,变量t的值为
t = 0
For i = -3 To 3
Select Case i
Case Is < 0: t = t + 1
Case Is > 0: t = t + 2
Case Else: t = t + 3
End Select
Next i
Print t
A. 12
B. 13
C. 11
D. 14
5. 下列程序的运行结果是
Dim i As Integer, j As Integer
For i = 1 To 4
For j = 1 To 4 - i
Print " ";
Next j
For j = 1 To 2 * i - 1
Print "*";
Next j
Print
Next i
A. 左对齐直角三角形
B. 正三角形星号图
C. 菱形
D. 倒三角
6. 以下程序执行后,组合框Combo1中会有多少个项目?(设Combo1初始为空)
For i = 10 To 0 Step -2
Combo1.AddItem i / 2
Next i
A. 5
B. 6
C. 4
D. 0
7. 下列程序的输出结果是
Dim a(5) As Integer, i As Integer
For i = 0 To 5
a(i) = 2 * i + 1
Next i
s = 0
For i = 0 To 5
If a(i) Mod 3 = 0 Then s = s + a(i)
Next i
Print s
A. 27
B. 18
C. 0
D. 9
8. 在以下Do循环嵌套结构中,内层Exit Do的行为是
Do
Do
If x < 0 Then Exit Do
'...
Loop
'外层后续代码...
Loop
A. 跳出内外两层Do循环
B. 只跳出内层Do循环
C. 语法错误
D. 结束整个程序
9. 以下程序的功能是判断输入的正整数n是否为素数。程序中条件表达式应填
n = Val(InputBox("输入正整数:"))
isPrime = True
For i = 2 To Sqr(n)
If ______ Then
isPrime = False
Exit For
End If
Next i
If isPrime Then Print "是素数" Else Print "不是素数"
A. n Mod i = 0
B. n Mod i <> 0
C. n / i = 0
D. n \ i = 0
10. 下列程序执行后,List1和List2中各有几个项目?
For i = 1 To 10
If i Mod 2 = 0 Then
List1.AddItem i
Else
List2.AddItem i
End If
Next i
A. List1有4个,List2有6个
B. List1有5个,List2有5个
C. List1有5个,List2有5个
D. List1有6个,List2有4个
11. 下面程序的输出结果是
Dim fib1 As Long, fib2 As Long, temp As Long, i As Integer
fib1 = 1: fib2 = 1
For i = 3 To 6
temp = fib1 + fib2
fib1 = fib2
fib2 = temp
Next i
Print fib2
A. 5
B. 8
C. 13
D. 21
12. 以下程序段执行后,变量s的值是
s = "ABC"
For i = 1 To Len(s)
s = Mid(s, i + 1, 1) & Left(s, i)
Next i
Print s
A. CAB
B. ACB
C. BC
D. CBC
13. 下列程序使用冒泡排序对数组a进行升序排序,空白处应填入
Dim a(1 To 5) As Integer
'... 数组赋值 ...
For i = 1 To 4
For j = 1 To [ 第一空 ]
If a(j) > a(j+1) Then
temp = a(j): a(j) = a(j+1): a(j+1) = temp
End If
Next j
Next i
A. 5-i
B. 5
C. 4
D. i
14. 以下程序执行后,输出的结果是
Dim x As Integer, y As Integer
x = 3: y = 100
Do While x <= y
x = x * 2
y = y + 50
Loop
Print x, y
A. 6, 150
B. 12, 200
C. 768, 500
D. 768, 350
15. 在列表框中实现"全选"功能的代码如下,其中正确的是
For i = 0 To List1.ListCount - 1
______
Next i
A. List1.Text = List1.List(i)
B. List1.Selected(i) = False
C. List1.ListIndex = i
D. List1.Selected(i) = True
16. 以下程序的功能是找出100~999之间的所有"水仙花数"(各位数字立方和等于该数本身)。程序输出的数字个数是
Dim count As Integer, a As Integer, b As Integer, c As Integer
count = 0
For a = 1 To 9
For b = 0 To 9
For c = 0 To 9
If a^3 + b^3 + c^3 = a * 100 + b * 10 + c Then
count = count + 1
End If
Next c
Next b
Next a
Print count
A. 3
B. 4
C. 1
D. 0
17. 下列程序执行后,s的值是
s = 0
For i = 1 To 5 Step 2
For j = i To 5
s = s + 1
Next j
Next i
A. 9
B. 12
C. 10
D. 8
18. 下面程序使用选择排序对数组进行降序排列。空白处的正确代码是
For i = 1 To n - 1
maxIdx = i
For j = i + 1 To n
If a(j) > a(maxIdx) Then ______
Next j
If maxIdx <> i Then
temp = a(i): a(i) = a(maxIdx): a(maxIdx) = temp
End If
Next i
A. a(i) = a(j)
B. i = j
C. maxIdx = j
D. Continue
19. 以下程序的输出结果是
Dim n As Integer
n = 12345
s = 0
Do While n > 0
s = s * 10 + n Mod 10
n = n \ 10
Loop
Print s
A. 54321
B. 12345
C. 0
D. 15
20. 在组合框的Change事件中写入代码MsgBox Combo1.Text,当用户手动输入文字时,
A. 只有选择已有项目时才触发
B. 只有按回车键后才会触发
C. Change事件不会被触发
D. 每输入一个字符就会触发一次Change事件
21. 下列程序的功能是完全打乱数组中元素的顺序。空白处的正确代码是
Randomize
For i = n To 2 Step -1
r = Int(Rnd() * i) + 1
______
Next i
A. temp=a(i):a(i)=a(r):a(r)=temp
B. a(i)=a(r):a(r)=a(i)
C. Swap a(i), a(r)
D. a(i)=r:r=a(i)
22. 执行以下程序后,List1中各项目的排列是
List1.AddItem "X"
List1.AddItem "Z", 0
List1.AddItem "Y", 1
List1.AddItem "A", 0
A. X, Z, Y, A
B. A, Z, Y, X
C. Z, Y, X, A
D. A, X, Y, Z
23. 以下程序的功能是计算分数序列前n项之和:2/1, 3/2, 5/3, 8/5, 13/8...(分子分母均为斐波那契数列)。输出S的值(n=5)约为
a = 2: b = 1: s = 0
For i = 1 To 5
s = s + a / b
temp = a: a = a + b: b = temp
Next i
Print Format(s, "0.00")
A. 8.38
B. 7.00
C. 8.39
D. 9.00
24. 下面程序的功能是将十进制整数转换为二进制字符串表示。空白处应填入
n = Val(InputBox("输入正整数:"))
binStr = ""
Do
binStr = ______ & binStr
n = n \ 2
Loop While n > 0
Print binStr
A. Str(n Mod 2)
B. Str(n \ 2)
C. Str(n / 2)
D. Str(n)
25. 下列程序执行后,输出结果是
Dim i As Integer, j As Integer, k As Integer
k = 0
For i = 1 To 3
For j = 1 To 3
If i = j Then k = k + 1
Next j
Next i
Print k
A. 1
B. 9
C. 6
D. 3
26. 以下关于列表框和组合框协同使用的说法,错误的是
A. 可以将列表框的选中项添加到组合框中
B. 可以在组合框中输入新内容后添加到列表框中
C. 列表框的SelectedChanged事件可以联动更新组合框
D. 列表框和组合框共享同一个项目数据源
27. 下面程序的输出结果是
Dim s As Integer, i As Integer
s = 1
For i = 1 To 10
s = s * i
If s > 100 Then Exit For
Next i
Print "i=" & i, "s=" & s
A. i=5, s=120
B. i=4, s=24
C. i=5, s=120
D. i=4, s=24
28. 以下程序的功能是统计字符串中每个英文字母出现的次数(不区分大小写)。程序中使用了列表框辅助显示结果。空白处应使用的方法是
Dim txt As String, ch As String * 1, i As Integer
txt = "HelloWorld"
' 统计完成后...
For i = Asc("A") To Asc("Z")
If cnt(i) > 0 Then
List1.______ Chr(i) & ":" & cnt(i)
End If
Next i
A. Add
B. AddItem
C. Insert
D. Append
29. 下列程序执行后,输出的结果是
Dim a(3, 3) As Integer, i As Integer, j As Integer, sum As Integer
For i = 0 To 3
For j = 0 To 3
If i = j Or i + j = 3 Then a(i, j) = 1 Else a(i, j) = 0
Next j
Next i
sum = 0
For i = 0 To 3
For j = 0 To 3
sum = sum + a(i, j)
Next j
Next i
Print sum
A. 8
B. 16
C. 6
D. 4
30. 以下程序的功能是使用穷举法求解"百钱买百鸡"问题:公鸡5元一只,母鸡3元一只,小鸡1元3只,用100元买100只鸡。程序输出的解的组数是
count = 0
For x = 0 To 20
For y = 0 To 33
z = 100 - x - y
If 5 * x + 3 * y + z / 3 = 100 Then
count = count + 1
End If
Next y
Next x
Print count
A. 3
B. 4
C. 6
D. 1
二、填空题(本题共10道小题,每题2分,共20分)
31. 在For i = a To b Step c中,当c为______且a > b时,循环体______执行(填"会"或"不会")。
32. 列表框的ItemData属性是一个______数组,常用于存储与每个列表项相关联的______数据。
33. Do While...Loop与Do...Loop While除了判断时机不同外,还有一个重要区别:前者在条件一开始为False时______;后者______。
34. 在VB中实现"打印九九乘法表",需要使用______层For循环嵌套,外层控制______,内层控制______。
35. 若For循环的初值、终值和步长都是Single类型变量,则循环次数可能存在______误差,原因是浮点数的______性。
36. 组合框Style=0与Style=2的共同点是都有下拉列表部分,主要区别是Style=0______,而Style=2______。
37. 在程序中动态地向列表框批量添加大量项目(如1000条以上)时,为提高性能,可以先设置______属性,添加完成后再恢复。
38. 素数判定算法中,只需检查n能否被2到______之间的整数整除即可,这是因为如果n有大于√n的因子a,则必有对应的小于√n的因子b=n/a。
39. 在列表框中实现"将选中项上移一位"的操作,需要用到______方法先取出原项目,再用______方法插入到新位置,最后用______方法删除原位置的项目。
40. ______的基本思想是:不重复列举问题的所有可能解,逐一验证是否满足约束条件。
三、程序填空题(本题共2道小题,每题10分,共20分)
41.以下程序功能:将列表框List1中的所有项目按字母升序排序后排回List1中。请补充完整程序代码。
Private Sub Command1_Click()
Dim n As Integer, i As Integer, j As Integer
Dim temp As String
n = [ ① ]
For i = 0 To n - 2
For j = 0 To [ ② ]
If List1.List(j) [ ③ ] List1.List(j + 1) Then
temp = List1.List(j)
List1.List(j) = List1.[ ④ ]
List1.List(j + 1) = [ ⑤ ]
End If
Next j
Next i
End Sub
42.完数(完全数)是指一个正整数恰好等于它的所有真因子(不含自身)之和。例如6=1+2+3。以下程序功能:找出2~1000之间的所有完数,并将结果逐项添加到列表框List1中。请补充完整程序代码。
Private Sub Command1_Click()
Dim n As Integer, i As Integer, sum As Integer
List1.Clear
For n = 2 To 1000
sum = [ ① ]
For i = 1 To [ ② ]
If n Mod i = 0 Then sum = sum + i
Next i
If [ ③ ] Then
List1.[ ④ ] n & " = 1"
For i = 2 To n \ 2
If n Mod i = 0 Then
List1.List(List1.ListCount - 1) = _
List1.List(List1.ListCount - 1) & "+" & i
End If
[ ⑤ ]
End If
Next n
End Sub
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$