Python计算机二级编程题真题及考点总结【纯干货】(下篇) 您所在的位置:网站首页 江苏省计算机二级考试基础知识题型有哪些 Python计算机二级编程题真题及考点总结【纯干货】(下篇)

Python计算机二级编程题真题及考点总结【纯干货】(下篇)

2024-07-03 10:58| 来源: 网络整理| 查看: 265

文章目录 一、前言二、编程题详解2.1 简单应用题2.1.1 简单应用题-真题2.1.2 简单应用题-考点总结考点一:turtle库绘图考点二:数据类型处理相关 2.2 综合应用题考点三:文件操作 三、编程题考点汇总【精华】四、小结 声明:例题均来源于网络,仅供学习参考,若涉侵权请联系删除

附上篇链接:Python计算机二级编程题真题及考点总结【纯干货】(上篇).

一、前言

       首先再次强调一下,Python二级的编程题包括:基本操作题、简单应用题与综合应用题三大类,上篇内容主要包括基本操作题真题+考点总结,本篇接着上一篇继续采用真题+总结的形式,先列举考试真题模拟软件中若干简单应用题与综合应用题的真题,再针对相应考点进行总结(尽可能只总结考点内容,减少记忆量)。

二、编程题详解 2.1 简单应用题

       总体而言,该类题型的难度介于基本操作题和综合应用题之间,考题内容也有迹可循,只要掌握一定的Python基础,就基本能够拿下所有分数(10+15)分。下面列举若干份考试真题供小伙伴们练习,后面会再针对遇到的重要知识点进行总结,巩固加深对考点的记忆~

