03 202109青少年软件编程(Python)等级考试试卷(三级)

标签:
普通文字版答案
2024-11-01
| 11页
| 91人阅读
| 0人下载

内容正文:

青少年软件编程(Python)等级考试试卷(三级) 202109真题与解析 分数:100  题数:37 测试时长:60分钟 一、单选题(共25题,每题2分,共50分) 1. 使用map函数可以实现列表数据元素类型的转换,而无需通过循环。则将列表L=['1','3','5','7','9']转换为列表[1,3,5,7,9]的函数写法为?( ) A、map(int,L) B、list(map(int,L)) C、map(L,int) D、list(map(L,int)) 2. 以下关于len()函数的说法中错误的是?( ) A、len()函数可以用于返回字符串中的字符数 B、len()函数可以用于返回列表中的元素个数 C、len("I love China" )的结果为10 D、len("I love China" )的结果为12 3. 关于Python异常处理的解释,描述正确的是?( ) A、一般情况下,在Python正常处理程序时也会发生一个异常 B、异常处理增加了程序代码长度,降低了可读性 C、在程序中加入异常处理会使程序出现错误 D、当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行 4. Python文件常用的写入方式有w+和a+,它们的相同点是?( ) A、覆盖写 B、追加写 C、若文件不存在就创建 D、每次写的时候会自动覆盖上一次的内容 5. Python标准库math中用来计算平方根的函数是?( ) A、sqrt B、max C、min D、print 6. 某同学上完体育课回教室发现丢失了重要的物品,于是他找到班主任求助。班主任打开视频监控,然后把视频进度拖到这节课中间时间点,发现水杯已经丢了,于是判定是前半节课丢的。接着又把视频进度拖到前面一半的一半……重复以上过程,很快就锁定了物品丢失的真相。以上描述,体现出了哪一种算法思想?( ) A、二分法 B、选择排序法 C、递归法 D、迭代法 7. 去掉列表中的部分数据,例如去掉列表[1,2,3,4,5,6,7,8,9]中3的倍数,可以使用哪一函数来实现?( ) A、map B、filter C、zip D、enumerate 8. 定义一个列表 num=list(range(3,6)) print(num) 输出的结果是?( ) A、[0,1,2,3] B、[0,1,2,3,4,5,6] C、[3,4,5] D、[3,4,5,6] 9. print(divmod(34,8))运行结果是?( ) A、4 2 B、4 C、2 D、2 4 10. 八进制10的十进制值是?( ) A、8 B、10 C、20 D、24 11. a=3.1415926 round(a,2) 运行结果是?( ) A、3 B、3.14 C、3.141 D、3.1415926 12. Python内置函数( )用来返回序列中的最小元素?( ) A、mini() B、read() C、max() D、min() 13. 下面表达式的运行结果与print(divmod(37,9))运行结果相同的是?( ) A、print(37%9,37//9) B、print((37%9,37//9)) C、print(37//9,37%9) D、print((37//9,37%9)) 14. 已知输入变量x = 'hello world', 调用函数x.replace('l', 'h')的结果为?( ) A、'hello world' B、'lello world' C、'hello worhd' D、'hehho worhd' 15. 下列十六进制数中,转换为二进制数后含有偶数个“1”的是?( ) A、0xF8 B、0xE0 C、0xA9 D、0x15 16. 以下表达式是十六进制整数的选项是?( ) A、16 B、0b16 C、0x16 D、'0x16' 17. 给已有文件“实验中学学生花名册.txt”增加两名学生,而且不能覆盖原有的内容。 下面代码正确的是?( ) A、filename="实验中学学生花名册.txt" with open(filename,"w") as f: f.write("黎明 ") f.write("方芳 ") B、filename="实验中学学生花名册.txt" with open(filename,"r") as f: f.write("黎明 ") f.write("方芳 ") C、filename="实验中学学生花名册.txt" with open(filename,"r+") as f: f.write("黎明 ") f.write("方芳 ") D、filename="实验中学学生花名册.txt" with open(filename,"a") as f: f.write("黎明 ") f.write("方芳 ") 18. 以下关于二进制整数的定义,正确的是?( ) A、0B1014 B、0b1010 C、0b1019 D、0bC3F 19. 设s="happy time",那么print(s[-2:])的结果是?( ) A、me B、happy C、time D、ha 20. filename = "中国诗人.txt" with open(filename,"w") as file: file.write("唐 李白 ") file.write("唐 白居易 ")  以上程序执行程序后,"中国诗人.txt"文件内容为?( ) A、唐 李白 唐 白居易 B、唐 李白 唐 白居易 C、唐 李白 唐 白居易 D、唐 李白 唐 白居易 题型:单选题 21. ord()函数可以将一个字符转化成ascii码值,而chr函数则是相反的过程。 已知'a'的ascii码值为97,'A'的ascii码值为65, 则Python完成小写转大写的核心代码为?( ) a=input("请输入一个小写字母: ") b=________________ print("转化结果为:"+b) A、chr(ord(a)-31) B、ord(chr(a)-32) C、chr(ord(a)+32) D、chr(ord(a)-32) 22. 关于文件的读写,下列解释表述错误的是?( ) A、读取模式('r') B、写入模式('w') C、读写模式('w') D、附加模式('a') 23. 小明编写了一个插入排序的算法,为列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行排序,他在调试时,如下图所示有意修改了循环的次数,请问,现在代码运行后print(arr)打印出的结果是?( ) A、[5, 33, 21, 67, 39, 73, 7, 43] B、[5, 21, 33, 67, 39, 43, 7, 73] C、[5, 21, 33, 39, 67, 7, 73, 43] D、[5, 21, 33, 67, 39, 73, 7, 43] 24. 异常处理的作用是不想让程序终止,如果出错了需要特殊处理。下列实现异常处理的语句是?( ) A、if /else B、try/except C、Warning D、Error 25. 小明想对列表arr = [5, 33, 21, 67, 39, 73, 7, 43 ]中的数值进行排序,于是编写了“冒泡排序”代码,如下图。 请问,下图红线处,应该填入哪段代码?( ) A、 B、 C、 D、 二、判断题(共10题,每题2分,共20分) 26. readline()执行结果为字符串,readlines()执行结果为列表。 27. 猜一个20以内的随机数二分法比顺序查找的效率更高。 28. Python中避免使用反斜线'\'指定文件路径时出错,如\t;常常使用斜线'/'或者双反斜线'\\'。 29. bool函数判断整数参数的布尔值时,只要是非0参数,结果就为True。 30. 二进制数转换为十六进制的方法是:从右到左将4位分成一段,左边不满4位的可以用0补满,分别 31. Python中的dir函数是一个文件夹操作函数,其主要作用是创建一个文件夹。 32. 二进制数与十六进制数的末位是“1”,各转换为十进制数后都是奇数。 33. 在try-finally异常处理结构中,无论是否发生异常,都会处理最后的代码。 34. song.csv文件中第一列是歌曲名,使用以下Python程序可以把歌曲名单一一读取出来。 import csv with open('song.csv', 'r') as f: reader = csv.reader(f) for i in reader: print(i[0]) 35. 执行代码 x, y, z = sorted([1, 3, 2]) 之后,变量y的值为 1 。 三、编程题(共3题,共30分) 36. 输入10个数据进行升序排序,并在这有序数据上插入一个数据,使之仍然有序。 程序代码如下,请补全。 lis=[] for i in range(10): x=int(input('输入待排序数据%d:'%(i))) lis.append(x)  for i in range( ① ): for j in range(i,len(lis)): if ② : lis[i],lis[j]=lis[j],lis[i] print(lis) n=int(input('输入一个需要插入的数据:')) lis.append(n) for i in range( ③ ): if ④ : for j in range(i,len(lis)): lis[j],lis[-1]= ⑤ break print(lis) 37. 小文的运动时间数据存储在文件“sport.csv”中,数据内容如下图显示: 下列代码实现了读取数据,求和并统计个数,输出平均时长,并保留2位小数,请你补全代码。 import csv with open("/data/①") as f: rows = list(csv.reader(f)) s=0 c=0 for row in rows[1:]: s+=int(②) c=c+1 print(round(③,2)) 38. 给定一个整数 num,从 1 到 num 按照下面的规则返回每个数: 如果这个数被 3 整除,返回 'Apple'。 如果这个数被 5 整除,返回 'Pie'。 如果这个数能同时被 3 和 5 整除,返回 'ApplePie'。 如果这个数既不能被 3 也不能被 5 整除,返回这个数字的字符串格式。 n=int(input("请输入一个数字:")) results=[] for i in range(1,①): if ②: results.append("ApplePie") elif i%3==0: results.append("Apple") elif i%5==0: results.append("Pie") else: results.append(③) print(results) 参考答案与解析 一、单选题 1. B - `map(int,L)`会返回一个可迭代对象,要转换为列表需要用`list()`函数包裹起来,即`list(map(int,L))`。 2. C - len("I love China" )的结果为12,所以C项错误。空格也要统计入内。 3. D - 当 Python 脚本发生异常时如果不捕获处理,程序会终止执行。异常处理不会降低可读性,也不会使程序出现错误,在正常处理程序时一般不会发生异常。 4. C - `w+`和`a+`模式若文件不存在就创建文件;`w+`是覆盖写,`a+`是追加写;每次写的时候自动覆盖上一次内容的是`w+`模式。 5. A - Python 标准库`math`中用来计算平方根的函数是`sqrt`。 6. A - 不断将区间一分为二,重复查找过程,体现了二分法思想。 7. B - `filter`函数可以根据条件过滤列表中的元素,可用于去掉列表中的部分数据。 8. C - `range(3,6)`生成的序列是从3开始到6之前的整数,即3、4、5。 9. A - `divmod(34,8)`返回商和余数,34除以8商为4,余数为2。 10. A - 八进制10转换为十进制是1×8^1 + 0×8^0 = 8 + 0 = 8。 11. B - `round(a,2)`表示将`a`保留两位小数,结果为3.14。 12. D - `min()`用来返回序列中的最小元素。 13. D - `divmod(37,9)`返回的是一个元组,等价于`print((37%9,37//9))`。 14. D - `x.replace('l', 'h')`将字符串中的`l`替换为`h`,所以结果为`hehho worhd`。 15. C -分别将选项中的十六进制数转换为二进制数:A 选项\(0xF8\)转换后“1”的个数是 5 个(奇数);B 选项\(0xE0\)转换后是 3 个(奇数);C 选项\(0xA9\)转换后是 4 个(偶数);D 选项\(0x15\)转换后是 3 个(奇数),答案是 C。 16. C - 以`0x`开头的是十六进制整数的表示方法。 17. D - `a`模式会覆盖原有内容写文件;`r`模式是只读模式不能写;`r+`模式虽然可读可写但也是覆盖写;`a`模式是追加写,不会覆盖原有内容。 18. B - 二进制整数以`0b`开头,且只能由0和1组成。 19. A - `s[-2:]`表示取字符串`s`的后两个字符。 20. B - file.write("唐 李白 ") , 代表换行 21. D - 已知`'a'`的 ASCII 码值为 97,`'A'`的 ASCII 码值为 65,将小写字母转换为大写字母需要将其 ASCII 码值减去 32,然后用`chr`函数转换回字符。 22. C - `w`模式是写入模式,不是读写模式,读写模式是`r+`等。 23. D - 题考查学生对“插入排序”算法的理解,只循环了3次,所以正确答案是选项D。 24. B - `try/except`用于实现异常处理。 25. D -本题考查学生对冒泡排序算法的理解,正确答案为选项D 二、判断题 26. √ - `readline()`每次读取一行,结果为字符串;`readlines()`读取所有行,结果为列表。 27. √ - 对于猜一个 20 以内的随机数,二分法比顺序查找效率更高,因为二分法每次可以排除一半的可能性。 28. √ - 使用反斜线指定文件路径容易出错,常使用斜线或双反斜线。 29. √ - 在 Python 中,`bool`函数判断整数参数时,非 0 参数结果为`True`。 30. √ -四位二进制表示一位十六进制。 31. × - `dir`函数不是文件夹操作函数,它主要用于返回对象的属性和方法列表。 32. √ - 二进制数与十六进制数的末位是“1”,转换为十进制数后都是奇数。 33. √ - 在`try-finally`结构中,无论是否发生异常,都会执行`finally`中的代码。 34. √ - 代码中使用`csv.reader`读取 CSV 文件,遍历并打印第一列歌曲名是正确的。 35. × - 执行代码`x, y, z = sorted([1, 3, 2])`之后,变量`y`的值为2。 三、编程题 36. 参考答案: ① len(lis)-1 (或 len(lis)) (3分) ② lis[i] > lis[j] (4分) ③ len(lis)-1 (3分) ④ lis[i] > n (2分) ⑤ lis[-1],lis[j] (4分) ①处应该填入len(lis),这样能确保对列表中的每个元素都进行一轮冒泡排序操作。 ②处应该填入lis[i] > lis[j],如果前一个元素大于后一个元素,则进行交换,实现升序排序。 ③处应该填入len(lis)-1,因为插入操作只需要遍历到倒数第二个元素即可确定插入位置。 ④处应该填入lis[i] > n,当找到第一个大于待插入数据的元素时,确定插入位置。 ⑤处应该填入lis[-1], lis[j],将待插入的数据与后续的元素依次交换,实现插入操作。 试题解析: lis=[] for i in range(10): x=int(input('输入待排序数据%d:'%(i))) lis.append(x) for i in range(len(lis)-1): for j in range(i,len(lis)): if lis[i] > lis[j]: lis[i],lis[j]=lis[j],lis[i] print(lis) n=int(input('输入一个需要插入的数据:')) lis.append(n) for i in range(len(lis)-1): if lis[i] > n: for j in range(i,len(lis)): lis[j],lis[-1]=lis[-1],lis[j] break print(lis) 37、参考答案: ① sport.csv(1分) ② row[0](2分) ③ s/c(1分) 1. `with open("/data/①") as f:`: - 这里需要打开文件“sport.csv”,所以①处应填入`sport.csv`。 2. `s+=int(②)`: - 遍历每一行数据,要将每一行的第一个值(时长数据)累加起来,每一行数据是一个列表,时长数据在第一个位置,所以②处应填入`row[0]`。 3. `print(round(③,2))`: - 最后要输出平均时长,平均时长等于总时长除以数据个数,总时长存储在`s`中,数据个数存储在`c`中,所以③处应填入`s/c`。 试题解析: import csv with open("sport.csv") as f: rows = list(csv.reader(f)) s=0 c=0 for row in rows[1:]: s+=int(row[0]) c=c+1 print(round(s/c,2)) 38. 参考答案: ① n+1(3分) ② i%3==0 and i%5==0(4分) ③ str(i)(3分) ①处应该填入n + 1,这样才能保证遍历从 1 到n的所有数字。 ②处应该填入i % 3 == 0 and i % 5 == 0,判断这个数是否能同时被 3 和 5 整除。 ③处应该填入str(i),将不能被 3 和 5 整除的数字转换为字符串格式添加到结果列表中。 试题解析: n=int(input("请输入一个数字:")) results=[] for i in range(1,n+1): if i%3==0 and i%5==0: results.append("ApplePie") elif i%3==0: results.append("Apple") elif i%5==0: results.append("Pie") else: results.append(str(i)) print(results) 学科网(北京)股份有限公司 $$

资源预览图

03 202109青少年软件编程(Python)等级考试试卷(三级)
1
03 202109青少年软件编程(Python)等级考试试卷(三级)
2
03 202109青少年软件编程(Python)等级考试试卷(三级)
3
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。