内容正文:
2023-2024学年高一下学期期末考试
信息技术试卷
考试时间:75分钟 满分100分
一、选择题(共40题,每题2分,共80分)
1. 下表记录了6个数据的排序过程。分析表中数据可知,该排序采用的算法与排序方式分别为( )
A. 冒泡排序,降序 B. 选择排序,降序
C. 冒泡排序,升序 D. 选择排序,升序
2. 某算法的流程图如图所示,执行该算法,输出的值为( )
A 2 B. 6 C. 8 D. 19
3. 在 Visual Basic中,若x表示能被5整除的正整数,则下列逻辑表达式的值一定为真的是( )。
A. x/5=0 B. x Mod 5=0 C. Int(x/5)=0 D. 5 Mod x=0
4. 有如下VB程序段:
For i=1 To 9
For j=10 To i+2 Step-1
If a(j)<a(j-2) Then
t=a(j):8(j)=a(j-2):a (j-2)=t
End If
Next j
Next i
数组元素a(1)到a(10)的值依次为“3,17,2,14,15,6,7,18,9,4”,执行该程序段后,数组元素a(8)中的值为( )
A. 3 B. 4 C. 15 D. 17
5. INPUTBOX(“请输入”,“学生成绩”,80)函数弹出的对话框中,其标题是( )
A. 请输入
B. 学生成绩
C. 100
D. 无
6. Python中幂运算(指数运算)的运算符为( )。
A. * B. ** C. % D. //
7. 有如下 Visual Basic 程序段:
s= 0
For i = 1 To 5
s = s + i
Next i
If i <= 5 Then
Text1.Text = Str(s)
Else
Text1.Text = Str(s + i)
End If
该程序段运行后,在文本框Text1中显示的是
A. 5 B. 6 C. 15 D. 21
8. 在 VB 中,窗体加载的事件处理过程名为( )
A Form_Click B. Form_DblClick
C. Form_Load D. Form_Change
9. 有以下 VB 程序段
For i = 1 To 3
For j = 1 to 10
If j Mod i = 0 Then
a(j) = 1 – a(j)
Next j
Next i
sum = 0
For i = 1 To 10
sum = sum + a(i)
Next i
已知数组 a 的所有元素初值均为 0,运行上述程序段后,变量 sum 的值是( )
A. 2 B. 3 C. 4 D. 5
10. 给定一个n正整数(n<=20),根据设定的保留位数,舍去一部分数字,剩下的数字按原次序组成一个最大的新数。例如原数36835132,保留4位,最大数为6532。在文本框Text1输入原数,文本框Text2中输入保留的位数,文本框Text3中输出删除后的最大数。实现上述功能的部分VB代码如下∶
Dim a(1 To 20)As String,ys As String,xs As String
Dim k As Integer,h As Integer,n As Integer,i As Integer,j As Integer
ys=Text1.Text:k=Val(Text2.Text)
n=Len(ys):h=1
For i=1 To n
a(i)=mid(ys,i,1)
Next i
For i=1 To k
For j = h To ①
If a(j) > a(h) Then ②
Next j
xs=xs + a(h)
h=h + 1
Next i
Text3.Text=xs
上述程序中划线处可选语句为( )
①n-k+i ②i+k ③n-k+1 ④j=h ⑤h=j
则①②处语句依次是
A. ③⑤ B. ①⑤ C. ①④ D. ②⑤
11. 以下程序的功能是( )
dim X AS double
X=inputbox(“x=”)
if X<0 then
X=-X
endif
print X
A. 输入X,输出X的相反数 B. 输入X,输出X的绝对值
C. 输入X,输出X的平方根 D. 输入X,判断其是否小于0,并输出X
12. 代数式对应的Visual Basic表达式是( )
A. (5x-4*y)/7z+x*x
B. (5x-4*y)/(7z+x*x)
C. (5*x-4*y)/(7*z+x*x)
D. 5*x-4*y/7z+x*x
13. 十进制数29转换为十六进制数为( )
A. 10111 B. 17 C. 1D D. 1E
14. 能通俗易懂地描述算法,但容易出现“歧义性”的是( )
A. 自然语言 B. 流程图 C. QBASIC语言 D. Pascal语言
15. 有如下 VB 程序段:
i=1
Do while i<=6
a(i) = Int(Rnd * 10) + 1
If a(i) Mod 2 = 1 Then
a(i) =a(i) – 1
ElseIf i Mod 2 = 0 Then
a(i) = a(i) + a(i - 1)
End If
i=i+1
Loop
最终a数组各元素的值可能是( )
A. 8,14,9,6,2,12 B. 2,4,10,19,9,10
C. 8,12,0,11,2,10 D. 6,12,0,10,4,8
16. 以下流程图符号中,用于放置赋值语句对变量赋值的框图符号是( )。
A. B. C. D.
17. 程序有三种基本结构,下列不属于这种基本结构的是( )
A. 循环结构 B. 树形结构 C. 顺序结构 D. 选择结构
18. 列表a中存入的数据如下,现要在列表中查找数据”zhang”,以下说法正确的是( )
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
Gong
cheng
fan
huang
ni
song
zhang
A. 对分查找的效率总是优于顺序查找
B. 若进行对分查找,依次被比较数据是“huang”“ni”“song”“zhang”
C. 因为这批数据是无序的,故只能用顺序查找的方式
D. 若进行对分查找,依次被比较的数据是“huang”“song”“zhang”
19. 运行程序时,Text1. text=“”语句会被自动执行,可以将该语句嵌入的过程是( )
A. Command1_click B. Form_load C. Text1_click D. Timer1_timer
20. 实现计算器上xy运算处理的算法部分流程图如图所示:
下列说法正确的是( )
A. 框图①中该填入的是f←x*j
B. 框图①中该填入的是f←f*j
C. j←j+1被执行了x次
D. j←j+1被执行了y次
21. 在以下数组a中,采用对分查找思想查找数据"19",则以下说法正确的是( )。
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
a[7]
a[8]
2
3
5
9
19
23
29
35
A. 如果查找数据元素不存在,则查找无法进行
B. 第1次就查找到了该数据元素
C. 查找过程中,共需要比较4次
D. 第2次查找到数据是"23"
22. 计算机程序设计语言的发展所经历的主要阶段依次为下列哪个选项。( )
A. 机器语言、汇编语言和高级语言 B. 汇编语言、机器语言和高级语言
C. 高级语言、汇编语言和机器语言 D. 机器语言、高级语言和汇编语言
23. 报名参加跳远比赛的某5位同学的编号为5,11,25,36,50,利用二分查找法查找36号同学的过程中,依次被访问到的编号为( )
A. 5,11,25,36 B. 25,36 C. 11,36 D. 11,25,36
24. 当a=123:b=Str(a),则( )
A. a和b均是字符型变量
B. a是字符型变量,b是数值型变量
C. a是数值型变量,b是字符型变量
D. a和b均是数值型变量
25. 有如下VB 程序段:
Private Sub Commandl_Click()
Dim d(l To 6) As Integer
Dim t As Integer
d(1)=35:d(2)=18:d(3)=63:d(4)=5:d(5)=85:d(6)=47
For i=1 To 3
For j=i+1 To 6
If d(j)<d(j-1) Then
t=d(j):d(j)=d(j-1):d(j-1)=t
End If
Next j
Textl.Text=Str(d(i))+Text1.Text
Next i
End Sub .
执行该程序段后,文本框 Textl输出的内容是 ( )
A. 47 63 85 B. 35 5 18 C. 85 63 47 D. 18 5 35
26. 某算法的部分流程图如图所示,以下说法正确的是( )
A. 该流程执行后,变量k的值是1
B. 该流程执行后,变量a的值是16
C. 该流程用于计算并输出1+8-16的值
D. 该流程完整执行1次,“a<32?”共执行了4次
27. 有如下VB程序段,执行该程序段后,a(1) 到a(6)各元素的值可能为( )
Randomize
For i=1 To 6
a(i) = Int(Rnd*21) *2+11
If I Mod 2=1 Then
a(i) = a(i) +2
Else
If a(i)<a(i-1)Then a(i)=a(i一1)
End If
Next i
A. 13, 15, 25, 37, 23, 54 B. 16, 44, 23, 51, 22, 22
C. 19, 37, 23, 45, 53, 53 D. 13,37, 11, 45, 33, 51
28. 某电子设备的电路板上有一个4位的“跳板开关”,此开关每一位都只有“打开”和“闭合”两种状态,这个“跳板开关”最多可以表示的状态数是( )
A. 16 B. 8 C. 12 D. 24
29. 计算机能够直接识别和执行的程序设计语言是( )。
A. 低级语言 B. 汇编语言 C. 机器语言 D. 高级语言
30. 以下函数运算中结果不是5的是( )
A. Int(-5.0) B. Abs(-5) C. Sqr(25) D. Len(“20201”)
31. 在VB中,下列程序段执行后,变量a的值是( )
a=2,b=3
a=a+b
b=b-a
a=a+b
A. 3 B. 4 C. 5 D. 6
32. 统计1~1000间个位数是4,且能被9整除的数共有多少个,可以采用的算法是( )
A. 查找算法 B. 枚举算法
C. 解析算法 D. 排序算法
33. 三个正整数a、b、c满足等式a2+b2=c2,a、b、c称为“勾股数”,求出100以内所有“勾股数”可采用的算法是( )
A. 枚举算法 B. 解析算法 C. 冒泡排序 D. 顺序查找
34. 若整型变量a的值为2,b的值为3,则下列程序段执行后整型变量c的值为( )。
if a>5 then
if b<4 then c=a-b else c=b-a
else
if b>3 then c=a*b else c=a mod b
end if
A. 2 B. -1 C. 1 D. 6
35. 以下程序用于求解最后出列的人的序号。游戏规则如下:有10个人围成一圈,从第一个开始报数,数到M的人将被淘汰,从圈内下一个人从1开始重新报数。
Dim a(1 To 10)As Boolean 'a(i)表示编号为i的人是否已经出列
m = Val(Text1 Text)
cnt = 0:i = 0:ans =0
Do While (1) '当所有人都出列时停止
i = i+1 '枚举圈内所有人
If (2) Then i = 1
If not a(i) Then k = k+ 1
If k=m Then '数到m的人出列
(3)
cnt = cnt +1
k=0
if cnt = 10 then ans = i
End If
Loop
Text2. text ="最后出列的人是:"+ str (ans)
填空处的代码可由以下部分组成:( )
①i<10 ②i=11 ③a(i)=true
④cnt<10 ⑤i=10 ⑥a(i)=false
A. ①②③ B. ①⑤⑥ C. ④②③ D. ④⑤⑥
36. 反转字符串,如输入字符串为“123ABCD”,则输出字符串为“DCBA321”。部分程序如下所示,划线处的正确语句是( )
s=Text1.Text:n=Len(s):i=1
’按变量s中字符顺序从左到右依次存入字符串数组a中,代码略
Do While I < n
t=a(i)
For j= I + 1 To n
①
Next j
a(j-1)=t
②
Loop
For i = 1 To lean(s)
Texts2.Text = Texts2.Text + a(i)
Next i
A. ①a(j+1)=a(j) ②n=n-1 B. ①a(j)=a(j+1) ②n=n+1
C. ①a(j-1)=a(j) ②n=n-1 D. ①a(j-1)=a(j) ②n=n+1
37. 将无序数据“8,23,4,16,77,-5,53,100”按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换( )次
A. 4 B. 5 C. 6 D. 7
38. 以下不属于高级编程语言的是( )
A. C B. PS C. Python D. C#
39. 某对分查找算法的VB程序如下:
key=________
i = 1: j = 10
Do While i <= j
m = (i + j) \ 2
If a(m) < Key Then
i = m + 1: n = n + 1
Else
j = m - 1: n = n - 1
End If
Loop
数组元素a(1)到a(10)的值依次是“2,2,4,6,9,15,15,20,25,30”若n值为2,则key的值可能为( )
A. 6或16 B. 5或 8 C. 10或15 D. 17或29
40. 下列给出的赋值语句中正确的是( )
A. B. C. D.
二、填空题(共20分)
41. 有一个报数游戏, n个人排成一圈,游戏开始时规定一个报数号m,然后从其中一个人开始按顺时针报数1,2,3……n,当某人报到的数为m的倍数时,即被淘汰,其他人继续游戏,直到最后。现用VB设计了一个程序,程序界面如下图所示。在文本框Text1中输入参加游戏的人数n,在文本框Text2中输入报数号m,单击“报数”按钮,即在列表框List1中显示每次被淘汰的人的顺序号。
实现上述功能的VB代码如下,但加框处有错,请改正。
Private Sub Command1_Click()
Dim n As Integer, m As Integer
Dim a(1 To 50) As Integer
n = Val(Text1.Text)
m = Val(Text2.Text)
For i = 1 To n
'(1)
Next i
s = 0:j = 0
Do While s < n
t = 0
Do While t < m
'(2)
t = t + a(j)
Loop
a(j) = 0
s = s + 1
List1.AddItem "第" + Str(s) + "次:" + Str(j)
Loop
End Sub
42. 数学中的“自守数”:如果一个数的平方数的末几位等于该数本身,这个数就是自守数。例如:
5*5=25
6*6=36
25*25=625
76*76=5776
……
那么,5、6、25、76 等数被称为自守数。小袁编写一个 VB 程序,实现如下功能:找出 10000 以内所有可能的自守数,单击“统计”按钮 Command1,将符合要求的自守数显示在列表框 List1 中,统计个数显 示在标签 Label1 中,运行界面如图所示。
(1)程序运行时要在按钮上显示“统计”,应设置该按钮的________属性。
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim n As Single, k As Integer, t As Integer, c As Integer
List1.Clear c=0
For n = 5 To 10000
k = Len(Trim(n)) 'Trim()函数用于删除字符串前后的空格
t = (n * n) Mod ① _
If t = n Then
List1.AddItem Str(n)
②
End If
Next n
Label1.Caption = "自守个数为:" + Str(c)
End Sub
为实现上述功能,划线处应填入的代码分别为
①__________________________________________ 。
②___________________________________________。
(3)解决该问题采用了_______(选填:枚举/解析)算法。
43. 在通过VB设计“BMI指数”的程序中,王明将变量BZ赋值给Text2.text输出,相应的代码是_____________ 。
44. 有一Access数据库“school.accdb” 存放在f:\2015mt\vb文件夹中,其中的“student”数据表用来存储学生的基本情况信息,包括学号(num)、姓名(name)、性别(sex)、分数(score),括号内的为对应字段名。下列VB程序用来实现根据学号查询并显示学生信息,运行界面如下图所示。在文本框Text1中输入学生的学号,单击“查询”,在文本框Text2、Text3、Text4中分别显示学生姓名、性别、分数。
Private Sub Command1_Click()
Dim adocn As New adodb.Connection
Dim adors As New adodb.Recordset
Dim str2 As String, str1 As String
str1 = "Provider="Microsoft.ACE.OLEDB.12.0;data" source=f:\2015mt\vb\_____________"
adocn.Open str1
str2 = "select * from students where num=" + Text1.Text
adors.Open str2, adocn, adOpenDynamic, adLockOptimistic
If adors.EOF =" True" Then
MsgBox "你输入的学号不存在"
Else
Text2.Text = adors.Fields("name").Value
Text3.Text = adors.Fields("sex").Value
______________________________________
End If
adors.Close
adocn.Close
End Sub
45. 数组a中有8个数据已按升序排列。
a(1)
a(2)
a(3)
a(4)
a(5)
a(6)
a(7)
a(8)
17
22
33
34
41
46
61
85
如果采用对分查找法查找数字77,则第一次查找的数组元素是_____,经过_______次查找后得到结果。
46. 阅读程序段并回答问题。
x=1
a=x
b=x+1
上述程序执行后,变量a的值是___________,变量b的值是___________。
47. 代数式的VB表达式为__________________ 。
48. 有如下VB程序段
a=12
b=54
a=b
b=a
该程序段运行后,a,b的值分别为__________、__________,该程序结构属于__________结构(选填:顺序、选择、循环)。
49. 以下VB代码存在一个语法错误:
行号 语句
dim price as double
②price=inputbox("请输入价格")
③ if price>=500
④ price=price*0.95
⑤ end if
⑥ print price
错误语句在_________行。
正确语句为_____________。
50. UNLOAD.ME 的含义是卸载( ).
第1页/共1页
学科网(北京)股份有限公司
$
2023-2024学年高一下学期期末考试
信息技术试卷
考试时间:75分钟 满分100分
一、选择题(共40题,每题2分,共80分)
1. 下表记录了6个数据的排序过程。分析表中数据可知,该排序采用的算法与排序方式分别为( )
A. 冒泡排序,降序 B. 选择排序,降序
C. 冒泡排序,升序 D. 选择排序,升序
【答案】C
【解析】
【详解】本题考查的是冒泡排序算法。由表中原始数据与第1遍排序后的数据对比不难发现,原始数据中最小的数据移动到了第1位,同时其他数的前后顺序不变,根据冒泡排序的特点可知,此排序是冒泡排序,而每一遍排序将最小数据移动到本次排序数据的前面,因而判断为升序。故选项C正确。
2. 某算法的流程图如图所示,执行该算法,输出的值为( )
A. 2 B. 6 C. 8 D. 19
【答案】C
【解析】
【详解】本题主要考查流程图表示的算法。变量s的值依次为2386、238、23、2、0,对应t的值依次为6、8、3、2,从选择结构功能来看,找余数的最大值,并把最大值赋给k,因此最终k的值为8。
3. 在 Visual Basic中,若x表示能被5整除的正整数,则下列逻辑表达式的值一定为真的是( )。
A. x/5=0 B. x Mod 5=0 C. Int(x/5)=0 D. 5 Mod x=0
【答案】B
【解析】
【详解】本题考查的知识点是算数运算符的应用。x表示能被5整除的正整数,即x是5的倍数,所以x Mod 5=0一定为true。若x的值不为0,则x/5,Int(x/5)结果都不为0。当x值为0时,5 Mod x不成立,也不存在结果为0。故正确答案为B选项。
4 有如下VB程序段:
For i=1 To 9
For j=10 To i+2 Step-1
If a(j)<a(j-2) Then
t=a(j):8(j)=a(j-2):a (j-2)=t
End If
Next j
Next i
数组元素a(1)到a(10)的值依次为“3,17,2,14,15,6,7,18,9,4”,执行该程序段后,数组元素a(8)中的值为( )
A. 3 B. 4 C. 15 D. 17
【答案】D
【解析】
【详解】本题考查的知识点是算法及程序实现。此算法跟冒泡排序相似,比较的并不是相邻两数,面是隔一数的比较,最后的结果也并不是全部排序的结果。经过分解可知,i=4的时候已经没有交换,此时的结果已经是最后的结果。故正确答案为D选项。
a( 1)
a(2)
a(3)
a(4)
a(5)
a(6)
A(7)
a(8)
a(9)
a(10)
3
17
2
14
15
6
7
18
9
4
i=1
2
4
3
17
7
14
15
6
9
18
i=2
2
4
3
6
7
17
9
14
15
18
i=3
2
4
3
6
7
14
9
17
15
18
i=4
2
4
3
6
7
14
9
17
15
18
5. INPUTBOX(“请输入”,“学生成绩”,80)函数弹出的对话框中,其标题是( )
A. 请输入
B. 学生成绩
C. 100
D. 无
【答案】B
【解析】
【详解】本题主要考查VB数据的输入。INPUTBOX函数用于数据的输入,格式:INPUTBOX(提示文本,标题,输入框文本),因此INPUTBOX(“请输入”,“学生成绩”,80)函数弹出的对话框中,其标题是学生成绩,故本题选B选项。
6. Python中幂运算(指数运算)的运算符为( )。
A. * B. ** C. % D. //
【答案】B
【解析】
【详解】本题主要考查Python的运算。Python中幂运算(指数运算)的运算符为**,故本题选B选项。
7. 有如下 Visual Basic 程序段:
s= 0
For i = 1 To 5
s = s + i
Next i
If i <= 5 Then
Text1Text = Str(s)
Else
Text1.Text = Str(s + i)
End If
该程序段运行后,在文本框Text1中显示的是
A. 5 B. 6 C. 15 D. 21
【答案】D
【解析】
【详解】本题主要考查VB程序的执行。第一个for循环执行完,s=s+i=0+1+2+3+4+5=15,循环完后i=6,不满足i<=5,执行Str(s+i)=Str(21)="21",故该程序段运行后,在文本框Text1中显示的是21,故本题选D选项。
8. 在 VB 中,窗体加载的事件处理过程名为( )
A. Form_Click B. Form_DblClick
C. Form_Load D. Form_Change
【答案】C
【解析】
【详解】本题主要考查VB事件处理过程名的描述。在 VB 中,窗体加载的事件处理过程名为Form_Load,Form_Click为单击事件处理过程名,Form_DblClick为双击事件处理过程名,Form_Change是文本框内容发生变化时的事件处理过程名,故本题选C选项。
9. 有以下 VB 程序段
For i = 1 To 3
For j = 1 to 10
If j Mod i = 0 Then
a(j) = 1 – a(j)
Next j
Next i
sum = 0
For i = 1 To 10
sum = sum + a(i)
Next i
已知数组 a 的所有元素初值均为 0,运行上述程序段后,变量 sum 的值是( )
A. 2 B. 3 C. 4 D. 5
【答案】C
【解析】
【详解】本题主要考查VB程序的执行。i=1时,a(1)到a(10)均等于1;i等于2时,a(2)=0,a(4)=0,a(6)=0,a(8)=0,a(10)=0,;i等于3时,a(3)=0,a(6)=1,a(9)=0,故程序结束后,sum=1+0+0+0+1+1+1+0+0+0=4,故本题选C选项。
10. 给定一个n正整数(n<=20),根据设定的保留位数,舍去一部分数字,剩下的数字按原次序组成一个最大的新数。例如原数36835132,保留4位,最大数为6532。在文本框Text1输入原数,文本框Text2中输入保留的位数,文本框Text3中输出删除后的最大数。实现上述功能的部分VB代码如下∶
Dim a(1 To 20)As String,ys As String,xs As String
Dim k As Integer,h As Integer,n As Integer,i As Integer,j As Integer
ys=Text1.Text:k=Val(Text2.Text)
n=Len(ys):h=1
For i=1 To n
a(i)=mid(ys,i,1)
Next i
For i=1 To k
For j = h To ①
If a(j) > a(h) Then ②
Next j
xs=xs + a(h)
h=h + 1
Next i
Text3Text=xs
上述程序中划线处可选语句为( )
①n-k+i ②i+k ③n-k+1 ④j=h ⑤h=j
则①②处语句依次是
A. ③⑤ B. ①⑤ C. ①④ D. ②⑤
【答案】B
【解析】
【详解】本题主要考查VB程序的执行与调试。第二个嵌套for循环实现将保留的k个数,逐个对比找出最大的数加到字符变量xs中,外层循环变量i的范围是从1到k,故内层循环变量j的范围从h到n-k+i(在保留的n-k个值中进行比较,当外层循环是i时,则内层循环的最后一位是n-k+i),如果a(j)>a(h),则更新h的值(即将最大值赋给a(h)),故①②处语句依次是①n-k+i ⑤h=j,故本题选B选项。
11. 以下程序的功能是( )
dim X AS double
X=inputbox(“x=”)
if X<0 then
X=-X
endif
print X
A. 输入X,输出X的相反数 B. 输入X,输出X的绝对值
C. 输入X,输出X的平方根 D. 输入X,判断其是否小于0,并输出X
【答案】B
【解析】
【详解】本题主要考查VB程序的调试。分析程序,当X小于0时,X=-X,若X>=0,直接输出X,故程序的功能是输入X,输出X的绝对值,故本题选D选项。
12. 代数式对应的Visual Basic表达式是( )
A. (5x-4*y)/7z+x*x
B. (5x-4*y)/(7z+x*x)
C. (5*x-4*y)/(7*z+x*x)
D. 5*x-4*y/7z+x*x
【答案】C
【解析】
【详解】
13. 十进制数29转换为十六进制数为( )
A. 10111 B. 17 C. 1D D. 1E
【答案】C
【解析】
【详解】本题考查数制转换相关内容。29D=0001 1101B=1DH,故本题答案是C选项。
14. 能通俗易懂地描述算法,但容易出现“歧义性”的是( )
A. 自然语言 B. 流程图 C. QBASIC语言 D. Pascal语言
【答案】A
【解析】
【详解】
15. 有如下 VB 程序段:
i=1
Do while i<=6
a(i) = Int(Rnd * 10) + 1
If a(i) Mod 2 = 1 Then
a(i) =a(i) – 1
ElseIf i Mod 2 = 0 Then
a(i) = a(i) + a(i - 1)
End If
i=i+1
Loop
最终a数组各元素的值可能是( )
A. 8,14,9,6,2,12 B. 2,4,10,19,9,10
C. 8,12,0,11,2,10 D. 6,12,0,10,4,8
【答案】D
【解析】
【详解】本题考查的是VB综合应用。Int(Rnd * 10) + 1是产生[1,10]的整数。由程序的IF 和ElseIf中的语句,可知数组a中的数据都为偶数。故选项D正确。
16. 以下流程图符号中,用于放置赋值语句对变量赋值的框图符号是( )。
A. B. C. D.
【答案】A
【解析】
【详解】
17. 程序有三种基本结构,下列不属于这种基本结构的是( )
A. 循环结构 B. 树形结构 C. 顺序结构 D. 选择结构
【答案】B
【解析】
【详解】本题考查程序的三种基本结构。程序的三种基本结构为:顺序结构,选择结构,循环结构,选项ACD正确,故不选。树形结构不属于程序的三种基本结构,故答案应选B选项。
18. 列表a中存入的数据如下,现要在列表中查找数据”zhang”,以下说法正确的是( )
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
Gong
cheng
fan
huang
ni
song
zhang
A. 对分查找的效率总是优于顺序查找
B. 若进行对分查找,依次被比较的数据是“huang”“ni”“song”“zhang”
C. 因为这批数据是无序的,故只能用顺序查找的方式
D. 若进行对分查找,依次被比较的数据是“huang”“song”“zhang”
【答案】D
【解析】
【详解】本题考查数据结构。A选项错误,在有序数组中,对分查找的效率在大多数情况下优于顺序查找。但当要查找的数据位于数组的开头或接近开头时,顺序查找可能更快。B选项错误,D选项正确,若进行对分查找,首先要找的区间为a[0]-a[6],即取中间的元素“huang”,由于“huang”<“zhang”,因此下一个要找的区间为a[4]-a[6],即下一个要比较多数据为“song”,由于“song”<“zhang”,因此下一个要找的区间为a[6]-a[6],此时“zhang”=“zhang”。C选项错误,由于字符串也是可以比较的,并且这批数据按照首字母的ASCII值是有序的,因此可以使用对分查找的方式。故答案为:D。
19. 运行程序时,Text1. text=“”语句会被自动执行,可以将该语句嵌入的过程是( )
A. Command1_click B. Form_load C. Text1_click D. Timer1_timer
【答案】B
【解析】
【详解】本题考查VB编程基础。运行程序时,Text1. text=“”语句会被自动执行,可以将该语句嵌入的过程是Form_load,不影响Text1. Text数据的读入,选项B正确。如果放入过程Command1_click会导致Text1. Text数据无法自动执行,选项A错误。放入过程Text1_click,代码无法自动执行,选项C错误。Timer1_timer是控制时间的,选项D错误。
20. 实现计算器上xy运算处理的算法部分流程图如图所示:
下列说法正确的是( )
A. 框图①中该填入的是f←x*j
B. 框图①中该填入的是f←f*j
C. j←j+1被执行了x次
D. j←j+1被执行了y次
【答案】D
【解析】
【详解】考核算法中流程图相关知识。此流程图为循环结构,考核学生对循环次数和循环语句的掌握。
21. 在以下数组a中,采用对分查找思想查找数据"19",则以下说法正确的是( )。
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
a[7]
a[8]
2
3
5
9
19
23
29
35
A. 如果查找的数据元素不存在,则查找无法进行
B. 第1次就查找到了该数据元素
C. 查找过程中,共需要比较4次
D. 第2次查找到的数据是"23"
【答案】D
【解析】
【详解】本题考查查找算法。根据查找算法思想,如果查找的数据元素不存在,仍然可以进行查找。第1次i=1,j=8,m=4,查找访问a(4)和查找的数不相等。第2次,i=5,j=8,m=6,查找到的数据是a(6)=23,故本题选项D的说法正确。
22. 计算机程序设计语言发展所经历的主要阶段依次为下列哪个选项。( )
A. 机器语言、汇编语言和高级语言 B. 汇编语言、机器语言和高级语言
C. 高级语言、汇编语言和机器语言 D. 机器语言、高级语言和汇编语言
【答案】A
【解析】
【详解】本题主要考查程序设计语言的发展。计算机程序设计语言的发展所经历的主要阶段依次为机器语言、汇编语言和高级语言,故本题选A选项。
23. 报名参加跳远比赛的某5位同学的编号为5,11,25,36,50,利用二分查找法查找36号同学的过程中,依次被访问到的编号为( )
A. 5,11,25,36 B. 25,36 C. 11,36 D. 11,25,36
【答案】B
【解析】
【详解】本题考查二分查找相关内容。设i=1,j=5,第一次查找m=(1+5)//2=3,a(3)=25<36,i=m+1=4;第二次循环,m=(4+5)//2=4,a(4)=36,查找成功,结束查找。故依次被访问到编号是25、36,故本题答案是B选项。
24. 当a=123:b=Str(a),则( )
A. a和b均是字符型变量
B. a是字符型变量,b是数值型变量
C. a是数值型变量,b是字符型变量
D. a和b均是数值型变量
【答案】C
【解析】
【详解】本题考查数据类型。根据a=123毫无疑问可以确定a数值型变量,Str函数将数字型变量改变成了字符型变量,因此其返回值类型为字符型,即b是字符型变量.故选:C。
25. 有如下VB 程序段:
Private Sub Commandl_Click()
Dim d(l To 6) As Integer
Dim t As Integer
d(1)=35:d(2)=18:d(3)=63:d(4)=5:d(5)=85:d(6)=47
For i=1 To 3
For j=i+1 To 6
If d(j)<d(j-1) Then
t=d(j):d(j)=d(j-1):d(j-1)=t
End If
Next j
Textl.Text=Str(d(i))+Text1.Text
Next i
End Sub .
执行该程序段后,文本框 Textl输出的内容是 ( )
A. 47 63 85 B. 35 5 18 C. 85 63 47 D. 18 5 35
【答案】B
【解析】
【详解】本题考查VB冒泡排序算法。首先由i的范围确定排序趟数为3;然后看j的范围确定是从前往后排序,接着由判断条件“If d(j)<d(j―1)”可知,是升序排序。再看输出语句“Textl.Text=Str(d(i))+Text1.Text”可知,是后面出来的数字排在前面,即倒着输出,把六个数据代入,进行排序,可知结果为“35 5 18”,选项B正确。
26. 某算法的部分流程图如图所示,以下说法正确的是( )
A. 该流程执行后,变量k的值是1
B. 该流程执行后,变量a的值是16
C. 该流程用于计算并输出1+8-16的值
D. 该流程完整执行1次,“a<32?”共执行了4次
【答案】A
【解析】
【详解】本题考查的是流程图相关知识。根据流程图可知,该流程完整执行1次,“a<32?”共执行了3次,判断框下的处理框共执行了2次,最后k=1,s=1+1*8+0*16,a=32,故选项BCD错误,因此A选项正确。
27. 有如下VB程序段,执行该程序段后,a(1) 到a(6)各元素的值可能为( )
Randomize
For i=1 To 6
a(i) = Int(Rnd*21) *2+11
If I Mod 2=1 Then
a(i) = a(i) +2
Else
If a(i)<a(i-1)Then a(i)=a(i一1)
End If
Next i
A. 13, 15, 25, 37, 23, 54 B. 16, 44, 23, 51, 22, 22
C. 19, 37, 23, 45, 53, 53 D. 13,37, 11, 45, 33, 51
【答案】C
【解析】
【详解】本题考查VB程序段。根据a(i)=Int(Rnd*21)*2+11,a数组是[11,51]之间的奇数,并且一定执行a(i)=a(i)+2,那么a数组是[13,53]之间的奇数,故本题选C。
28. 某电子设备的电路板上有一个4位的“跳板开关”,此开关每一位都只有“打开”和“闭合”两种状态,这个“跳板开关”最多可以表示的状态数是( )
A. 16 B. 8 C. 12 D. 24
【答案】A
【解析】
【详解】这个题目和前面的5个灯可以表达多少种状态时一个类型,根据排列组合,是2的4次方种。用二进制表达就是:0000…0001…0010……1111.
29. 计算机能够直接识别和执行的程序设计语言是( )。
A. 低级语言 B. 汇编语言 C. 机器语言 D. 高级语言
【答案】C
【解析】
【详解】本题考查的是程序语言。程序设计语言可以分为:机器语言、汇编语言(低级语言)、高级语言。机器语言是由二进制 0、1 代码指令构成,能够被计算机直接识别和执行。汇编语言指令是机器指令的符号化,与机器指令存在着直接的对应关系。高级语言是面向用户的、基本上独立于计算机种类和结构的语言。故选项C正确。
30. 以下函数运算中结果不是5的是( )
A. Int(-5.0) B. Abs(-5) C. Sqr(25) D. Len(“20201”)
【答案】A
【解析】
【详解】本题考查的知识点是VB函数的应用。A选项:Int()是数值取整函数,Int(-5.0)=-5;B选项:Abs()是计算数值绝对值函数,Abs(-5)=5;C选项:Sqr()是计算数值平方根函数,Sqr(25)=5;D选项:Len()是计算字符串长度函数,Len(“20201”)=5。选择运算结果不是5的一项,故正确答案为A选项。
31. 在VB中,下列程序段执行后,变量a的值是( )
a=2,b=3
a=a+b
b=b-a
a=a+b
A. 3 B. 4 C. 5 D. 6
【答案】A
【解析】
【详解】本题主要考查VB程序的执行。a=2,b=3,a=a+b=5,b=b-a=3-5=-2,a=a+b=5-2=3,故本题选A选项。
32. 统计1~1000间个位数是4,且能被9整除的数共有多少个,可以采用的算法是( )
A. 查找算法 B. 枚举算法
C. 解析算法 D. 排序算法
【答案】B
【解析】
【详解】本题主要考查枚举算法的应用。统计1~1000间个位数是4,且能被9整除的数共有多少个,可以采用的算法是枚举算法,穷尽所有可能的数,故本题选B选项。
33. 三个正整数a、b、c满足等式a2+b2=c2,a、b、c称为“勾股数”,求出100以内所有“勾股数”可采用的算法是( )
A. 枚举算法 B. 解析算法 C. 冒泡排序 D. 顺序查找
【答案】A
【解析】
【详解】
34. 若整型变量a的值为2,b的值为3,则下列程序段执行后整型变量c的值为( )。
if a>5 then
if b<4 then c=a-b else c=b-a
else
if b>3 then c=a*b else c=a mod b
end if
A. 2 B. -1 C. 1 D. 6
【答案】A
【解析】
【详解】本题主要考查if条件的嵌套。a=2,b=3,不满足a>5,执行else部分,不满足b>3,执行c=a mod b=2,故程序段执行后整型变量c的值为2,故本题选A选项。
35. 以下程序用于求解最后出列的人的序号。游戏规则如下:有10个人围成一圈,从第一个开始报数,数到M的人将被淘汰,从圈内下一个人从1开始重新报数。
Dim a(1 To 10)As Boolean 'a(i)表示编号为i的人是否已经出列
m = Val(Text1 Text)
cnt = 0:i = 0:ans =0
Do While (1) '当所有人都出列时停止
i = i+1 '枚举圈内所有人
If (2) Then i = 1
If not a(i) Then k = k+ 1
If k=m Then '数到m的人出列
(3)
cnt = cnt +1
k=0
if cnt = 10 then ans = i
End If
Loop
Text2. text ="最后出列的人是:"+ str (ans)
填空处的代码可由以下部分组成:( )
①i<10 ②i=11 ③a(i)=true
④cnt<10 ⑤i=10 ⑥a(i)=false
A. ①②③ B. ①⑤⑥ C. ④②③ D. ④⑤⑥
【答案】C
【解析】
【详解】本题考查的是VB循环、选择语句。阅读程序可知,cnt表示出列人数,故(1)处选④;i是人的编号,10个人围成一圈,报完一圈后i=10,当i=11时,实际上回到第一个人,故(2)选②;a(i)表示编号为i的人是否已经出列,由前面not a(i),可以推出出列应是a(i值为真,故(3)应选③,选项C正确。
36. 反转字符串,如输入字符串为“123ABCD”,则输出字符串为“DCBA321”。部分程序如下所示,划线处的正确语句是( )
s=Text1.Text:n=Len(s):i=1
’按变量s中字符顺序从左到右依次存入字符串数组a中,代码略
Do While I < n
t=a(i)
For j= I + 1 To n
①
Next j
a(j-1)=t
②
Loop
For i = 1 To lean(s)
Texts2.Text = Texts2.Text + a(i)
Next i
A. ①a(j+1)=a(j) ②n=n-1 B. ①a(j)=a(j+1) ②n=n+1
C. ①a(j-1)=a(j) ②n=n-1 D. ①a(j-1)=a(j) ②n=n+1
【答案】C
【解析】
【详解】本题考查的是VB循环语句。阅读程序,该程序思想是:将第1个字符取出,后将后面的字符逐位往前移,最后把将第1个字符给后面a(n);将第1个字符取出,后将后面的字符逐位往前移,最后把将第1个字符给后面a(n-1),依次类推;由For j= I + 1 To n可知①要a(j-1)=a(j);②中要为下一个字符移位准备,应为n=n-1。故选项C正确。
37. 将无序数据“8,23,4,16,77,-5,53,100”按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换( )次
A. 4 B. 5 C. 6 D. 7
【答案】B
【解析】
【详解】本题考查的是排序。选择排序交换次数较小。第一遍:交换8和100,交换后:100,23,4,16,77,-5,53,8;第二遍:77和23交换,交换后:100,77,4,16,23,-5,53,8;第三遍:53和4交换,交换后:100,77,53,16,23,-5,4,8;第四遍:23和16交换,交换后:100,77,53,23,16,-5,4,8;第五遍:8和-5交换,交换后:100,77,53,23,16,8,4,-5。数组已经有序,故最少需要交换5次,选项B正确。
38. 以下不属于高级编程语言的是( )
A. C B. PS C. Python D. C#
【答案】B
【解析】
【详解】本题主要考查程序设计语言。C语言、Python、Java、C#均属于高级编程语言,PS是应用软件,即Photoshop,故本题选B选项。
39. 某对分查找算法的VB程序如下:
key=________
i = 1: j = 10
Do While i <= j
m = (i + j) \ 2
If a(m) < Key Then
i = m + 1: n = n + 1
Else
j = m - 1: n = n - 1
End If
Loop
数组元素a(1)到a(10)的值依次是“2,2,4,6,9,15,15,20,25,30”若n值为2,则key的值可能为( )
A. 6或16 B. 5或 8 C. 10或15 D. 17或29
【答案】D
【解析】
【详解】本题主要考查对分查找算法。对分查找用二叉树表示如下,查找右子树n递增,查找左子树n递减,结合选项可知key的值可能为17或29,故本题选D选项。
40. 下列给出的赋值语句中正确的是( )
A. B. C. D.
【答案】B
【解析】
【详解】
二、填空题(共20分)
41. 有一个报数游戏, n个人排成一圈,游戏开始时规定一个报数号m,然后从其中一个人开始按顺时针报数1,2,3……n,当某人报到的数为m的倍数时,即被淘汰,其他人继续游戏,直到最后。现用VB设计了一个程序,程序界面如下图所示。在文本框Text1中输入参加游戏的人数n,在文本框Text2中输入报数号m,单击“报数”按钮,即在列表框List1中显示每次被淘汰的人的顺序号。
实现上述功能的VB代码如下,但加框处有错,请改正。
Private Sub Command1_Click()
Dim n As Integer, m As Integer
Dim a(1 To 50) As Integer
n = Val(Text1.Text)
m = Val(Text2.Text)
For i = 1 To n
'(1)
Next i
s = 0:j = 0
Do While s < n
t = 0
Do While t < m
'(2)
t = t + a(j)
Loop
a(j) = 0
s = s + 1
List1.AddItem "第" + Str(s) + "次:" + Str(j)
Loop
End Sub
【答案】(1)a(i)=1
(2)j=j Mod n +1
【解析】
【详解】(1)在游戏开始前,每个人都可能是起点,故都应该初始化为1,故为:a(i)=1;
(2)由于每一轮循环后都会淘汰一些人,故而序号不是连续递增的,故而要用:j=j Mod n+1
42. 数学中的“自守数”:如果一个数的平方数的末几位等于该数本身,这个数就是自守数。例如:
5*5=25
6*6=36
25*25=625
76*76=5776
……
那么,5、6、25、76 等数被称为自守数。小袁编写一个 VB 程序,实现如下功能:找出 10000 以内所有可能的自守数,单击“统计”按钮 Command1,将符合要求的自守数显示在列表框 List1 中,统计个数显 示在标签 Label1 中,运行界面如图所示。
(1)程序运行时要在按钮上显示“统计”,应设置该按钮的________属性。
(2)为实现上述功能,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim n As Single, k As Integer, t As Integer, c As Integer
List1.Clear c=0
For n = 5 To 10000
k = Len(Trim(n)) 'Trim()函数用于删除字符串前后的空格
t = (n * n) Mod ① _
If t = n Then
List1.AddItem Str(n)
②
End If
Next n
Label1.Caption = "自守个数为:" + Str(c)
End Sub
为实现上述功能,划线处应填入的代码分别为
①__________________________________________ 。
②___________________________________________。
(3)解决该问题采用了_______(选填:枚举/解析)算法。
【答案】 ①. Caption ②. 10^k ③. c=c+1 ④. 枚举
【解析】
【详解】本题考查的是VB程序相关知识。(1)Caption属性是控制按钮在窗体上显示数据。(2)由题干可知,k表示数字n的位数,t表示数字n平方的最后k位,所以①答案是10^k;IF语句是判断数字n是否是自守数,如果满足条件,在List1中添加该数字,并统计个数,所以②答案是c=c+1;(3)题中代码列举出了自守数的所有可能,所以该算法是枚举算法。
43. 在通过VB设计“BMI指数”的程序中,王明将变量BZ赋值给Text2.text输出,相应的代码是_____________ 。
【答案】Text2.text=Str(BZ)
【解析】
【详解】本题考查VB编程基础。因为Text2.text中显示的是字符串类型,王明要将变量BZ赋值给Text2.text输出,需要将BZ转化为字符串,即Text2.text=Str(BZ)。
44. 有一Access数据库“school.accdb” 存放在f:\2015mt\vb文件夹中,其中的“student”数据表用来存储学生的基本情况信息,包括学号(num)、姓名(name)、性别(sex)、分数(score),括号内的为对应字段名。下列VB程序用来实现根据学号查询并显示学生信息,运行界面如下图所示。在文本框Text1中输入学生的学号,单击“查询”,在文本框Text2、Text3、Text4中分别显示学生姓名、性别、分数。
Private Sub Command1_Click()
Dim adocn As New adodb.Connection
Dim adors As New adodb.Recordset
Dim str2 As String, str1 As String
str1 = "Provider="Microsoft.ACE.OLEDB.12.0;data" source=f:\2015mt\vb\_____________"
adocn.Open str1
str2 = "select * from students where num=" + Text1.Text
adors.Open str2, adocn, adOpenDynamic, adLockOptimistic
If adors.EOF =" True" Then
MsgBox "你输入的学号不存在"
Else
Text2.Text = adors.Fields("name").Value
Text3.Text = adors.Fields("sex").Value
______________________________________
End If
adors.Close
adocn.Close
End Sub
【答案】(1)school.accdb(1分)
(2)Text4.Text = adors.Fields("score").Value(1分)
【解析】
【详解】
45. 数组a中有8个数据已按升序排列。
a(1)
a(2)
a(3)
a(4)
a(5)
a(6)
a(7)
a(8)
17
22
33
34
41
46
61
85
如果采用对分查找法查找数字77,则第一次查找的数组元素是_____,经过_______次查找后得到结果。
【答案】 ①. 34 ②. 4
【解析】
【详解】本题考查的是对分查找。对分查找的基本思想是在有序的数列中,首先将要查找的数据与有序数列内处于中间位置的数据进行比较,如果两者相等,则查找成功;否则就根据数据的有序性,再确定该数据的范围应该在数列的前半部分还是后半部分;在新确定的缩少范围内,继续按上述方法进行查找,直到找到要查找的数据,即查找成功,如果要查找的数据不存在,即查找不成功。第一次查找的数组元素是:34;第二次查找的数组元素是:46;第三次查找的数组元素是:61;第三次查找的数组元素是:85。
46. 阅读程序段并回答问题。
x=1
a=x
b=x+1
上述程序执行后,变量a的值是___________,变量b的值是___________。
【答案】 ①. 1 ②. 2
【解析】
【详解】本题主要考查程序语句。①x=1,a=x=1。②b=x+1=1+1=2。
47. 代数式的VB表达式为__________________ 。
【答案】(2*a)/(c+ d)
【解析】
【详解】
48. 有如下VB程序段
a=12
b=54
a=b
b=a
该程序段运行后,a,b的值分别为__________、__________,该程序结构属于__________结构(选填:顺序、选择、循环)。
【答案】 ①. 54 ②. 54 ③. 顺序
【解析】
【详解】
49. 以下VB代码存在一个语法错误:
行号 语句
dim price as double
②price=inputbox("请输入价格")
③ if price>=500
④ price=price*0.95
⑤ end if
⑥ print price
错误语句在_________行。
正确语句为_____________。
【答案】 ①. 第3 ②. if price>=500 then
【解析】
【详解】本题考查的知识点是VB程序设计。分析代码可知,本程序是一个if……then的选择结构。③ 处的 “if price>=500”语句少了关键字then。故错误语句在③处,即第3行。正确语句为if price>=500 then。填写答案为:第3;if price>=500 then。
50. UNLOAD.ME 的含义是卸载( ).
【答案】当前窗体
【解析】
【详解】本题主要考查VB窗体的操作。UNLOAD.ME 的含义是卸载自己(即卸载当前窗体)。
第1页/共1页
学科网(北京)股份有限公司
$