【真题回顾•第六期】2018年04月浙江省信息技术选考真题Python改编

四季读书网 4 0
【真题回顾•第六期】2018年04月浙江省信息技术选考真题Python改编

本公众号推出真题回顾系列,将VB题目进行了Python改编,并在最后附上对于目前选考备考来说,还有价值的其它题目。

改编过程中:感慨万千。大概只有我们信息技术学科,在短短十年间,变化如此之大。

信息技术教师必须具备两种学习意识:对于底层知识,需要“慢思考”,沉下心去啃硬骨头,建立深刻的理解,这可能需要几年甚至十几年的积累。对于应用层知识,需要“快学习”,快速上手,快速迭代,甚至要有“用完即弃”的觉悟。这种精神上的分裂和持续的压力,是其他学科教师难以体会的。

也因此,浙江技术选考造就了一大批优秀的信息科技教师。

今天是第六期,看看我们的来时路。

一、选择题第11题:斐波那契、前缀和

【2018年4月原题】11.【加试题】有如下VB程序段:

a(1) = 1: a(2) = 1b(1) = 1: b(2) = 2For i = 3 To 5a(i) = a(i - 1) + a(i - 2)b(i) = b(i - 1) + a(i)Next i

执行该程序段后,数组元素b(5)的值为()              A.12 B.8 C.5 D.5

【Python版】有如下Python程序段:

