内容正文:
15分加试题选考
仿真专题卷(一)
1.Flash动画相邻几帧之间
存在很大的相关性,如下图
所示,这种相关性主要表现
为( )
一、选择题(本大题共3小题,每小题2分,共6分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
A.空间冗余 B.时间冗余 C.结构冗余 D.视觉冗余
【答案】B
【解析】时间冗余是序列图像(电视图像、动画)和语音数据中所经常包含的冗余,题图是图像序列,属于时间冗余。
*
2.有15个数的有序数列,采用对分查找的方法,最多需要查找的次数是( )
A.1次 B.4次
C.15次 D.10次
【答案】B
【解析】对分查找最多需要查找|log2n+1|次(取整)。
3.完成某排序算法的VB程序段如下:
For i = 1 To 7
For j = 8 To i + 1 Step -1
If a(j) < a(j - 1) Then
t = a(j): a(j) = a(j - 1): a(j - 1) = t
k = 1
End If
Next j
If k = 0 Then Exit For
Next i
k = 0
如果用上述算法对数据序列:38,11,21,62,59,65,77,79进行排序(数据分别存储在数组元素 a(1)~a(8)中),排序结束时,加框处语句被执行的次数是( )
A.2 B.3
C.4 D.7
【答案】B
【解析】由语句If a(j) < a(j - 1) Then可以看出这是一段冒泡降序排序算法程序,排序2遍后,数组元素已经有序,执行第3遍排序后,k=0,退出外循环,所以k=0执行3次。
二、非选择题(本大题共2小题,其中第4小题3分,第5小题6分,共9分)
4.有15个学生,每个学生都有一个编号,分别是1号到15号,1号学生写了一个5位自然数,2号说:“这个数能被2整除”,3号说:“这个数能被3整除”...依次下去,每个学生都说这个数能被自己的编号整除,1号对上述说法做了一一验证,发现只有两个连续编号的学生说得不对,其余学生都对,问:(1)说的不对的两个学生的编号是多少?(2)这个五位数是多少?以下VB程序用来验证回答的正确性,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim t As Integer, i As Integer, j As Integer, z As Integer
For i = 10000 To 99999
t = 0
For j = 2 To 15
If i Mod j <> 0 Then Exit For
Next j
For z = ______①______ To 15 '判断连续两个编号j与j+1后有没有编号不能整除,若有t加1
If i Mod z <> 0 Then t = t + 1
Next z
If (i Mod (j + 1) <> 0) And ______②______ Then
List1.AddItem i
End If
Next i
End Sub
【答案】①j + 2 【解析】连续两个编号j与j+1不能整除后,要从j+2开始判断到15,且五位数必须被j+2到15之间的任何一个数整除。 ②t = 0 【解析】t=0代表五位数不能被j+2到15之间整除的数为0个。
5.取石子游戏。比如有5堆石子,石子数依次为3,5,7,19,50,甲乙两人轮流从任意一堆中任取(每次只能在某一推中取,不能不取),取到最后一颗石子的一方获胜。甲先取,要计算甲有没有必胜策略,如果有,甲第一步应该取多少颗。
分析发现,将每一堆石子的数量转化为二进制数后相加,相加不考虑进位,若相加结果x为0那么先取者必败;否则先取者只要取走x个必胜。
如3转成二进制数是“0000011”,5转成二进制数是“0000101”,7转成二进制数是“0000111”,19转成二进制数是“0010011”,50转成二进制数是“0110010”,把5个数以二进制的形式相加,不考虑进位,结果x为“0100000”,如图a所示。二进制数“0100000”转成十进制为“32”,所以先取一方需取32颗石子,才能保证最后胜利。
按照上述方法,设计一个程序,如图b所示。功能如下:在文本框Text1中输入石子的推数,利用InputBox输入每堆石子的个数(每堆石子个数需小于100颗),计算得到甲第一次需取石子的个数。
(1)如果有四堆石子,石子数依次为2,9,13,22,先取者应该取_______