浙江省金华市江南中学2020年高二4月信息技术阶段考试卷(PDF试卷+答案)

资源下载
  1. 二一教育资源

浙江省金华市江南中学2020年高二4月信息技术阶段考试卷(PDF试卷+答案)

资源简介


高二信息答案和解析
1.【答案】D

【解析】【分析】
本题考查VB程序的分析理解,重点是掌握对分查找的算法思想。
二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x。
【解答】
分析程序算法可知,查找某Key值主要通过对分查找算法,变量n用于记录查找过程中中间值指针在第一次定位后的偏移情况,左移一次n-1,右移一次则n+1,则依次查找数列中每一个元素的偏移累计分别为-2、-1、0、0、0、1、2、3,另外若查找key值大于86或小于5,则分别偏移累计为-3和4,当输入不同的Key值,运行该程序段后,在标签Label1中显示的不同结果共有8种输出结果。
???????故选:D。
2.【答案】B

【解析】【分析】
本题考查对对分查找算法的理解和运用。
对分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x。
【解答】
分析程序代码,按对分査找算法思想,只有当找到目标值时,Flag?的值才置为?False,而题中查找数7不在数列中,因而不会找到,A错误;
文本框?Text2?中显示的内容为各次的中间值m,根据题意,第一次查找i=1,j=8,m=4;
???????第二次查找i=1,j=3,m=2;第三次查找i=3,j=3,m=3,最后i=i+1=4,所以最终文本框?Text2?中显示的内容为?4?2?3,B选项正确。CD选项错误。
故选:B。
3.【答案】D

【解析】本题主要考查选择排序的核心代码:寻找最小值或最大值。变量k记录当前找到的最小值的位置,即数组元素的下标,则d(k)就是当前找到的最小的数组元素。它的思想方法是先假设数组的第i项是最小的(第i遍排序),因此k记为i,然后把从第i+1项开始的所有数组元素跟d(k)进行比较,如果比d(k)小,则用k记录元素的下标。这样循环结束后,变量k中存储的就是数组中第i项至第n项的最小元素的下标,d(k)就是第i项至第n项中的最小元素。
4.【答案】D

【解析】【分析】
本题考查VB程序中冒泡法数据排序的程序。
这是冒泡法数据排序的程序,从数组最后一个数开始检查,当后面的数小于前面的数时就交换两个数的位置,直到所有的数中都是后面的数大于前面的数,不在交换,代表排序完成,最后所有的数都由小到大排列。
【解答】
据题意:这个程序是用冒泡法将数组中的数进行由小到大的顺序排列。在数组中从第1个数到最后一个数的大小放置正好与所要求的顺序相反时,要交换的次数是最多的,D选项恰好是从大到小的排列,这样交换的次数会最多。
故选D。

5.【答案】B

【解析】题中要求降序排序,所以第一遍先在所有单词中找到字典序中排最后的单词“your”,将它与“us”交换位置,得到“your,our,my,us,his”。第二遍再在余下的单词中找出按字典序排最后的单词“us”,将它与“our”交换位置,得到“your,us,my,our,his”。
6.【答案】A

【解析】本题考查对冒泡法排序的理解,冒泡排序的程序走向是重复地走访要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
7.【答案】C

【解析】【分析】
本题考核算法的选择排序思想,但这是冒泡排序的改进算法;它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来;走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
【解答】
依据题干中代码可知,该排序下一个元素比上一个元素小,就进行交换。进行三次以后,下一个元素就不会比上一个小。
故选C。

8.【答案】第一空:a(i)=Int(Rnd*89)+11;第二空:If a(j)< a(k)Then k=j ;第三空: k=FindMin(i)

【解析】【分析】
本题主要考查的是选择排序算法,选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。
【解答】
根据选择排序算法的原理可得,第一空填a(i)=Int(Rnd*89)+11,第二空填If a(j)< a(k)Then k=j ,第三空填 k=FindMin(i)。
故答案为:第一空:a(i)=Int(Rnd*89)+11;第二空:If a(j)< a(k)Then k=j ;第三空: k=FindMin(i)。


