第2章 算法与程序实现 2024—2025学年高中信息技术人教/中图版(2019)必修1

2024-08-08
| 11页
| 60人阅读
| 0人下载

内容正文:

 第2章 算法与程序实现 一、选择题 1.在Python中,已知x=2021,y=2022,z=2023,下列表达式结果为False的是(    ) A.x//1000==x%100//10 B.x%4==0 or x%100!=0 C.str(y+z)=='20222023' D.x<=y<=z 2.某DataFrame对象df2包含“准考证号”、“班级”、“姓名”、“语文”、“数学”、“英语”等数据列,下列语句中,能实现输出以班级为单位的各班“语文”列平均值的是(   ) A.print(df2.groupby("班级",as_index=False).mean( )) B.print(df2.groupby("语文",as_index=False).mean( )) C.print(df2.groupby("班级",as_index=False).排名.mean( )) D.print(df2.sort_index("语文",as_index=False).describe( )) 3.某算法用伪代码描述如下: 输入两个互不相等的自然数A,B If A<B then (C←A,A←B,B←C 输出A,B) 关于上述算法,下列说法正确的是(    ) A.不符合“可行性”特征 B.无法用流程图来描述 C.运用了循环结构的控制转移 D.实现从大到小输出两个自然数 4.在Python中创建了一个DataFrame对象df1。 import pandas as pd data={"姓名":["甲","乙","丙"],"性别":["男","女","男"],"身高":[175,156,180]} df1=pd.DataFrame(data,columns=["姓名","性别",身高"]) 以下操作描述错误的是(   ) A.print(df1["姓名"])将显示姓名列的数据 B.print(df1.身高)将显示身高列的数据 C.print(df1.head())将显示甲同学的数据 D.print(df1[df1.身高<160])将显示乙同学的数据 5.已知s='The 22nd Xu Xiake Travel Festival',则s[9:11]>s[12:17]的值为(   ) A.False B.True C.'Xu' D.'Xiake' 6.有如下Python程序段: import random s='Python2024'; ans=" k=random.choice([-1,1])    #随机生成-1或1 for ch in s:     key=random.randint(1,3)     if 'A'<=ch<='Z':         ans+=chr((ord(ch)+k*key-65)%26+65)     elif '0'<=ch<='9':         ans+= chr((ord(ch)+k*key-48)%10+48)     else:         ans+=ch print(ans) 执行该段程序后,输出的结果可能是(   ) A.Python2024 B.Qython3111 C.Oython3935 D.Sython5145 7.某算法的部分流程图如图所示,执行这部分流程,则输出的值为(   ) A.[1,2,3,4,5,6] B.[1,2,4,3,5,6] C.[1,4,2,3,5,6] D.[1,4,2,5,6,2] 8.某加密程序的代码如下: str1 = input("请输入明文:") num = "1358821604" str2 = " " for ch in strl: if "0" <= ch <= "9": str2 += num[int(ch)] elif "a" <= ch <= "z": str2 += chr((ord(ch) - ord("a") + 2) % 26 + ord("a")) else: str2 += ch print(str2) 运行该程序,输入str1的值为“I-520-Python”,则输出结果为(    ) A.G-831-Ravjqp B.G-831-Nwrfml C.I-251-Pwrfml D.I-251-Pavjqp 9.若food="milkeggbread",以下表达式值为['milk', 'egg', 'bread']的是(   ) A.[food[:4],food[4:7],food[7:]] B.[food[:3], food[3:6],food[6:]] C.[food[1:4],food[4:7],food[7:len(food)]] D.[food[0:3],food[3:6],food[6:len(food)-1]] 10.以下表达式计算结果为False的是(   ) A.25>-24 and 25<26 B.25==25 or 25<24 C.not(26<25) D.26!=26 and 26>25 11.某Python程序如下: a = input("输入数字字符串:") s = "" flag = 1 for i in range(0, len(a)-1, 2):     d1 =int(a[i])     d2 =int(a[i+1])     t = d1 + flag * d2     if t < 0:         t += 10     elif t>= 10:         t -= 10     s = str(t) + s     flag = -flag if len(a) % 2 == 1:     s += a[len(a)-1] print(s) 程序运行时,若输入“48135”,则输出的结果是(   ) A.825 B.528 C.285 D.582 12.下面两个Python程序的运行结果分别是(  ) A 4 3 1 0 4 3 B 4 3 1 4 3 C 4 3 4 3 1 0 D 4 3 2 1 4 3 2 1 A.A B.B C.C D.D 13.算法的描述方式有很多,以下不属于的是(    ) A.自然语言 B.流程图 C.控制图 D.伪代码 14.Python表达式125//3**2*3%8+int(len("firstexam")/4)的值为(   ) A.5 B.6 C.9 D.43 15.下列表达式中,值为True的是(    ) A."chat" not in "chatGPT" B.int (max("3","22","111"))!=abs(int(-3.9)) C."a3b"[0:2]<="a3B" D.18//3**3==2 16.有如下Python程序段: s= " A-b2c" ;ch= " " list=[4,3,1,5,2] for i in range(len(s) ) : if "A"<=s[i]<="Z": ch=ch+chr(ord(s[i])+list[i] ) elif "a"<=s[i] <="z": ch=ch+chr(ord(s[i])-list[i]) else: ch=s[i]+ch print(ch) 该程序运行后,输出的结果是(   ) A.2-Eaa B.2-ECE C.E-c2e D.E-a2b 二、填空题 17.运行下面Python代码, a=23 b=int(a/10) a=a-b*10 print(a,b) 运行后,a的值为 ,b的值为 。 18.在JavaScript中,用来获取元素属性值的函数是 。 19.在JavaScript中,用于实现异步请求的API是 。 20.在Python中,用于实现异常处理的关键字是 。 21.流程图表示变量的 与 。 三、判断题 22.已知列表x = [1, 2],执行语句y = x后,表达式id(x) == id(y)的值为True。( ) 23.表达式list('[1, 2, 3]')的值是[1, 2, 3]。( ) 24.Python中的同一个变量可以被重复赋值。( ) 25.伪代码比自然语言描述算法更加直观和易于理解。( ) 四、操作题 26.【项目情境】 共享单车已成为一张新名片,是打通居民出行“最后一公里”的公共交通工具,是绿色城市、低碳出行的有力保障。但也存在一些困扰和问题:想骑行时却没有车可租;共享单车的大概的投放量有多少;骑行结束时物品忘拿、骑行花费等等问题。本项目站在多个角度聚焦这些问题,通过程序设计、分析数据和系统设计解决共享单车实际使用中遇到的真实问题。 【项目方案】 Ⅰ通过程序设计增加提醒功能,解决骑行结束时物品忘拿问题; Ⅱ借助流程图,明晰骑行计费收费问题; Ⅲ通过大数据分析技术,从时间、空间两个维度合理调配单车投放量问题。 【项目实施】 探究活动3:设计并完善车辆骑行计费功能模块的算法。车辆骑行计费方法是:骑行时长(分钟)未超过30分钟计费1.5元,超过30分钟后,按每30分钟(不足30分钟,按30分钟计)再加0.5元,骑行结束后车辆停到禁停区,除了骑行费用外,加收每单2元的车辆管理费用。 图1                                 图2 补充完善车辆骑行计费功能模块流程图(如图2)。将图1区域中的框图对应填入图2虚线框内。 ①        ②         ③ (提示:填写框图所对应的字母) 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.C 【详解】本题考查Python表达式相关内容。A选项,x//1000-->2,x%100//10-->21//10-->2,x//1000==x%100//10-->True。B选项,x%4==0-->False,x%100!=0-->True,x%4==0 or x%100!=0-->True。C选项,str(y+z)-->str(4045)-->"4045",str(y+z)=='20222023'-->"4045"=='20222023'-->False。D选项,x<=y<=z-->True。故本题答案是C选项。 2.B 【详解】本题考查Python基础。 题目要求以班级为单位,因此首先要使用groupby函数按班级进行分组,然后使用mean()函数求平均值,因此答案为B。 3.D 【详解】本题考查算法描述相关内容。算法的描述方法有:自然语言、伪代码、流程图、N-S图等。由伪代码可知,如果A<B则A、B的值交换,即输出的结果A大于B。该算法符合“可行性”特征,可以用流程图来描述,运用了选择(分支)结构的控制转移,实现了从大到小输出两个自然数的功能。故本题答案是D选项。 4.C 【详解】本题考查Python编程。 选项C,错误。调用head方法默认可以显示前5条数据。根据题意不只显示甲同学数据。其它选项均正确,故正确答案为:选项C。 5.B 【详解】本题考查Python基础。关系运算符,返回逻辑值。排查选项C、D。 s[9:11]='Xu' s[12:17]='Xiake' 由于u的ASCII码大于i的ASCII码,故s[9:11]>s[12:17],返回True。故正确答案为:选项B。 6.D 【详解】本题考查的是Python随机函数及循环语句。程序的功能是将大写字母统一前移或后移key(1~3)位,数字统一前移或后移key(1~3)位。选项A,大写字母没有移位,不可能;选项B,字符"20"变为"31"是前移,字符"4"变为"1"是后移,不可能一下前移一下后移;选项C,字符"P"变"O"是后移,但字符"2024"后移1~3位不可能是"3935";选项D,字符"P"变"S"是后移3位,字符"2024",分别后移3、1、2、1位变成"5145",符合程序功能。故选D。 7.B 【详解】本题考查的是流程图识读。阅读流程图可知,流程图功能是,将列表a中比2大的元素,从后往前都后移一位,直到遇到比2小结束,并将2插入。初始a=[1,4,3,5,6,2],执行这部分流程,则输出的值为[1,2,4,3,5,6]。故选B。 8.D 【详解】本题主要考查Python程序的执行。分析程序可知,ch依次是从字符串s1中取的字符,如果ch是数字时,则将其作为索引从字符串q中取对应的数字,故520对应的数字是251;如果ch是小写字母,则将其循环后移2位;如果ch是其他字符,则保持不变,故输入s1的值为"I-520-Python",则输出结果为I-251-Pavjqp,故本题选D选项。 9.A 【详解】本题考查的是Python切片操作。切片操作基本表达式:object[start_index:end_index:step],step:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。start_index:表示起始索引(包含该索引对应值),该参数省略时,表示从对象“端点”开始取值。end_index:表示终止索引(不包含该索引对应值),该参数省略时,表示一直取到数据“端点”。[food[:4],food[4:7],food[7:]]=['milk', 'egg', 'bread'],[food[:3], food[3:6],food[6:]]=['mil', 'keg', 'gbread'],[food[1:4],food[4:7],food[7:len(food)]]=['ilk', 'egg', 'bread'],[food[0:3],food[3:6],food[6:len(food)-1]]=['mil', 'keg', 'gbrea'],故选A。 10.D 【详解】本题考查表达式的运算。逻辑运算符or两边值均为假时值才为假,否则值为真;逻辑运算符and两边值均为真时值才为真,否则值为假,not是取反。26!=26→False,则26!=26 and 26>25值为False。其余选项表达式值均为True。故选D。 11.A 【详解】本题考查Python程序设计相关内容。该程序执行的思路为:将字符串a中的数字字符每两个为一组进行处理,t=dl+flag*d2且flag自动调节正负号。条件判断将t变为0~9之间的正数,转换为字符后拼接到字符串s的左侧。若最后一个字符未成对,则直接拼接到字符串的末尾。程序执行过程:第一组:flag=1,4+8=12,t=2,s="2";第二组:fag=-1,t=1-3=-2,t=8,故s为"82"。最后一个字符"5",拼接到字符串末尾,故 s="825"。故本题答案是A选项。 12.C 【详解】本题考查Python程序设计相关内容。“break”和“continue”在编程中都是用来控制循环的关键字,但它们的使用场景和效果有所不同:(1)使用场景。“continue”通常用于当循环中的某些条件被满足时,需要跳过当前循环,继续下一次循环的场景;“break”通常用于当循环中的某些条件被满足时,需要立即退出循环的场景。(2)效果。使用“continue”后,循环会立即跳到下一轮,不会执行本轮循环中“continue”后面的语句;使用“break”后,整个循环会立即结束,不论是否已经完成所有的循环。两个程序段均采用while循环,第一个使用break进行转向,第二个使用continue进行转向。使用break时,若n==2成立,则结束循环,所以第一个程序段输出结果为:4 3;使用continue时,若n==2成立,则结束本次循环,再去判断循环条件n>0是否成立,若成立,继续执行循环体,若不成立,结束循环,所以第二个程序段输出结果为:4 3 1 0。故本题答案是C选项。 13.C 【详解】本题考查Python程序设计相关内容。算法的描述方式包括自然语言、流程图、伪代码、计算机程序设计语言。故本题答案为C选项。 14.C 【详解】本题考查的是Python表达式。//整除,**幂乘,*乘,%求余,int取整,len()求长度。**运算等级最高,故125//3**2*3%8+int(len("firstexam")/4)=9。选项C正确。 15.C 【详解】本题考查Python表达式的运算。"chat" not in "chatGPT"值为False;int (max("3","22","111"))=abs(int(-3.9))=3,因此表达式int (max("3","22","111"))!=abs(int(-3.9))值为False;"a3b"[0:2]="a3",因此表达式"a3b"[0:2]<="a3B"值为True;18//3**3=18//27=0,因此表达式18//3**3==2值为False。故选C。 16.A 【详解】本题考查Python程序设计相关内容。该代码段执行过程:将字符串s与列表相关数值进行运算,若s中第i个字符为大写字母,则将其对应的ASCII 数值与列表第i个元素相加求和,再转换成字符型;若第i个字符为小写字母,则将其对应的ASCII 数值与列表第i个元素相减求差,再转换成字符型;其余字符不变,逆序拼接到字符ch中。即字符A、b、c分别变为E、a、a,字符-、2拼接顺序是2、-,因此得到结果是2-Eaa,故本题答案为A。 17. 3 2 【详解】本题考查Python基础。b=int(a/10)=int(23/10)=int(2.3)=2;a=a-b*10=23-20=3。故正确答案为:①3;②2。 18.getAttribute() 【详解】本题考查计算机编程。在JavaScript中,getAttribute()函数用于获取指定元素的某个属性的值,通过传入属性名称作为参数,即可得到相应的属性值。故答案为:getAttribute()。 19.XMLHttpRequest 或 fetch 【详解】本题考查计算机编程语言。 在JavaScript中,用于实现异步请求的API主要是XMLHttpRequest和fetch。然而,随着现代Web开发的演进,fetch API因其更简洁的语法和更强大的功能,逐渐成为实现异步请求的首选。故正确答案为:XMLHttpRequest或fetch。 20.try 和 except 【详解】本题考查Python。在Python中,异常处理通过try和except关键字来实现。try关键字用于定义可能会引发异常的代码块,except关键字用于捕获并处理try代码块中抛出的异常。通过这种方式,可以增强程序的健壮性和容错性,使得程序在遇到异常情况时能够采取适当的措施,而不是直接崩溃。故答案为:try 和 except。 21. 计算 赋值 【详解】本题考查的是流程图。本题考查算法流程图。菱形是条件判断框,平行四边形是数据输入/输出框,圆角矩形是开始/结束框,矩形是数据处理框(用于变量的计算与赋值)。 22.正确 【详解】本题考查Python基础。 在Python中,当你执行 y = x 这样的语句时,你实际上并没有创建 x 的一个新副本,而是让变量 y 指向了 x 指向的同一个对象。这意味着 x 和 y 都引用了内存中的同一个列表对象,即内存地址相等,故表达式id(x) == id(y)的值为True。故正确。 23.错误 【详解】本题考查Python基础。 表达式 list('[1, 2, 3]') 的值并不是 [1, 2, 3]。在Python中,list() 函数用于将可迭代对象转换为列表,但如果直接传入一个字符串,list() 函数会将字符串中的每个字符视为列表的一个单独元素。故错误。 24.正确 【详解】本题考查Python基础。正确。在Python中,变量是动态类型的,这意味着你可以将一个变量从一种类型更改为另一种类型,并且你可以多次为同一个变量赋值。 25.正确 【详解】本题考查伪代码。伪代码可以明确地定义算法的步骤、变量、数据类型和流程控制结构,这使得读者能够更准确地理解算法的工作原理。此外,伪代码还可以直接转换为编程代码,这对于算法的实现和测试非常有帮助。我们需要根据实际需要选择合适的描述方式。在需要精确、无歧义地描述算法时,伪代码可能更加直观和易于理解,故正确。 26. C B A 【详解】本题考查算法流程图相关内容。结合题目内容,分析流程图,①处,若判断条件i<=30成立,则计费公式为:cost=1.5,故此处答案为:C。②处,③若判断条件t<=30不成立,说明骑行时间超过30分钟,依据“按每30分钟(不足30分钟,按30分钟计)再加0.5元”,需要判断t%30==0,故此处答案为:B。③处,依据“骑行结束后车辆停到禁停区,除了骑行费用外,加收每单2元的车辆管理费用”,此处需要判断是否停到禁停区(is_fib==1),故此处答案为:A。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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