= [11]= [12]for i inrange(25):a.append(a[i-1+ a[i-2])b.append(b[i-1+ a[i])print(b[4])

【解析】              i=2 时:a[2]=a[1]+a[0]=2,b[2]=b[1]+a[2]=4              i=3 时:a[3]=a[2]+a[1]=3,b[3]=b[2]+a[3]=7              i=4 时:a[4]=a[3]+a[2]=5,b[4]=b[3]+a[4]=12              结果:最终 b[4]的值为 12。故选 A。a[i]是斐波那契数列,b[i]是a[i]的前缀和列表。

二、选择题第12题:二分查找算法

【2018年4月原题】12.【加试题】数组a为一组正整数,奇数在前,偶数在后。奇数与偶数已分别按升序排序。依据对分查找思想:设计一个在数组a中查找数据Key的程序。实现该功能的VB程序段如下:

i = 1: j = 10Key = Val(Text1.Text)Do While i <= jm = (i + j) \ 2If a(m) = Key Then Exit DoIf Key Mod 2 = 1 And a(m) Mod 2 = 0 Then(1)ElseIf Key Mod 2 = 0 And a(m) Mod 2 = 1 Then(2)Else(3)End IfLoopIf i > j Then s = "没有找到!"Else s = "位置:" + Str(m)Text2.Text = s

上述程序中方框处可选语句为:              ①i = m + 1 ②j = m - 1 ③If Key < a(m) Then j = m - 1 Else i = m + 1              则(1)、(2)、(3)处语句依次是()              A.①、②、③ B.①、③、② C.②、①、③ D.③、②、①

# a = [1,3,5,7,2,4,6,8]# 奇数在前偶数在后,各自升序=0=9key =int(input())while i <= j:= (i + j) //2if a[m] == key:breakif key %2==1and a[m] %2==0:___(1)___elif key %2==0and a[m] %2==1:___(2)___else:if ___(3)___: = m -1else:= m +1if i > j:print("没有找到!")else:print("索引:", m)

【Python版】数组a为一组正整数,奇数在前,偶数在后。奇数与偶数已分别按升序排序。依据对分查找思想:设计一个在数组a中查找数据Key的程序。实现该功能的 Python 程序段如下:

上述程序中方框处可选语句为:              ①i = m + 1 ②j = m - 1 ③ key < a[m]              则(1)、(2)、(3)处语句依次是()              A.①、②、③ B.①、③、② C.②、①、③ D.③、②、①

【解析】Key是奇数、a(m)是偶数→往左找,j=m-1;              Key是偶数、a(m)是奇数→往右找,i=m+1;              同奇偶→正常对分查找。故选 C。

三、非选择题第14题:

【2018年4月原题】14.【加试题】某种编码以4位二进制码为一组,每组前两位表示方向,后两位表示距离。编写一个程序,将编码翻译成方向和距离,距离值为每组编码后两位二进制码转换为十进制数的值。具体功能如下:在文本框Text1中输入连续多组编码,单击“翻译”按钮Command1,结果显示在列表框List1中。              (1)要使程序运行时,文本框Text1的Width属性值为2018,可在Form_Load事件过程中添加语句(单选,填字母)。              (2)实现上述功能的VB程序如下,请在划线处填入合适的代码。VB代码略。

【真题回顾•第六期】2018年04月浙江省信息技术选考真题Python改编 第1张

【Python版】某种编码以4位二进制码为一组,每组前两位表示方向,后两位表示距离。编写一个程序,将编码翻译成方向和距离,距离值为每组编码后两位二进制码转换为十进制数的值。具体功能如下:输入连续多组编码,输出结果。

【真题回顾•第六期】2018年04月浙江省信息技术选考真题Python改编 第2张

(1)若输入的内容为“1111”,单击“翻译”按钮,列表框List1中显示的内容是______。

(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。

=input().strip()=len(s)=0while i < n:= s[i:i+2]if c =="00":="东"elif c =="01":="南"elif c =="10":="西"else:="北"b1 =int(s[i+2:i+3])b2 =int(s[i+3:i+4])= ___①___print(d, v)___②___

【解析】(1)输入“1111”:前两位11→北,后两位11→3,输出:北 3

(2)① 后两位二进制转十进制:b1×2 + b2 ② 每组4位,i每次+4

四、非选择题第16题:选择排序优化

【2018年4月原题】16.【加试题】有一组正整数,要求对其中的素数进行升序排序。排序后素数在前,非素数在后。排序示例如下。

【Python版】有一组正整数,要求对其中的素数进行升序排序。排序后素数在前,非素数在后。排序示例如下。

【真题回顾•第六期】2018年04月浙江省信息技术选考真题Python改编 第3张

实现上述功能的程序代码如下,加框处代码有误,请修正。

【真题回顾•第六期】2018年04月浙江省信息技术选考真题Python改编 第4张

import math= [867154181793789]=len(a)def is_prime(m):if m <2:returnFalsefor i inrange(2int(math.sqrt(m)) +1):if m % i ==0:returnFalsereturnTruefor i inrange(0, n — 1):=1# (1)加框处 k = 1if is_prime(k):flag =Trueelse:flag =Falsefor j inrange(i +1, n):if is_prime(a[j]):if a[j] < a[k]: # (2)加框处 a[j] < a[k]= jflag =Trueifnot flag:breakif k != i:a[i], a[k] = a[k], a[i]print(a)

【解析】

(1) k = i 。假定i位置就是最小的素数。

(2) not is_prime(a[k]) or a[j] < a[k] 或者 not flag or a[j] < a[k]。k位置如果不是素数,那么遇到第一个素数,就应该记录这个素数的位置。否则,会出现k位置不是素数,后面是素数,但是大于k位置的非素数,也不会记录j。因此要加 not is_prime(a[k]) 这个条件。

五、非选择题第17题:状态标记及数组应用

【2018年4月原题】17.【加试题】为分析数组a中各元素依次变化的情况,进行如下定义:              变化段:数组中相邻两个元素构成一个变化段。变化段有上升段(a(i)>a(i-1))、下降段(a(i)       <a(i-1))和持平段(a(i)=a(i-1))。                 波峰:从上升段转到下降段形成一个波峰。               对称波峰:上升段与下降段个数相同的波峰称为对称波峰。               现要求统计数组a各元素依次变化过程中“对称波峰”的个数。               VB代码略        </a(i-1))和持平段(a(i)=a(i-1))。       

【Python版】为分析数组a中各元素依次变化的情况,进行如下定义: ①变化段:数组中相邻两个元素构成一个变化段。变化段有上升段(a[i]>a[i-1])、下降段(a[i]

【真题回顾•第六期】2018年04月浙江省信息技术选考真题Python改编 第5张

现要编写程序统计数组a各元素依次变化过程中“对称波峰”的个数。 

(1)数组元素“1,4,3,3,2,6,8,7,9,3,4,7,9,6,3,1”依次变化过程中“对称波峰”的个数为_____。 

(2)请在划线处填入合适的代码。

= [1,4,3,3,2,6,8,7,9,3,4,7,9,6,3,1]=len(a)flag =0# 1升 -1降 0平count =0steps =0def is_sym_peak(f, s):return ___①___for i inrange(___②___):if a[i] > a[i-1]:if is_sym_peak(flag, steps):count +=1if flag ==0or flag ==-1:___②___flag =1else:steps +=1elif a[i] == a[i-1]:if is_sym_peak(flag, steps):count +=1steps =0flag =0else:steps -=1flag =-1if is_sym_peak(flag, steps):count +=1print(count)

【解析】(1)3 。(2)①填:f == -1 and s == 0,如果前面状态是下降并且步数是0那么说明有前面是一个波峰。

②填:1, n 。循环从第2个元素开始:i从1到n              ③ 上升段开始,步数置1:steps = 1。如果前面是平或者下降,那么这是新波峰第一次上升,步数加1。

六、其他有价值的题目

2.超文本标记语言用于描述网页的内容,该语言的简称是( )

A. WWW   B. URL   C. HTTP   D.HTML

答案:D

抱歉,评论功能暂时关闭!