第2页,共2页
第1页,共1页
第 1页,共 5页
高二信息周测卷 2020 年 4 月 7 日
副标题
题号 一 二 总分
得分
一、选择题(本大题共 7 小题,共 35.0 分)
1. 若数组元素 d(1)到 d(8)的值依次为“86,75,58,46,20,18,12,5”,查
找某 Key值的 VB程序段如下:
当输入不同的 Key值,运行该程序段后,在标签 Label1中显示的不同结果共有
A. 5种 B. 6种 C. 7种 D. 8种
2. 某对分査找算法的 VB 程序段如下:
第 2页,共 5页
数组元素 a(1)到 a(8)的值依次为“1,3,5,8,10,13,16,21”,在文本
框 Text1中输入 7,执行该程序段,下列说法正确的是
A. Flag 的值为 False
B. 文本框 Text2中显示的内容为 4 2 3
C. i的值为 3
D. j的值为 4
3. 下列 VB程序段是选择排序程序的主要部分。其中虚线框内代码用于寻找数据元素
d(i)到 d(n)的最小值。
框内代码运行结束时,保存最小值的数组元素一定是( )
A. d(n) B. d(j) C. d(i) D. d(k)
4. 以下程序段对数组 a中的 6个数据 a(1)到 a(6)进行加工。
Dim flag As Boolean
i = 1 : flag = True
Do While i<= 5 And flag = True
flag = False
For j = 6 Toi + 1 Step -1
If a(j) < a(j - 1) Then
k = a(j): a(j) = a(j - 1): a(j - 1) = k
flag = True
End If
Next j
i = i + 1
Loop
下列数据序列中,在加工过程中划线处语句执行次数最多的是( )
第 3页,共 5页
A. 24,29,31,20,15,10 B. 10,15,20,24,29,31
C. 29,10,31,15,20,24 D. 31,29,24,20,15,10
5. 利用选择排序对一组原始数据:us,our,my,your,his进行降序排序,第二遍排
序结束后的数据序列为()
A. us,our,my,his,your B. your,us,my,our,his
C. your,our,my,us,his D. his,us,our,my,your
6. 在 VB中,若 a是一个整型数组,a(1)、……、a(4)分别为 130、45、278、59,
则执行下列程序段后,数组 a中各元素的值为()
A. 45 59 130 278
B. 130 278 45 59
C. 278 130 59 45
D. 59 45 278 130
7. 有如下 VB程序段:
For i=1 To 3
j=i+1
Do While j<=4
If a(i)<a(j) Then
t=a(i):a(i)=a(j):a(j)=t
End If
j=j+1
Loop
Next i
数组元素 a(1)到 a(4)的数据依次为“33,6,14,17”,程序运行过程中,语句
“t=a(i):a(i)=a(j):a(j)=t”被执行的次数为 ( )
A. 1 B. 2 C. 3 D. 4
二、非选择题(本大题共 1 小题,每空 5 分,共 15.0 分)
8. n个数从小到大选择排序需要经过 n-1遍加工,每遍加工从未排序的数据元素中找
出最小的元素与当前元素进行交换。小天同学学习了选择排序算法和函数的知识后,
编写了一个 VB程序,功能如下:运行程序时首先在列表框 List1中显示 10个大于
10且小于等于 99的随机自然数,单击“排序”按钮 Command1后,在列表框 List2
中显示这些数据按从小到大排序后的结果,运行结果如图所示。请在划线处填入合
适代码。
第 4页,共 5页
Const n=10
Dim a(1 To n)As Integer '定义数组 a
Private Sub Form_Load()
Randomize
For i=1 To n '产生 n个随机自然数,并依次存放在数组 a中
__________________
List1.AddItem Str(a(i))
Next i
End Sub
Function FindMin(x As Integer)'寻找当前需要交换的数组元素下标
Dim k As Integer,j As Integer
k=x
For j=x+1 To n
__________________
Next j
FindMin=k
End Function
Private Sub Command1_Click()
Dim i As Integer,k As Integer,t As Integer
For i=1 To 9
__________________
第 5页,共 5页
If k<> i Then
t=a(i):a(i)=a(k):a(k)=t
End If
Next i
For i=1 To n
List2.AddItem Str(a(i))
Next i
End Sub

展开更多......

收起↑

资源列表