【知识库】计算机二级python操作题(一)
文章目录
- 基本操作题1
- 基本操作题2
- 基本操作题3
- 简单应用题1
- 简单应用题2
- 综合应用题1
基本操作题1
考生文件夹下存在一个文件PY101.py,请写代码替换横线,不修改其他代码,实现以下功能:
键盘输入字符串s,按要求把s输出到屏幕,格式要求:宽度为30个字符,星号字符 ∗*∗ 填充,居中对齐。如果输入字符串超过30位,则全部输出。
例如:键盘输入字符串 s 为"Congratulations",屏幕输出 ∗∗∗∗∗∗∗*******∗∗∗∗∗∗∗Congratulations∗∗∗∗∗∗∗∗********∗∗∗∗∗∗∗∗
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码s = input("请输入一个字符串:")
print("{______}".format(s))
答案:
s = input("请输入一个字符串:")
print("{:*^30}".format(s))
基本操作题2
考生文件夹下存在一个文件PY102.py,请写代码替换横线,不修改其他代码,实现以下功能:根据婓波那契数列的定义,F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n>=2),输出不大于50的序列元素
例如:
屏幕输出实例为:0,1,1,2,3,…(略)
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码a, b = 0, 1
while ______:print(a, end=',')a, b = ______
答案:
a, b = 0, 1
while a <= 50:print(a, end=',')a, b = b, a+b
基本操作题3
考生文件夹下存在一个文件PY103.py,请写代码替换横线,不修改其他代码,实现以下功能:键盘输入一句话,用jieba
分词后,将切分的词组按照在原话中逆序输出到屏幕上,词组中间没有空格。
示例如下:
输入:
我爱老师
输出:
老师爱我
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码import jieba
txt = input("请输入一段中文文本:")
______
for i in ls[::-1]:______
答案:
import jieba
txt = input("请输入一段中文文本:")
ls = jieba.lcut(txt)
for i in ls[::-1]:print(i,end="")
简单应用题1
考生文件夹下存在一个文件PY201.py,请写代码替换横线,不修改其他代码,实现以下功能:使用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.py,该文件是本题目的代码提示框架,其中代码可以任意修改。请在该文件中编写代码,以实现如下功能:
键盘输入一组水果名称并以空格分隔,共一行。示例格式如下:苹果 芒果 草莓 芒果 苹果 草莓 芒果 香蕉 芒果 草莓
统计各类型的数量,从数量多到少的顺序输出类型及对应数量,以英文冒号分隔,每个类型一行。输出结果保存在考生文件夹下,命名为“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()
综合应用题1
考生文件夹下存在3个Python源文件,分别对应3个问题;1个文本文件,作为本题目输入数据,请按照源文件内部说明修改代码,实现以下功能:
《卖火柴的小女孩》是丹麦童话故事作家安徒生的一篇童话故事,发表于1846年。主要讲了一个卖火柴的小女孩在富人阖家欢乐、举杯共庆的大年夜冻死在街头的故事。这里给出《卖火柴的小女孩》的一个网络版本文件,文件名为“小女孩.txt”。,内容如下:
天冷极了,下着雪,又快黑了。这是一年的最后一晚——大年夜。在这又冷又黑晚上,一个光着头赤着脚的小女孩在街上走着。她从家里出来的时候还穿着一双拖鞋,但是有什么用呢?那是一双很的大拖鞋——那么地,一向是她妈妈一穿的。她穿过马路的时候,两辆马车飞快地冲过来,吓得她把鞋都跑掉了。一只怎么也找不着,另一只叫一个小男孩捡起来拿着跑了抢走了。他说,将来他有了自己的孩子时,可以拿它当摇篮。
小女孩只好赤光脚走,一双小脚冻得红一块青一块了。她的旧围裙里兜着许多火柴,手里还也还拿着一把。这一整天里,谁也没有买过她一根火柴,谁也没有没有给过她一个钱。可怜的小女孩!她又冷又饿,哆哆嗦嗦地地向前走。雪花落在她的金黄的长头发上,那头发轻轻打成卷儿,看起来很美丽。不过她没注意这些。每个窗户里都透出灯光来,街上飘着一股烤鹅的香味,因为这是大年之夜——她可望不了这个。
她在一座房子的墙角里坐下来,蜷着腿缩成一团。她觉得更冷了。她不敢回家,因为她没卖掉一根火柴,没挣到一个钱,爸爸一定会打她的。再说,家里跟街上衣样冷,他们头上只有个房顶,虽然最大的裂缝已经用草和破布堵住了,风还是可以罐进来。
她的一双小手几乎僵硬了。啊!哪怕一根小小的火柴,也能给她点温暖。其实,如果她能拿出勇气取出一根火柴朝墙壁上一擦,那么她就能借着火柴燃烧的火光暖一暖小手了!终于,她从那一把火柴中取出了一根。嚓!火柴点着了,火光亮起来了!她将自己冻得发僵的小手盖在了上
面,此时,它就成了一束明亮而暖和的火焰,就像一根燃烧着的蜡烛一样。虽然它只能发出柔弱的光芒,但是它却显得那么漂亮,那么绚丽!小女孩感到自己似乎坐在了大铁炉边:这是一个有着闪亮的黄铜炉身和圆捏手的铁炉。火光燃烧得多么热烈、多么温暖、多么漂亮啊!哎呀,这是怎么了?正当小女孩伸出那双冻坏了的小脚,准备让它也暖和暖和的时候,突然火光灭了!铁炉也消失了。她坐着,手里只剩下一根燃尽了的火柴。
她又取出一根。擦着了,点燃了,冒出火光来了。火光照在了那块墙上,于是那块被照亮的墙就如一块轻纱那样变得透明了’透过这堵墙,她看见了房间里的一切:房间里摆着一张铺了洁白
餐布的桌子,桌子上那些精美而雅致的盘子
里盛满了苹果、梅子,还有热气腾腾的香喷喷的烤鹅。更有趣的是:这只烤鹅居然背着刀叉从盘子上走了出来,并且一摇一摆的朝着这个可怜的小女孩走了过来。可是,就在这时火柴又灭了’在她眼前的只是一堵冰凉的厚重的墙。
于是,她再一次点燃了一根火柴。这时,她坐在了一棵漂亮的圣诞树旁。她想起去年的圣诞节时,她曾透过一个富商家里的那扇玻璃门,看见了他们家里的一棵美丽的圣诞树;不过,她现在看到的这棵与那一棵比起来要大得多,也漂亮得多。它那翠绿的枝条上放上了好几千支点亮了的蜡烛;那些五颜六色的图画漂亮极了,就和商店橱窗里悬挂着的图片一样,而且正朝着她眨眼睛呢。小女孩不由的伸出手去。于是,火柴又灭了。她看到圣诞节的烛光正慢慢地向天空升了上来,而且越来越高,最后它们就成了一颗颗闪烁的小星星。其中有一颗星星从空中滑落下来了,在它滑
落下来的轨迹上形成了一条长长的光带。“这个时候,会是谁死去了呢?”小女孩说,她记得她的老奶奶对她说过,当一颗星星从空中坠落时,地上就会
有一个人会死去,而他的灵魂就会飞到上帝那儿去。在这个世界上,只有她的老奶奶才会疼爱她,可是,奶奶已经死了。她又取出了一根火柴,朝墙上
一擦,于是火柴点燃了,它的火光照亮了周围的一切,在这明亮的火光中,小女孩看到了疼爱她的奶奶。她是那么明亮,那么柔和,那么亲切,那么慈爱。“奶奶!”小女孩叫着,“哦,我的奶奶,你就让我和你一起走吧!我明白,当这根火柴熄灭时,你就会消失的,就像那个温暖的铁炉、那只香喷喷的烤鹅、那颗漂亮的圣诞树那样消失了!”于是,她连忙点燃了剩下的所有的火柴,因为她害怕火柴熄灭后,奶奶就会不见了。这些火柴燃烧着,散发出巨大的热烈的光芒,把四周照得比白天还要明亮。她觉得现在的奶奶比任何时候都要高大,都要漂
亮。她抱着小女孩,将她紧紧地拥在自己的怀里。她俩依偎在一起,朝着幸福和光明飞去,她们越飞越高,飞到了一个没有悲愁、没有痛苦、没有饥寒的世界中——她们与上帝同在。可是就在第二天早晨,人 们看到这个小女孩仍然坐在那个墙角边;她的脸颊红红的,嘴角露
出幸福的微笑,她已死了——就在这旧年的除夕之夜被冻死了。新年的太阳升上来了,暖暖的阳光照到了她那柔小的尸体上!她仍是那样坐着,那双小手还紧紧地抓着火柴——其中的一
把几乎都烧尽了。
“她是想用火柴来取暖,”人们这样说着。可是,没有一个人知道:她曾见过许许多多漂亮的东西,她曾幸福地随着奶奶一同飞向新年的快乐中去。
问题1(5分):
在PY301-1.py文件中修改代码,对“小女孩.txt”文件进行字符频次统计,输出频次最高的中文字符(不包含标点符号)及其频次,将输出结果保存在考生文件夹下,命名为“PY301-1.txt”。字符与频次之间采用英文冒号":"分隔,示例格式如下:
的:83
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
# 请在______处使用一行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准...
fo = open("PY301-1.txt","w")
...
d = {}
...
fo.write("{}:{}".format(______))
fo.close()
答案:
fi = open("小女孩.txt","r")
fo = open("PY301-1.txt","w")
txt = fi.read()
d = {}
exclude = ",。!?、()【】<>《》=:+-*—“”…"
for word in txt:if word in exclude:continueelse:d[word] = d.get(word,0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1],reverse=True)
fo.write("{}:{}".format(ls[0][0],ls[0][1]))
fo.close()
问题2(5分):
在PY301-2.py文件中修改代码,对“小女孩.txt”文件进行字符频次统计,按照频次由高到低,输出前10个频次最高的字符不包含回车符,字符之间无间隔,连续输出,将输出结果保存在考生文件夹下,命名为“PY301-2.txt”。示例格式如下:
,的一…(后略,共10个字符)
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准...
fo = open("PY301-2.txt","w")
...
d = {}
...
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 此行可以按照词频由高到低排序
...
答案:
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准fi = open("小女孩.txt","r")
fo = open("PY301-2.txt","w")
txt = fi.read()
d = {}
for word in txt:d[word] = d.get(word,0) + 1
del d["\n"]
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 此行可以按照词频由高到低排序
for i in range(10):fo.write(ls[i][0])
fi.close()
fo.close()
问题3(10分):
在PY301-3.py文件中修改代码,对“小女孩.txt”文件进行字符频次统计,将所有字符按照频次从高到低排序,字符包括中文、标点、英文等符号,但不包含空格和回车。将排序后的字符及频次输出到考生文件夹下,文件名为“小女孩-频次排序.txt”。字符与频次之间采用英文冒号":"分隔,各字符之间采用英文逗号 “,” 分隔,参考CSV格式,最后无逗号,文件内部示例格式如下:
着:30,那:29,火:29
# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准...
d = {}
...
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 此行可以按照词频由高到低排序
...
答案:
fi = open("小女孩.txt","r")
fo = open("小女孩-频次排序.txt","w")
txt = fi.read()
d = {}
for word in txt:d[word] = d.get(word,0)+1
del d[" "]
del d["\n"]
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 此行可以按照词频由高到低排序
for i in range(len(ls)):ls[i] = "{}:{}".format(ls[i][0],ls[i][1])
fo.write(",".join(ls))
fi.close()
fo.close()