Python三四级历届真题解析
文章平均质量分 97
中国电子学会《全国青少年软件编程等级考试》Python编程三四级历届真题解析。本专栏持续更新中,限时15.9元,欢迎订阅!
优惠券已抵扣
余额抵扣
还需支付
¥15.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
码农StayUp
人生就是一个不断学习的过程,通过学习来充实自己的头脑,让自己更有智慧的生活下去,去探索那未知领域的神秘,去享受成长带来的快乐和惬意。
展开
-
2024年06月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
这个魔术的内容其实是一个经典的约瑟夫环问题,相当于n张牌形成一个环,依次循环报数,每次报到m的那一张牌扔掉,直到剩下最后一张牌。育才学校的劳动实践基地是一个巨大的矩形,参与劳动实践的同学们每次只能种一个正方形地块,每种一个正方形时所花的体力值是正方形的周长,本学期种过的地不可以再种,同学们想使用最少的体力值去种完这块田地,请帮助计算花费最小的体力值。例如,5的阶乘(写作5。自定义函数的作用是将n以内,既是质数,并且除以3余数是1的数字进行累加,13以内符合要求的是7和13,累加后为20。原创 2024-08-15 11:30:00 · 158 阅读 · 0 评论 -
2024年06月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
选择排序的思想:第1轮排序从第1个到第n元素中找到最小元素,如果最小元素不是第1个元素,就交换它和第1个元素的位置,所以第1轮排序的结果是:2,9,8,6,3,4;第2轮排序在第2个元素到第n个元素中找到最小元素,如果最小元素不是第2个元素,就交换它和第2个元素的位置,第2轮排序的结果是:2,3,8,6,9,4。pow(1,8)计算1的8次方,结果是1。变量a是集合,b是元组,元组有顺序,每次print()打印出来都一样,而集合无顺序,每次打印出来顺序都可能不同,所以二者打印出来的结果,可能不会一样。原创 2024-08-15 06:30:00 · 259 阅读 · 0 评论 -
2024年03月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
一个荷花池,第一天荷花开放得很少,第二天开放的数量是第一天的两倍,之后的每一天,荷花都会以前一天两倍的数量开放。≤an,问这样分解的种类有多少。当不确定需要传入的值是多少时,在定义形参时,可以使用*args(列表)、**kwargs(字典)来表示。小明单位发了100元的购物卡,小明到超市买三类洗化用品:洗发水(15元)、香皂(2元)、牙刷(5元)。由于f(3)=f(2)*3,f(2)=f(1)*2,f(1)=1,所以f(3)+f(2)=6+2=8。匿名函数中,冒号前面是参数列表,冒号后面是函数的返回值。原创 2024-05-28 08:00:00 · 478 阅读 · 0 评论 -
2023年12月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
上世纪中期,校园里流行一种数学游戏,其规则十分简单:任意取一个自然数,若它是奇数,则把它乘以3加上1,若它是偶数,则除以2。递归的核心思想就是自己调用自己,能够用递归解决问题的条件之一,是需要解决的问题可以转化为一个或多个子问题来求解,而这些子问题的求解方法与原问题相同,只是在数量和规模上不同。递归算法必须确保,需要解决的问题可以转化为一个或多个子问题来求解,这些子问题的求解方法与原问题相同,只是在数量和规模上不同,而且每次递归调用时,问题规模都能够缩小。那么用递归算法求n的阶乘,递归式正确的是?原创 2024-02-05 11:01:50 · 515 阅读 · 0 评论 -
2023年09月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
具体过程如下:如果列表元素的个数小于等于2的时候,经过一个判断就找到其中的最小值,所以可以先把数据从中间划分为左右两部分,然后通过递归把每一部分再划分为左右两部分,直到数据规模小于等于2的时候,返回结果,然后通过递归到最后为两个数据对比,我们就可以找到最小值。有一根绳子,第一次剪去一半多2米,第二次剪去剩下的一半多2米,第三次剪去剩下的一半多2米,第四次剪去剩下的一半多2米,第五次剪去剩下的一半多2米,此时绳子还剩2米?递推按照一定的规律来计算序列中的第一项,而问题显然是一个等比数列,可以用递推来解决。原创 2023-11-12 20:00:00 · 810 阅读 · 0 评论 -
2023年05月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
说明:本题中已知c的第n项计算公式,第1项时c的值为1,第2项可以由第1项的基础上用公式计算,程序中编写了函数fc实现计算c的结果,在函数fc中,第1项时返回1,故①处代码是return 1;顺序查找数字15,访问的数字是1,3,5,8,15;某同学用对分查找和顺序查找在数字序列“1,3,5,8,15,21,35,65”中查找数字15,两种方法都能访问到的下列数字是?函数tj功能统计整数n中每位数字出现的次数,当n=20230113时,0出现2次,1出现2次,2出现2次,3出现2次,因此答案选A。原创 2023-11-12 05:00:00 · 1159 阅读 · 0 评论 -
2023年03月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
例如, 字符串"ceit",使用密钥1432进行加密时,首先将字符串以 4 个字符为一组进行分组,然后对每组的字符进行换位,第1个和第3个字符位置不变,把第2个字符和第4个字符交换位置,从而得到密文"ctie"。在函数f中,变量s定义为global全局变量,第一次调用f(3)后返回的结果是3,此时变量s的值变成3,再次调用函数f(3)时,因s的初值已经是3了,因此结果是6。函数jsarea中,没有return语句,函数中计算的结果area不能传递给函数调用处,因此调用函数的结果是None。原创 2023-11-11 20:00:00 · 623 阅读 · 0 评论 -
2022年12月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
有一个游戏:有两个人,第一个人先从1和2中挑一个数字,第二个人可以在对方的基础上选择加1或者加2,然后又轮到第一个人,他也可以选择加1或者加2,之后再把选择权交给对方,就这样双方交替地选择加1或者加2,谁先加到20,谁就赢了。比如1,4,7,10,12,15,18,20算一种;2,5,8,11,14,17,20又是一种。调用没有参数的函数时,函数名后面也要跟一对圆括号,D错误。在有序列表[2,3,10,15,20,25,28,29,30,35,40]中,使用二分法查找20,需要查找多少次能找到?原创 2023-11-11 05:00:00 · 1287 阅读 · 0 评论 -
2022年09月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
Python中提供了大量的标准库模块,比如利用time模块可以获取计算机的时钟信息,包括日期和时间,若想要实现延时1分钟,则应该使用的语句是?二分查找法,也叫折半查找法。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素。导入模块中指定成员时,可采用的语句是:import 成员名1,成员名2 from 模块名。调用带有默认值参数的函数时,不能为默认值参数传递任何值,只能使用函数定义时设定的默认值。评价算法的优劣是:时间复杂度,空间复杂度,健壮性,正确性,可读性。原创 2023-11-10 20:00:00 · 700 阅读 · 1 评论 -
2022年06月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
这样,递归调用会在每一层中进行计算,直到 n 的值为 1 时,递归终止。在递归算法中,问题被分解为更小的子问题,然后通过递归调用解决子问题,最终达到解决原始问题的目的。说明:本题将每个大写字母转换为二进制数,①处代码是递归的方法将十进制转二进制,若整数不是0或1的时候,继续整除2,因此①处代码是xtob(n//2)+str(n%2);函数dtox有一个位置参数x,一个默认值参数base,默认值是2,本函数的功能是将参数x转换成base进制,保存列表s返回。著名的菲波那契数列为1,1,2,3,5,8,……原创 2023-11-10 05:00:00 · 1021 阅读 · 0 评论 -
2022年03月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
题目中mydict是一个字典,使用“**”后进行调用,形参a与b将获得对应键的值,如果使用“*”后进行调用,形参a与b将获得的是一个元组中对应的字符a和b,a+b实现字符串的连接。自定义函数名的命名规则与变量名的命名规则相同,如果有多个参数,各参数之间使用“,”隔开,即使函数没有参数,也必须在函数名后面保留一对空的“()”,冒号不可缺少,函数体相对于自定义函数的关键字必须保持统一的缩进。调用时函数返回值局部变量x=2,y=2,z=8,调用结束后返回主程序,全局变量x=2,y=3,c=8+3=11。原创 2023-11-09 20:42:14 · 877 阅读 · 0 评论 -
2021年12月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
6,7)的作业收齐,小组编号1的同学跟编号2的同学说“收作业了”,之后每位同学依次向后面的一位同学说要“收作业了”,直到最后,编号7的同学将自己的作业,上交到编号6的同学手中,编号6的同学将编号7的作业及自己的作业一起上交到编号5的同学,按这样的流程;用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成一些规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模稍大问题的解。原创 2023-11-09 20:28:29 · 888 阅读 · 0 评论 -
2021年09月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
现在假设前n-1个圆将平面分成了an-1个区域,当加入第n个圆(虚线圆)时,由题设这个圆与前面的n-1个圆一定交于2(n-1)个点,这2(n-1)个点把第n个圆分成2(n-1)条弧,而每条弧正好将前面的n-1个圆分成的区域中的其经过的每个区域分成2个区域,故新加入的第n个圆使所成的区域数增加了2(n-1)。没有编译的第三方库,即使能够下载,也无法安装。自定义函数change(a,b)的作用是交换变量a,b的值并返回变量a的值,change(2,3)返回的值为3,change(3,2)返回的值为2。原创 2023-11-09 10:48:27 · 861 阅读 · 0 评论 -
2021年06月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
ord(x)函数的作用是返回x对应的ASCII值,chr(x)函数的作用是返回x对应的字符,x%y表示x除以y取余数,已知大写英文字母26为一循环,所以语句“chr((ord(ch)+1-ord(“A”)) % 26+ord(“A”))”能实现大写英文字母后移一位。已知大写字母“A”对应的ASCII码值为65,变量ch保存输入的大写英文字母,则语句chr((ord(ch)+1-ord(“A”)) % 26+ord(“A”))能实现大写英文字母后移一位,如A→B, B→C, ……在函数体内部,可以使用。原创 2023-11-07 15:31:16 · 933 阅读 · 1 评论 -
2021年03月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
小明先是将金币分成50枚一堆,共两堆称重,在轻的那一堆中又分成两堆,接着在轻的25枚中分成12,12,1三堆称重,若两堆12枚的重量相同,则假币为单独剩下的那一枚,否则在轻的那一堆中继续按照之前的办法称下去,直到找到假金币。Python中没有asc(x)这个内建函数,ord(x)函数的作用是返回x对应的ASCII值,chr(x)函数的作用是返回x对应的字符,abs(x)函数的作用是返回x的绝对值。递归体现了“大事化小,小事化了”的思想,把大问题转换成小问题来解决,且有终止条件,即算法中的到x0=1为止。原创 2023-11-07 14:38:24 · 1160 阅读 · 0 评论 -
2024年03月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
在Python中,hex(2023)的功能是?( )A:将十进制数2023转化成十六进制数B:将十进制数2023转化成八进制数C:将十六进制数2023转化成十进制数D:将八进制数2023转化成十进制数答案:A理解python中数制转换函数,hex()函数是将十进制数转换为十六进制数字符串。下列表达式的值与其他三个选项不相等的是哪一个?( )A:(A)16B:(11)8C:(10)10D:(1010)2答案:B把选项全部转换成十进制,所以本题目选择B。A:(A)16 =(10)10B:(1原创 2024-05-28 06:00:00 · 740 阅读 · 0 评论 -
2023年12月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
range(1, 10, 2)可以生成包含第1个参数,不包含第2个参数,间隔为第3个参数的序列,所以range(1, 10, 2)生成的序列为1,3,5,7,9,用list函数转换为列表[1,3,5,7,9]。range(1, 11, 2)生成的序列也是1,3,5,7,9,不包含11,所以AB选项的结果相同。(2)处由于绿灯的显示时长一般为整数,若计算的结果为13.5,那么实际时长应从14开始, 若结果恰好为13.0,那么实际显示数据应是13,即在计算公式保持不变的情况下,我们应使得计算结果向上取整。原创 2024-02-05 10:43:15 · 1182 阅读 · 0 评论 -
2023年09月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
已知各个器件原始信息存在列表qj中:qj=[[2,1],[1,3],[0,2],[4,3],[12,4],[10,1],[4,1]],其中器件信息[2,1]表示器件送达时间是2,检测时长是1,其他器件信息类推。③qj[j][0]表示送达时间,qj[j][1]则表示的是检测时长,从qj[j][0]==qj[j+1][0]可知此处表示送达时间相同的情况下满足何种条件第j项会和第j-1项交换,显然要比的是检测时间,故而③处填写qj[j][1]>qj[j+1][1]。考查学生对ord()函数的理解。原创 2023-11-06 14:23:19 · 1199 阅读 · 0 评论 -
2023年05月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
内循环每趟主要从第一个元素开始,相邻元素两两相比,i=1时,j最终取到4,i=2时,j最终取到3,i=3时,j最终取到2,i=2时,j最终取到1,i=1时,j最终取到0,由于range()的终值是取不到的,故第一空应填len(a)-i;然后,我们判断该图书的数量是否大于0,如果是,则将图书数量减1,并输出借阅成功的消息;list()函数是python内置函数,功能是将序列中的元素转换为列表中的元素,转换中不改变元素的类型,故结果中的数字仍为字符串类型数字,元素包含逗号。因此,结果是(y//x, y%x)。原创 2023-11-06 13:38:43 · 1008 阅读 · 0 评论 -
2023年03月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
1个二进制位可以编制2个号码,即0、1,2个二进制位可以编制2×2个号码,即00、01、10、11, 3个二进制位可以编制2×2×2个号码,即000、001、010、011、100、101、110、111,依次类推,5个2相乘可以得到32个号码,不够用,故需要6位。数据的存储形式多种多样,如s1=[[“李亮”,“98”],[“王宁宁”,“95”],[“莫晓珍“,“88”]],s2=[“李亮”,“98”,“王宁宁”,“95”,“莫晓珍“,“88”],有关s1与s2下列说法正确的是?print()是输出语句。原创 2023-11-05 12:21:18 · 1385 阅读 · 2 评论 -
2022年12月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
在这个例子中,[5, 10, min(7, 4, 6)] 是一个列表,包含三个元素:5、10和通过调用 min(7, 4, 6) 求得的最小值。在这个例子中,min(3,2,4.3) 的参数是3、2和4.3,其中最小值是2。当前位置数字需要通过循环,逐个与之前位置的数字进行比较,所以正确答案是A,j=j-1,用于下一次循环时,获取前一个数字。本题代码中,for x in L1 是在L1列表中循环,每次取出的值x交给if语句进行判断,如果除以2的余数不等于0,就是奇数,则x+1,若等于0则x。原创 2023-11-05 06:00:00 · 1450 阅读 · 0 评论 -
2022年09月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
B: [[‘王鑫’, ‘86’, ‘90’, ‘92’, ‘99’, ‘94’, ‘95\n’], [‘杨小虹’, ‘93’, ‘97’, ‘95’, ‘90’, ‘86’, ‘85\n’], [‘李静’, ‘89’, ‘98’, ‘99’, ‘94’, ‘90’, ‘85\n’]]abs()是取绝对值,int()默认会取整,round()四舍五入,float()会把整数转为浮点数,min()获取列表中的最小值,所以,上列4个表达式,只有选项D的答案是6.0浮点数,不是整数6。否则返回False。原创 2023-11-04 22:50:47 · 981 阅读 · 0 评论 -
2022年06月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
根据给定的列表 c,c[1] 是 [‘钱二’,20,‘男’,‘西安’],而 c[1][3] 是该子列表的索引为 3 的元素,即 ‘西安’。该函数接受两个参数,分别是被除数和除数。enumerate()函数是Python的内置函数,可以将一个可遍历/可迭代对象按照设置的序号组成一个索引序列,通常结合for循环使用,返回一个列表,内部由序号和原有元素组成的元组组成。open()函数的参数’a’,是追加数据到文件末尾,seek()函数虽然能移动读取文件时的指针位置,但并不能移动写入文件时的位置,所以答案为错误。原创 2023-11-04 06:00:00 · 1110 阅读 · 1 评论 -
2022年03月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
在 (0,) 这个元组中,元素 0 被视为假值。在Python中,向csv文件中写入数据时,用逗号合并列表name中的元素,可以使用f.write(‘,’.join(name)+‘\n’)语句(f为文件对象名)。在这行代码中,我们使用 sorted() 函数对元组 (1, 3, 2) 进行排序,并将排序后的结果通过解构赋值的方式分别赋值给变量 a、b 和 c。元组 (1, 3, 2) 经过排序后的结果为 (1, 2, 3),因此,变量 a 被赋值为 1,变量 b 被赋值为 2,变量 c 被赋值为 3。原创 2023-11-03 18:00:00 · 1092 阅读 · 1 评论 -
2021年12月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
因此,0x100010表示的是十六进制数,其中第一个1表示16的平方(256),第二个1表示16的一次方(16),最后的0表示16的零次方(1)。首先读取小白兔的只数,然后读取每只小白兔的身高信息,进行由矮到高的处理,最后输出排好队的每只小白兔的身高,请你补全代码。正整数索引从0开始,表示序列中的元素位置,而负整数索引从-1开始,表示从序列末尾开始的元素位置。文件中每一行存储一个IP地址,下列代码实现了读取数据,每次读取一行数据,都删除了行末的换行符,最后逆序输出文件中的每行IP地址,请你补全代码。原创 2023-11-03 09:02:13 · 1237 阅读 · 0 评论 -
2021年09月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
小明编写了一个插入排序的算法,为列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行排序,他在调试时,如下图所示有意修改了循环的次数,请问,现在代码运行后print(arr)打印出的结果是。在这个例子中,我们可以定义一个函数,用于判断一个数是否为3的倍数,然后将该函数和列表[1,2,3,4,5,6,7,8,9]传递给filter函数。在描述中,班主任通过不断将视频进度拖动到前半部分的一半,以缩小搜索范围,最终锁定了物品丢失的真相。例如,\t表示制表符,\n表示换行符。原创 2023-11-01 16:39:01 · 1016 阅读 · 0 评论 -
2021年06月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
选项A: 36是用户输入的内容,选项B: "36"是用户输入的字符串,选项D: "18"是将计算结果转换为字符串。所以,每次调用readline()方法后,程序会读取文件的下一行,而不是一直读取第一行的内容。选项A正确,选项B.type(100)的结果是,选项C.oct(100)的值是’0o144’,获得八进制数,选项D.hex(100)的值是’0x64’,获得十六进制数。接下来,代码使用两层嵌套循环来比较列表a中的元素,如果前一个元素的年龄小于后一个元素的年龄,则交换它们的位置。原创 2023-11-01 10:10:37 · 1022 阅读 · 0 评论 -
2021年03月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
在选项B中,sum((1, 2, 3), 4) 的结果也是 10,因为 1 + 2 + 3 + 4 = 10。在第一趟排序中,比较的是相邻的元素对,如果前面的元素大于后面的元素,则进行交换。根据给定的列表 [10, 1, 9, 6, 3, 4],在第一趟排序中,比较的元素对是 (10, 1),(1, 9),(9, 6),(6, 3),(3, 4)。根据比较结果,需要进行以下交换:(10, 1),(9, 6),(6, 3),(3, 4)。因此,abs(-2.3)的结果是2.3的绝对值,即2.3,而不是2。原创 2023-10-21 23:09:48 · 1537 阅读 · 0 评论 -
2020年12月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
字符’1’的ASCII值是49,字符’2’的ASCII值是50,字符’3’的ASCII值是51。A:int(“0b10000”, 10) - 这将尝试将字符串 “0b10000” 转换为十进制数,但是 “0b10000” 是二进制表示法,应该将第二个参数设置为2,即 int(“0b10000”, 2)。D:int(“0x10”, 10) - 这将尝试将字符串 “0x10” 转换为十进制数,但是 “0x10” 是十六进制表示法,应该将第二个参数设置为16,即 int(“0x10”, 16)。原创 2023-10-19 22:07:10 · 1091 阅读 · 0 评论 -
2020年09月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
2个小队将数据进行了从小到大排序: a = [1,3,4,6,7,13,17,21], b = [2,5,6,8,10,12,14,16,18] ,请明明将这2个小队的数据进行合并,生成为一个从小到大有序的列表。正确的写法是将列表的元素连接成一个字符串,如 f.write(‘’.join([‘See’,’ you’,’ next’,’ time’,‘.\n’]))。因此,all((0,))的结果为False。所以,正确的结果是一个包含字符 ‘1’、‘2’、‘3’ 和 ‘4’ 的列表。原创 2023-10-17 21:30:00 · 1232 阅读 · 0 评论