第三章 算法的程序实现2024-2025学年高中信息技术浙教版(2019)必修一

2024-08-08
| 12页
| 36人阅读
| 0人下载

内容正文:

第三章 算法的程序实现 一、选择题 1.函数math.trunc(6.88)的值是(    ) A.6.88 B.6 C.7 D.6.8 2.matplotlib 是一个绘图库,使用其中的pyplot子库所提供的函数可以快速绘图和设置图表的坐标轴、坐标轴刻度、图例等。以下哪个函数可以用来绘制线形图(    ) A.plot B.bar C.scatter D.show 3.列表range(1,5)包含的元素是(    ) A.[0,1,2,3,4,5] B.[1,2,3,4,5] C.[1,2,3,4] D.[0,1,2,3,4] 4.定义如下函数: def p(x, y): if x%y==0: print(y) else: p(y, x%y) print(y) 执行语句p(64,18)后,依次输出的结果为(    ) A.18,10,8,2 B.2,8,10,18 C.4,10,18 D.18,10,4 5.执行程序后,x、y的值分别是(    )   x=3   y=x+4   print(x+3,y+2) A.6 7 B.6 9 C.3 7 D.3 9 6.在Python中,可使用函数ord()将字符转换为对应存储编码,已知“5”的ASCII码为“53”,则ord('1')运行的结果是(    ) A.76 B.118 C.55 D.49 7.已知链表结构a[i][0]表示元素,a[i][1]表示下一个元素的下标,head表示开头元素,在已知有序的链表a中插入数值p。代码如下: a=[[0,1],[3,2],[5,3],[6,-1]] head=0 p=4 tmp=head while a[tmp][1]!=-1 and :     tmp=a[tmp][1] a.append([p,         ]) a[tmp][1]=len(a)-1 请在划线处依次填上合适代码(   ) ①a[tmp][0]<p;    ②a[a[tmp][1]][0]<p;    ③tmp;    ④a[tmp][1] A.①③ B.①④ C.②③ D.②④ 8.有如下Python程序段: lst = [5,9,2,6,4,7,3,0] que = [0] * len(lst) head = tail = 0 i = 0 while i < len(lst):     if lst[i] % 2 == 0:         que[tail] = lst.pop(i)         #lst.pop(i)删除列表lst中索引为i的元素,返回删除的元素         tail += 1     else:         i += 1 while head != tail:     lst.append(que[head])     head += 1 执行该程序段后,lst的值为(   ) A.[5, 9, 7, 3, 2, 6, 4, 0] B.[5, 9, 7, 3, 0, 4, 6, 2] C.[2, 6, 4, 0, 5, 9, 7, 3] D.[3, 7, 9, 5, 0, 4, 6, 2] 9.下列Python程序段的运行结果是(    ) s=0 for i in range(1,11):     s=s+i print(s) A.55 B.15 C.0 D.5 10.在Python中函数range(6,10,2)生成的列表中元素的个数是(    )。 A.2 B.3 C.4 D.5 11.Python表达式7%2**3+abs(19//2-10)*len("123")的值是(   ) A.2 B.4 C.8 D.10 12.在Python语言中,运行下面程序后,变量m的值为(   ) a=8 b=16 c=32 if a>b:     m=a else:     m=b if c>m:     m=c print(m) A.1 B.8 C.16 D.32 13.阅读下列Python程序块,运行结果为(   ) s=0 while s<=20:     print(s)     s=s+7 A. B. C. D. 14.在Python语言中,以下能作为变量名的是(   ) A.@1 B.a_1 C.1a D.for 15.在Python程序设计语言当中,数据输出通过(    )函数来实现。 A.output() B.input() C.print() D.int() 16.有如下程序段: a=[30,10,20,11,12,50] d=[0]*6;max=0;n=len(a) for i in range(1,n):     for j in range(i):         if a[j] < a[i]:             d[i]+=1     if d[i]>max:         max=d[i] 执行程序后,变量max的值是(    ) A.2 B.3 C.4 D.5 二、填空题 17.Python版“石头剪刀布”人机对战小游戏的代码运行结果及部分代码如下(不考虑输入有效性判断等)。 import random hand=["石头","剪刀","布"] s=input("请出拳:") p=hand.index(s) #取s在列表hand中对应元素的序号 c=random.randint(0,2) #随机生成0,1,2三个数代表计算机出拳 print("人-"+s+",机-"+________) if p-c in[-1,2]: print("赢") elif p-c==0: print("平") else: print("输") 请根据程序运行结果补全代码: 。 18.判断正整数奇偶性的程序如下,请将程序填写完整。 x=int(input(“请输入一个正整数:”)) if :     print(x,”是偶数”) else:     print(x,”是奇数”) 19.运行代码print(3+6 == 6),输出的结果是 。 20.Python可在 编辑器中编辑程序,并使用快捷键 调试程序。 21.写出运行结果。 a,b,c=5,3,6 a,b=b,a print("输出a,b的值:",a,b) 结果: 三、操作题 22.小天收集了浙江省某年各地市年龄段数据,保存在“T14.xlsx”文件中,如图a所示。为统计分析各地市不同年龄段人口占比,编写Python程序,输出结果如图b所示。 图a                 图b 请回答下列问题: (1)为统计分析各地市不同年龄段人口占本地市人口比例,编写 Python 代码如下,划线处①应填入的代码为 (单选,填字母),划线处②应填入的代码为 。 A.df.groupby("地市",as_index=False).count() B.df.groupby("地市",as_index=False).sum() C. df.groupby("地市",as_index=True).mean() import pandas as pd import matplotlib.pyplot as plt df = pd.read_excel("T14.xlsx") df1 = ①                  # 计算各地市不同年龄段的人数 print ("地 市   17岁以下  18-34岁   35-59岁  60岁及以上") #“df1.values.tolist()”实现将df1转换为二维列表。列表中每个元素包含5个数 #据项,分别对应地市名称和该地市 4 个年龄段人数总计,如['丽水市', 501421, ...] df2=df1.values.tolist()   x,y = [],[] for area in df2:     for c in range(len(area)):         if c == 0:             x.append(area[0])             print(area[0], end="  ")         else:             sm = sum(area[1:])              #sum函数实现对序列求和             t= ②             print('%.2f' %(t), end="%    ")   #按设置格式输出                 if c == 4:                  y.append(t)     print() plt.title("浙江省各地市60岁以上人数占本地市总人口比例", fontsize=24) plt.bar(x, y)  #绘制60岁及以上人数占本地市总人口比例柱形图 #设置绘图参数,显示如图c所示,代码略。 图c (2)由图c可知,60岁及以上人数占本地市人口比例超过25%的地市有 个。 (3)小天编写 mygroupby 函数模拟实现上述分类汇总功能,计算各地市不同年龄段的人数,结果以列表形式返回。函数代码如下,请在划线处填入合适的代码。 #df1为二维列表,列表中每个元素包含6个数据项,内容如图a所示;函数返回值dfs格式同题(1)二维列表df2 def mygroupby(df1):     dfs=[]                  #创建一个空列表dfs     for row in df1:         .        if n>0:           for j in range(n):               if row[0]==dfs[j][0]:                     break          if n==0 or row[0] != dfs[j][0]:           dfs.append([row[0],0,0,0,0])             j=n        for k in range(2,len(row)):                 return dfs 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题考查Python函数相关内容。math.trunc()函数用于获取浮点数的整数部分,即截断小数部分。math.trunc(6.88)=6,故本题答案是B选项。 2.A 【详解】本题考查pyplot子库函数相关内容。plot是绘制折线图,scatter是绘制散点图,bar绘制柱形图,show是显示绘图对象。故本题答案是A选项。 3.C 【详解】本题考查Python函数应用。在Python中,range(start, stop) 函数会生成一个从 start 开始到 stop-1 结束的整数序列。这个序列不包含 stop 这个数。对于 range(1, 5),它生成的整数序列是从1开始,到4结束,因此包含的元素是1, 2, 3, 4。因此,range(1, 5) 包含的元素是 [1, 2, 3, 4]。故答案为C选项。 4.B 【详解】本题考查Python程序设计相关内容。函数p(x,y)调用四次,依次是p(64,18),p(18,10),p(10,8),p(8,2)。函数每调用一次输出一个y值,输出的顺序跟调用函数的顺序是逆序的,即先输出p(8,2)时的y值2,然后依次是8,10,18。故本题答案是B选项。 5.B 【详解】本题考查Python程序设计相关内容。分析程序段可知,x+3-->3+3-->6;y+2-->x+4+2-->9。输出结果为:6 9。故本题答案是B选项 6.D 【详解】本题考查Python函数相关内容。Python语言中的“ord”是将字符转换为对应存储编码的函数,编码值以十进制数形式显示。5-1=4,53-4=49。故本题答案是D选项。 7.D 【详解】本题考查Python程序设计相关内容。本题涉及到链表相关知识。由题意可知链表的逻辑结构是:0->3->5->6,数值升序排序。while循环从head开始查找第一个比数值p大的节点位置,而由语句a[tmp][1]=len(a)-1可知,指针tmp指向的是p的前一个节点,所以当循环结束的时候,指针tmp指向链表中第一个比p大的节点的前一个节点,故在while循环中的条件应该是a[a[tmp][1]][0]<p,故本题答案是D选项。 8.A 【详解】本题考查Python程序。这段代码的目的是将列表lst中的所有偶数移动到列表的末尾,同时保留它们的相对顺序。它通过以下步骤实现:首先,创建一个长度与lst相同的新列表que,并初始化头指针head和尾指针tail为0。然后,使用一个循环遍历列表lst中的每个元素。如果当前元素是偶数,则将其从lst中删除,并将其添加到que的末尾。同时,将尾指针tail加1。否则,将索引变量i加1以检查下一个元素。最后,使用另一个循环将que中的所有元素添加回lst的末尾。故lst中的数据是[5,9,7,3,2,6,4,0]。故答案为:A。 9.A 【详解】本题主要考查Python循环语句。for循环中i的变化范围是从1~10,循环结束时i=10,s=0+1+2+3+4+5+6+7+8+9+10=55。故选A。 10.A 【详解】本题考查Python中range函数的相关内容。range(6,10,2)是在[6,10)范围内取数,步长为2。取出的数为6、8。即列表中元素个数为2。故本题答案是A选项。 11.D 【详解】本题考查Python运算符与表达式相关内容。在Python中,指数运算符(**)是最高优先级的运算符。7%2**3=7%8=7,abs(19//2-10)=1,len("123")=3,最终结果:7+1*3=10。故本题答案是D选项。 12.D 【详解】本题考查Python程序设计相关内容。分析代码段可知,该代码段功能是求abc三数的最大值,运行程序后,m值为32。故本题答案是D选项。 【点睛】 13.A 【详解】本题考查Python循环结构的应用。s初值为0,循环条件是s<=20,先输出s的值再将s递增7,因此输出s的值依次是0、7、14。故选A。 14.B 【详解】本题考查Python变量的命名。变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。因此能作为变量名的是a_1。故选B。 15.C 【详解】本题考查Python函数的描述。Python 在程序设计语言当中,数据输出通过print()函数来实现。input()是输入函数,int () 函数用于将一个字符串或数字转换为整型。故选C。 【点睛】 16.D 【详解】本题考查的是Python循环嵌套。阅读程序可知,d 数组存储 i 号位前有多少个比 a[i]小的元素个数。max 为 d 数组中元素值的最大值。执行后d 数组为[0, 0, 1, 1, 2, 5],故max的值为5,选项D正确。 17.hand[c] 【详解】本题考查Python程序设计相关内容。print是输出,这里要输出人和机器分别出什么。c是机器出的手势在列表hand中对应元素的序号,其手势开始表示为:hand[c],故此处答案为:hand[c]。 18.x%2==0 【详解】本题考查Python分支结构。在这段程序中,我们需要判断输入的正整数x是否为偶数。根据整数的奇偶性质,一个整数除以2的余数为0时,它就是偶数。因此,我们可以使用取余运算符(%)来判断x是否能被2整除,如果余数为0,则x是偶数,否则是奇数。故答案为:x%2==0。 19.False 【详解】本题考查Python运算符与表达式相关内容。3+6==6-->9==6-->False。故本题答案是:False。 20. IDLE F5 【详解】本题考查Python编辑器的描述。Python可在IDLE编辑器中编辑程序,并使用快捷键F5调试程序。 21.输出a,b的值:3,5 【详解】本题考查Python语句执行。a=5,b=3,c=6,a,b=b,a表示交换a和b的值,此时a=3,b=5,因此输出结果是:输出a,b的值:3,5。 22. B area[c]/sm*100 5 n=len(dfs) dfs[j][k-1]=dfs[j][k-1]+row[k] 【详解】本题考查Python程序设计相关内容。本题涉及到pandas基础语句、数据分析相关知识。 (1)①处,题目说计算各地市不同年龄段的人数,A选项,count()其实相当于是数单元格的数量,不符合题意;B选项,sum()是将单元格内的数字求和,符合题意;C选项,mean()算平均值,不符合题意。故处答案为:B。②处,前文x.append(area[0]),说明我们往x里面添加的是地市名字,从后文y.append(t),以及print('%.2f' %(t), end="% ")#按格式输出。还有plt.bar(x,y)和对应的柱形图(x轴地市名,y轴百分比)。我们能够知道t就是60岁及以上年龄段占本地市人口比例。c是内循环的变量,相当于是列索引,c=0对应地市名,c=1对应17岁以下c=2对应18-34岁...,以此类推所以答案为area[c]/sm*100。故处答案为area[c]/sm*100。 (2)从图中观察,柱体高度超过25的有5个,故本题答案是:5。 (3)首先先看注释,说到df1和图a数据一样。返回值dfs 像[[‘丽水市’,501421,数字,数字,数字],[‘杭州市’,数字,数字,数字,数字]...]。其实就是说如何将图a中各地市内的不同县市分别计算不同年龄段的人数sum  。然后各地市各一个list表达出来。第1空,观察下方代码2个if ,有提到n>0和n==0,n在前面却没有赋值,所以在④处n应当体现赋值,但暂时不知道该如何赋值;⑤处体现计算sum值。分析代码段: for j in range(n):       if row[0] == dfs[j][0]:             break #2找到当前row数据所属地级市,属于dfs的哪一行(即j索引)  dfs[j][0]即地级市名字       if n==0 or row[0] !=dfs[j][0]:           dfs.append(row[0],0,0,0,0]) #3该地级市还未存在,则按照返回值要求的格式添加初始值,方便后续的sum计算           j=n #       for k in range(2,len(row)): ⑤____从前面的分析#1可知,本处为计算sum,需要将4种不同年龄段的总人数加起来(迭代法) k=2时,dfs[j][k-1]代表当前地市的17岁以下,row[k]为当前数据的17岁以下;k=3时,dfs[j][k-1]代表当前地市的18-34岁,参考#2的说明和#3处的初始化数据格式。所以每次应当累加当前row所在的对应年龄段数据。所以⑤处答案为  dfs[j][k-1]=dfs[j][k-1]+row[k]。最后,推导n到底应该是什么呢?从#2可知,需要从当前dfs中找到当前row数据所属地级市所在行,所以n应当为当前dfs的行数,故④处答案为 n=len(dfs)。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

第三章 算法的程序实现2024-2025学年高中信息技术浙教版(2019)必修一
1
第三章 算法的程序实现2024-2025学年高中信息技术浙教版(2019)必修一
2
第三章 算法的程序实现2024-2025学年高中信息技术浙教版(2019)必修一
3
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。