2.1.1 简单应用题-真题 例1:使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个边长为100的三角形,效果如下图所示。 // 考生文件初始代码 import turtle for i in range(_____): turtle.seth(_____) ________(100) // 参考答案 import turtle for i in range(3): turtle.seth(i*120) turtle.fd(100) 例2:输入一组水果名称并以空格分隔。示例如下:         苹果  芒果  草莓  芒果  苹果  草莓  芒果  香蕉  芒果  草莓         统计各类型数量,按数量多到少的顺序输出类型及对应数量,以英文冒号分隔,每类型一行。输出结果保存在考生文件夹下,命名为“PY202.txt”。输出参考如下: 芒果:4 草莓:3 苹果:2 香蕉:1 // 考生文件初始代码 fo = open("PY202.txt","w") txt = input("请输入类型序列: ") ... d = {} .... ls = list(d.items()) ls.sort(key=lambda x:x[1], reverse=True) # 按照数量排序 for k in ls: fo.write("{}:{}\n".format(k[0], k[1])) fo.close() // 参考答案 fo = open("PY202.txt","w") txt = input("请输入类型序列: ") fruits = txt.split(" ") d = {} for fruit in fruits: d[fruit] = d.get(fruit,0) + 1 ls = list(d.items()) ls.sort(key=lambda x:x[1], reverse=True) # 按照数量排序 for k in ls: fo.write("{}:{}\n".format(k[0], k[1])) fo.close() 例3:使用turtle库的turtle.fd()函数和turtle.seth()函数绘制一个正方形,边长为200像素,效果如下图所示。 // 考生文件初始代码 import turtle d = 0 for i in range(_____): turtle.fd(_____) d = _____ turtle.seth(d) // 参考答案 import turtle d = 0 for i in range(4): turtle.fd(200) d = d + 90 turtle.seth(d) 例4:键盘输入课程名称及考分,信息间采用空格分隔,每个课程一行,空行回车结束录入,示例格式如下: 数学  98 语文  89 英语  94 物理  74 科学  87         屏幕输出得分最高的课程及成绩,得分最低的课程及成绩,以及平均分(保留2位小数),输出保存在考生文件夹下,命名为“PY202.txt ”。格式如下:         最高分课程是数学98,最低分课程是物理74.平均分是88.40 // 考生文件初始代码 #请在...处使用一行或多行代码替换 #请在______处使用一行代码替换 fo = open("PY202.txt","w") data = input("请输入课程名及对应的成绩:") # 课程名 考分 ... while data: ... data = input("请输入课程名及对应的成绩:") ... fo.write("最高分课程是{} {}, 最低分课程是{} {}, 平均分是{:.2f}".format(______)) fo.close() // 参考答案 fo = open("PY202.txt","w") data = input("请输入课程名及对应的成绩:") # 课程名 考分 score_dict = {} while data: course, score = data.split(' ') score_dict[course] = eval(score) data = input("请输入课程名及对应的成绩:") course_list = sorted(list(score_dict.values())) max_score, min_score = course_list[-1], course_list[0] aver_score = sum(course_list) / len(course_list) max_course, min_course = '', '' for item in score_dict.items(): if item[1] == max_score: max_course = item[0] if item[1] == min_score: min_course = item[0] fo.write("最高分课程是{} {}, 最低分课程是{} {}, 平均分是{:.2f}".format( max_course, max_score, min_course, min_score, aver_score)) fo.close() 例5:使用turtle库的turtle.fd()函数和turtle.left()函数绘制一个边长为200的太阳花,效果如下图所示。 // 考生文件初始代码 import turtle turtle.color(_____,______) turtle._____ for i in range(36): turtle.fd(_____) turtle.left(_____) turtle.end_fill() // 参考答案 import turtle turtle.color("red","yellow") turtle.begin_fill() for i in range(36): turtle.fd(200) turtle.left(170) turtle.end_fill() 例6:编写程序,实现将列表ls =[51,33,54,56,67.88,431,111,141,72,45,2.,78,13,15,5,69]中的素数去除,并输出去除素数后列表的元素个数,结果保存在考生文件夹下,命名为“PY202.txt”。请结合程序整体框架,补充横线处代码。 // 考生文件初始代码 fo = open("PY202.txt","w") def prime(num): ......#可以是多行代码 ls = [51,33,54,56,67,88,431,111,141,72,45,2,78,13,15,5,69] lis = [] for i in ls: if prime(i) == False: ______#一行代码 fo.write(">>>{},列表长度为{}".format(_____,______)) fo.close() // 参考答案 fo = open("PY202.txt","w") def prime(num): for i in range(2,num): if num%i == 0: return False return True ls = [51,33,54,56,67,88,431,111,141,72,45,2,78,13,15,5,69] lis = [] for i in ls: if prime(i) == False: lis.append(i) fo.write(">>>{},列表长度为{}".format(lis,len(lis))) fo.close() 例7:使用turtle库的turtle.color()函数和turtle.circle()函数绘制一个黄底黑边的圆形,半径为50。效果如下图。 // 考生文件初始代码 import turtle turtle.color('black','yellow') turtle._____ turtle.circle(_____) turtle._____ // 参考答案 import turtle turtle.color('black','yellow') turtle.begin_fill() turtle.circle(50) turtle.end_fill() 例8:闰年分为普通闰年和世纪闰年。普通闰年是指能被4整除但不能被100整除的年份,世纪闰年是指能被400整除的年份。请编写一个函数,能够实现以下功能:输入一个年份,能够判断这个年份是否为闰年,并且能打印在屏幕上。 例如:输入1900,输出为1900年不是闰年。输入2004,输出为2004年是闰年。输入、2000,输出为2000年是间年。 // 考生文件初始代码 #请在...处使用一行或多行代码替换 def judge_year(year): ... year = eval(input("请输入年份:")) ... // 参考答案 def judge_year(year): if (year%4 == 0 and year%100 != 0) or year % 400 == 0 : print(year,"年是闰年") else: print(year,"年不是闰年") year = eval(input("请输入年份:")) judge_year(year) 例9:使用turtle库的turtle.circle()函数、turtle.seth()函数绘制一个四瓣花图形,效果如下图所示。 // 考生文件初始代码 import turtle for i in range(_____): turtle.seth(_____) turtle.circle(50,90) turtle.seth(_____) turtle.circle(50,90) turtle._____ // 参考答案 import turtle for i in range(4): turtle.seth(90*(i+1)) turtle.circle(50,90) turtle.seth(-90+i*90) turtle.circle(50,90) turtle.hideturtle() 例10:使用Python的异常处理结构编写对数计算,要求底数大于0且不等于1,真数大于0,且输入的必须为实数,否则抛出对应的异常。 // 考生文件初始代码 #请在...处使用一行或多行代码替换 #请在___处使用一行代码替换 _____ try: a = eval(input('请输入底数:')) b = eval(input('请输入真数:')) c = _____ except ValueError: ... except ZeroDivisionError: print('底数不能为1') except NameError: print('输入必须为实数') else: print(c) // 参考答案 import math try: a = eval(input('请输入底数:')) b = eval(input('请输入真数:')) c = math.log(b, a) except ValueError: if a 0: print('底数小于等于0') elif b 0: print('真数小于等于0') elif a 5: print('猜测超过5次,答题失败') break else: if letter_input == letter: print('恭喜你答对了,总共猜了{}次'.format(count)) break elif letter_input > letter: print('你输入的字母排在该字母之后') elif letter_input < letter: print('你输入的字母排在该字母之前') else: print('未知错误') 例16:考生文件夹下的文件data.txt是教育部中国大学MOOC平台的某个HTML页面源文件,里面包含了我国参与MOOC建设的一批大学或机构列表。     问题1:请编写程序,从data.txt中提取大学或机构名称列表,将结果写入文件univ.txt,每行一个大学或机构名称,按照大学或机构在data.txt出现的先后顺序输出,样例如下: … 北京理工大学 … 北京师范大学 … 提示:所有大学名称在data.txt文件中以alt="北京理工大学"形式存在。在考生文件夹下给出了程序框架文件PY301-1.py,补充代码完成程序(10分) 以下给出了data.txt文件中的某个关键元素文本(编写代码的关键): < a class=“u-usity f-fl” href=“https://www.icourse163.org/university/PKU” target=“blank"> < img class="" id="" src="%E5%A4%A7%E5%AD%A6%E5%88%97%E8%A1%A8%E4%B8%AD%E5%9B%BD%E5%A4%A7%E5%AD%A6MOOC(%E6%85%95%E8%AF%BE)_files/370D4ADD98FE6993DE1970DB0060ACCA.png” alt=“北京大学” width=“164” height=“60”> < /a>    问题2:请编写程序,从univ. txt文件中提取大学名称,大学名称以出现大学或学院”字样为参考,但不包括“大学生”等字样,将所有大学名称在屏幕上输出,大学各行之间没有空行,最后给出名称中包含“大学和学院的名称数量,同时包含“大学”和“学院”的名称以结尾的词作为其类型。样例如下(样例中数量不是真实结果) : … 北京理工大学 … 长沙师范学院 … 包含大学的名称数量是10 包含学院的名称数量是10 在考生文件夹下给出了程序框架文件PY301-2.py,补充代码完成程序(10分) // 考生文件初始代码PY301-1.py ____________ # 此处可多行 f = open("univ.txt", "w") ____________ # 此处可多行 f.close() // 考生文件初始代码PY301-2.py f = open("univ.txt", "r") n = 0 # 包含大学的名称数量 ____________ # 此处可多行 f.close() print("包含大学的名称数量是{}".format(n)) // 参考答案PY301-1.py fi = open("data.txt", "r") # 此处可多行 f = open("univ.txt", "w") L = [] # 此处可多行 lines = fi.readlines() for line in lines: if 'alt=' in line: begin = line.find('alt=') end = line.find('"', begin + 5) L.append(line[begin + 5:end]) for i in L: f.write(i + '\n') fi.close() f.close() // 参考答案PY301-2.py f = open("univ.txt", "r") n = 0 # 包含大学的名称数量 m = 0 # 此处可多行 L = [] lines = f.readlines() for line in lines: line=line.strip('\n') if "学院" in line and '大学'in line and '大学生' not in line: L.append(line) if line[-2:]=="学院": m += 1 else: n+=1 continue if "学院" in line: L.append(line) m += 1 if "大学" in line and "大学生" not in line: L.append(line) n += 1 for i in L: print(i) f.close() print("包含大学的名称数量是{}".format(n)) print("包含学院的名称数量是{}".format(m)) 考点三:文件操作

       文件操作的知识点是综合题必考考点,相信各位小伙伴从上面的这些例题中已经可以发现,综合应用题一般都会给出某.txt或.csv文件,然后要求读取文件并对读取文本(注意:一般都是文本)进行相应的处理后,最后输出结果文件。因此,可以认为这道题虽然考点涉及面较广,但是题目都是围绕文件处理展开,下面对部分重点考点进行总结: 考点三        另外,这部由于与文本(字符串)处理密切相关,故而关于字符串的知识点需要大家重点掌握,这边再强调一下两个关于字符串的重点函数:str.split()和str.strip() 。

三、编程题考点汇总【精华】

       划重点!!!下图为个人总结的所有编程题考点脑图供各位小伙伴学习参考,里面应该说基本涵盖了三类编程题的所有重要考点,如果能熟练掌握,编程题部分拿到50分左右基本不成问题!!因上传图片大小限制若需要高清图片的小伙伴可以随时滴滴我(^_−)☆~ 总结

四、小结

       有关于本篇文章的相关问题或者有Python二级题目不理解的小伙伴可以随时评论or私信我,看到后我都会逐一回复哒q(≧▽≦q)       PS:今年考完Python二级后才逐渐用Python做毕设、接小项目,文中有不足的地方还请各位大佬批评指正(〃‘▽’〃)!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有