资源简介 综合练习 - 浙教版(2019)高中信息技术选修1一、选择题1.有如下 Python 程序段def bianli(head):pt = headwhile pt != -1:print(data[pt][0],data[pt][1],"->",end='')pt = data[pt][1]print()data = [['A',1],['B',2],['C',3],['D',-1]]head = 0bianli(head) #遍历链表,显示初始状态为“A 1 ->B 2 ->C 3 ->D -1 ->”qt = headpt = data[qt][1]bianli(head) #遍历链表,显示最终状态为“A 2 ->C 1 ->B 3 ->D -1 ->”执行该程序段后,链表遍历结果由初始状态变为最终状态,上述程序段中方框处可选代码为:①data[data[qt][1]][1] = pt②data[qt][1] = data[pt][1]③data[pt][1] = data[data[pt][1]][1]则方框处代码的正确顺序是( )A.①②③ B.①③② C.②①③ D.②③①2.已知一个有7个节点的单向链表,设有头指针head和尾指针tail,如右图所示,下列操作需要遍历多个节点的是( )A.删除该链表中的最后一个节点B.删除该链表中的第一个节点C.在该链表第一个节点前插入一个新节点D.在该链表最后一个节点后插入一个新节点3.用两个列表a、b分别保存单向链表中的数据区域和指针区域。如下图所示,在节点x与节点y之间插入一个新节点,操作步骤正确的是( )①b[i]= b[y] ②b[i]= b[x] ③b[y]= i ④b[x]=i ⑤b[i]= x ⑥b[i]= yA.③⑥ B.④② C.①③ D.②④4.用栈的数据结构编写进制转换中的“除二取余法”的程序段如下:st=[-1]*100top=-1n=int(input("请输入一个十进制数: "))while n>0:while top!=-1:print(st[top],end="")top-=1方框处的代码由以下四部分组成:①n=n//2 ②top+=1 ③x=n%2 ④st[top]=x下列选项中,代码顺序正确的是( )A.③④②① B.③①②④ C.①②③④ D.①③④②5.某二分查找算法的 python 程序段如下, 运行该段代码后, 输出的结果不可能是( )import randoma = [10,20,30,40,50,60,70,80]key = random.choice(a); i,j = 0,len(a)-1 ; s = ""while i<=j:m = (i+j)//2if key == a[m]:s = s+"M"; breakelif key < a[m]:j = m-1; s = s+"L"else:i = m+1; s = s+"R"print(s)A.LLM B.LRM C.RRRM D.RRLM6.某对分查找算法的Python程序段如下:key=int(input("请输入待查数据值:"))d=[17,18,20,23,24,25,28,32,34,35]f=False;s=""i=0;j=len(d)-1while i<=j: m=(i+j)//2 s=s+","+str(d[m]) if d[m]==key: f=True break if key < d[m]: j=m-1 else: i=m+1if f==True: print("查找成功!遍历的数据"+s)else:print("没有找到!")输入待查数据值为 23,执行该程序段,则输出的结果是( )A.25,20,24,23 B.24,18,20,23 C.25,20,23 D.24,20,237.有如下Python程序代码:s="ABCDEF";head=0;tail=0que=[""]*100for i in range(len(s)):if i%2==0:que[tail]=s[i]else:que[tail]=s[len(s)-i]tail=tail+1for i in range(len(s)):print(que[head],end="")head=head+1以上程序运行后,打印出列表的情况是:( )A.ABCDEF B.FEDCBA C.ACEFDB D.AFCDEB8.已知一棵二叉树的前序遍历序列为:A-B-D-C-E,后序遍历序列为:D-B-E-C-A,则该二叉树是否 能唯一确定?中序遍历序列是?( )A.能唯一确定,中序遍历序列为:B-D-A-E-CB.不能唯一确定, 中序遍历序列可能为: B-D-A-E-CC.能唯一确定,中序遍历序列为:D-C-B-A-ED.不能唯一确定, 中序遍历序列可能为: D-C-B-A-E二、填空题9.递增数列用二分法查找时,先以________位置的元素作为比较对象,如果要找的元素值小于该中点元素,则将待查序列________为左半部分,否则为右半部分。每一次比较后都可以将查找区间缩小一半。10.数组 d 的初始值如表所示,则 d(d(3))+d(4)的值 ( )。11.小明同学所在城市的地铁线路局部图,如图所示。他计划从A站出发去B站附近的图书馆学习。假设地铁各线路每两站间行车用时相等,记为t1,停靠站时间忽略不计;换乘地铁的用时也都相等,记为t2。(1)如果t1=t2,小明同学希望尽快到达B站,试为他推荐一条最佳乘车路线。_________________________________(2)设t1=2min,t2=lmin,则小明从A站出发到达B站的最短用时为___________min。12.指出下列数据所属的数据类型(1)789( )(2)345.890( ) (3)‘N’( )(4)1.23e2( )(5)“C语言”( )13.递归的要素:________的递归的重要组成;________,它保证递归能在________的计算后得出结果,而不会产生________的情况。三、判断题14.数据处理的一般过程是明确目标、数据采集、数据加工、数据分析及数据可视化。( )15.迭代算法与递归算法都需要重复执行某些代码,两者基本相同。 ( )16.递归的边界条件要素,是为了保证递归能在有限次的计算后得出结果,而不会产生无限循环的情况。 ( )17.图结构中数据元素是多对多的关系。( )18.数据管理指的就是对数据进行查询和统计。( )四、操作题19.打开文件“考生文件夹\670\Fibonacci.py”,完善程序实现如下功能并保存:斐波那契在《计算之书》中提出了一个有趣的兔子问题:假设一对兔子每个月可以生一对小兔子,一对兔子出生后第2个月就开始生小兔子。则一对兔子一年内能繁殖成多少对?#请不要更改源程序的结构,删除原题里的①、②、③。填写正确的代码,使程序完善def fib(n): f2=f1= ① for i in range(3, ② ): f1,f2=f2,f1+f2 return ③n=int(input('输入需要计算的月份数:'))print('兔子总对数为:',fib(n))input("运行完毕,请按回车键退出...")①____________________②____________________③__________________试卷第1页,共3页试卷第1页,共3页参考答案:1.D2.A3.D4.B5.D6.B7.D8.B9. 中点 缩小10.2011. A-L-K-H-G-B 或 A-L-K-J-I-B 1212. int float char double char13. 递推关系 边界条 有限 无限循环14.错误15.错16.对17.正确18.错误19. 1 n+1 f2答案第1页,共2页答案第1页,共2页 展开更多...... 收起↑ 资源预览