Python二级考试试题汇总(史上最全) 您所在的位置:网站首页 python题库操作题打不开 Python二级考试试题汇总(史上最全)

Python二级考试试题汇总(史上最全)

2024-07-14 17:38| 来源: 网络整理| 查看: 265

Python二级考试试题(一)

✅作者简介:大家好我是编程ID 📃个人主页:编程ID的csdn博客 系列专栏:python Python精华知识点手册【完整版】下载

以下关于程序设计语言的描述,错误的选项是: A Python语言是一种脚本编程语言 B 汇编语言是直接操作计算机硬件的编程语言 C 程序设计语言经历了机器语言、汇编语言、脚本语言三个阶段 D 编译和解释的区别是一次性翻译程序还是每次执行时都要翻译程序 正确答案: C

表达式 1001 == 0x3e7 的结果是: A false B False C true D True 正确答案: B

以下选项,不是Python保留字的选项是: A del B pass C not D string 正确答案: D

表达式 eval(‘500/10’) 的结果是: A ‘500/10’ B 500/10 C 50 D 50.0 正确答案: D

表达式 type(eval(‘45’)) 的结果是: A B C None D 正确答案: D

表达式 divmod(20,3) 的结果是: A 6, 2 B 6 C 2 D (6, 2) 正确答案: D

以下关于字符串类型的操作的描述,错误的是: A str.replace(x,y)方法把字符串str中所有的x子串都替换成y B 想把一个字符串str所有的字符都大写,用str.upper() C 想获取字符串str的长度,用字符串处理函数 str.len() D 设 x = ’aa’ ,则执行x*3的结果是‘aaaaaa’ 正确答案: C

设 str = ‘python’,想把字符串的第一个字母大写,其他字母还是小写,正确的选项是: A print(str[0].upper()+str[1:]) B print(str[1].upper()+str[-1:1]) C print(str[0].upper()+str[1:-1]) D print(str[1].upper()+str[2:]) 正确答案: A

以下选项,不属于程序流程图基本元素的是: A 循环框 B 连接点 C 判断框 D 起始框 正确答案: A

以下关于循环结构的描述,错误的是: A 遍历循环使用for in 语句,其中循环结构不能是文件 B 使用range()函数可以指定for循环的次数 C for i in range(5)表示循环5次,i的值是从0到4 D 用字符串做循环结构的时候,循环的次数是字符串的长度 正确答案: A

执行以下程序,输入”93python22”,输出结果是:

w = input(‘请输入数字和字母构成的字符串:’) for x in w: if '0'"seashell":"海贝色","gold":"金色","pink":"粉红色","brown":"棕色", "purple":"紫色","tomato":"西红柿色"}

以下选项中能输出“海贝色”的是 A print(DictColor.keys()) B print(DictColor[“海贝色”]) C print(DictColor.values()) D print(DictColor[“seashell”]) 正确答案: D

下面代码的输出结果是

s =["seashell","gold","pink","brown","purple","tomato"]print(s[1:4:2])

A [‘gold’, ‘pink’, ‘brown’] B [‘gold’, ‘pink’] C [‘gold’, ‘pink’, ‘brown’, ‘purple’, ‘tomato’] D [‘gold’, ‘brown’] 正确答案: D

下面代码的输出结果是 d ={“大海”:“蓝色”, “天空”:“灰色”, “大地”:“黑色”}print(d[“大地”], d.get(“大地”, “黄色”)) A 黑的 灰色 B 黑色 黑色 C 黑色 蓝色 D 黑色 黄色 正确答案: B

当用户输入abc时,下面代码的输出结果是

try: n = 0 n = input("请输入一个整数: ") def pow10(n): return n**10except: print("程序执行错误")

A 输出:abc B 程序没有任何输出 C 输出:0 D 输出:程序执行错误 正确答案: B

下面代码的输出结果是

a = [[1,2,3], [4,5,6], [7,8,9]] s = 0 for c in a: for j in range(3): s += c[j]print(s)

A 0 B 45 C 以上答案都不对 D 24 正确答案: B

文件 book.txt 在当前程序所在目录内,其内容是一段文本:book,下面代码的输出结果是 txt = open(“book.txt”, “r”)print(txt) txt.close() A book.txt B txt C 以上答案都不对 D book 正确答案: C

如果当前时间是 2018年5月1日10点10分9秒,则下面代码的输出结果是

import timeprint(time.strftime("%Y=%m-%d@%H>%M>%S", time.gmtime()))

A 2018=05-01@10>10>09 B 2018=5-1 10>10>9 C True@True D 2018=5-1@10>10>9 正确答案: A

Python二级考试试题(三)

全国计算机等级考试二级Python真题及解析(10)

数据库系统的核心是___________。 A数据库管理系统 B数据模型 C软件工具 D数据库 正确答案: A

下列叙述中正确的是___________。 A线性表链式存储结构的存储空间可以是连续的,也可以是不连续的 B线性表链式存储结构与顺序存储结构的存储空间都是连续的 C线性表链式存储结构的存储空间必须是连续的 D线性表链式存储结构的存储空间一般要少于顺序存储结构 正确答案: A

某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层)___________。 A8 B12 C6 D3 正确答案: B

下列叙述正确的是___________。 A算法的时间复杂度与空间复杂度一定相关 B数据的逻辑结构与存储结构是一一对应的 C算法的时间复杂度是指执行算法所需要的计算工作量 D算法的效率只与问题的规模有关,而与数据的存储结构无关 正确答案: C

对长度为n的线性表作快速排序,在最坏情况下,比较次数为___________。 A n(n-1)/2 B n(n-1) C n-1 D n 正确答案: A

在软件开发中,需求分析阶段产生的主要文档是___________。 A软件需求规格说明书 B软件集成测试计划 C软件详细设计说明书 D用户手册 正确答案: A

下列选项中不属于结构化程序设计原则的是___________。 A逐步求精 B逐步求精 C模块化 D可封装 正确答案: D

设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为 A学号,课号 B学号,成绩 C课号,成绩 D学号,姓名,成绩 正确答案: A

下面叙述错误的是 A程序调试通常也称为Debug B对被调试的程序进行"错误定位"是程序调试的必要步骤 C软件测试应严格执行测试计划,排除测试的随意性 D软件测试的目的是发现错误并改正错误 正确答案: D

软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A编译程序 B操作系统 C教务管理系统 D汇编程序 正确答案: C

以下选项不属于 Python 语言特点的是: A支持中文 B平台无关 C语法简洁 D执行高效 正确答案: D

如果 Python 程序执行时,产生了 “unexpected indent” 的错误,其原因是: A代码中使用了错误的关键字 B代码中缺少“:”符号 C代码里的语句嵌套层次太多 D代码中出现了缩进不匹配的问题 正确答案: D

以下关于 Python 程序语法元素的描述,错误的选项是: A段落格式有助于提高代码可读性和可维护性 B虽然 Python 支持中文变量名,但从兼容性角度考虑还是不要用中文名 C true 并不是 Python 的保留字 D并不是所有的 if、while、def、class 语句后面都要用 ‘:’ 结尾 正确答案: D

s = " Python", 能够显示输出 Python 的选项是: A print(s[0:-1]) B print(s[-1:0]) C print(s[:6]) D print(s[:]) 正确答案: D

表达式 ‘y’=10: a = 20 elif a>=20: a = 30 elif a>=30: b = a else: b = 0 print('a={}, b={}'.format(a,b))

A a=30, b=1 B a=30, b=30 C a=20, b=20 D a=20, b=1 正确答案: D

23.以下程序的输出结果是:

s='' try: for i in range(1, 10, 2): s.append(i) except: print('error') print(s)

A 1 3 5 7 9 B [1, 3, 5, 7, 9] C, 4, 6, 8, 10 D error 正确答案: D

以下关于 python 函数使用的描述,错误的是: A函数定义是使用函数的第一步 B函数被调用后才能执行 C函数执行结束后,程序执行流程会自动返回到函数被调用的语句之后 D Python 程序里一定要有一个主函数 正确答案: D

以下关于函数参数和返回值的描述,正确的是: A采用名称传参的时候,实参的顺序需要和形参的顺序一致 B可选参数传递指的是没有传入对应参数值的时候,就不使用该参数 C函数能同时返回多个参数值,需要形成一个列表来返回 D Python支持按照位置传参也支持名称传参,但不支持地址传参 正确答案: D

以下程序的输出结果是:

def calu(x = 3, y = 2, z = 10): return(x ** y * z) h = 2 w = 3 print(calu(h,w)) A90 B70 C60 D80

正确答案: D

以下程序的输出结果是:

img1 = [12,34,56,78] img2 = [1,2,3,4,5] def displ(): print(img1) def modi(): img1 = img2 modi() displ()

A[1,2,3,4,5] B([12, 34, 56, 78]) C( [1,2,3,4,5]) D[12, 34, 56, 78] 正确答案: D

28.以下关于组合数据类型的描述,错误的是: A集合类型是一种具体的数据类型 B序列类似和映射类型都是一类数据类型的总称 C python 的集合类型跟数学中的集合概念一致,都是多个数据项的无序组合 D 字典类型的键可以用的数据类型包括字符串,元组,以及列表 正确答案: D

以下关于字典类型的描述,正确的是: A字典类型可迭代,即字典的值还可以是字典类型的对象 B表达式 for x in d: 中,假设d是字典,则x是字典中的键值对 C字典类型的键可以是列表和其他数据类型 D字典类型的值可以是任意数据类型的对象 正确答案: D

30.以下程序的输出结果是:

ls1 = [1,2,3,4,5] ls2 = [3,4,5,6,7,8] cha1 = [] for i in ls2: if i not in ls1: cha1.append(i) print(cha1)

A(6, 7, 8) B(1,2,6, 7, 8) C[1,2,6,7,8] D[6, 7, 8] 正确答案: D

以下程序的输出结果是:

d = {"zhang":"China", "Jone":"America", "Natan":"Japan"} print(max(d),min(d))

A Japan America B zhang:China Jone:America C China America D zhang Jone 正确答案: D

32.以下程序的输出结果是:

frame = [[1,2,3],[4,5,6],[7,8,9]] rgb = frame[::-1] print(rgb)

A[[1, 2, 3], [4, 5, 6]] B[[7, 8, 9]] C[[1,2,3],[4,5,6],[7,8,9]] D[[7, 8, 9], [4, 5, 6], [1, 2, 3]] 正确答案: D

33.已知以下程序段,要想输出结果为 1,2,3,应该使用的表达式是:

x = [1,2,3] z = [] for y in x: z.append(str(y))

A print(z) B print(“,”.join(x)) C print(x) D print(“,”.join(z)) 正确答案: D

以下程序输出到文件 text.csv 里的结果是: fo = open(“text.csv”,‘w’)

x = [90,87,93]

fo. write(“,”.join(str(x)))

fo.close() A[90,87,93] B90,87,93 C,9,0, ,8,7, ,9,3, D[,9,0, ,8,7, ,9,3,] 正确答案: D

以下属于 Python 的 HTML 和 XML 第三方库的是: A mayavi B TVTK C pygame D Beautiful Soup 正确答案: D

用于安装 Python 第三方库的工具是: A jieba B yum C loso D pip 正确答案: D

用于将 Python 程序打包成可执行文件的工具是: A Panda3D B cocos2d C pip D PyInstaller 正确答案: D

以下程序不可能的输出结果是: from random import *

x = [30,45,50,90] print(choice(x)) A30 B45 C90 D55 正确答案: D

有一个文件记录了 1000 个人的高考成绩总分,每一行信息长度是 20 个字节,要想只读取最后 10 行的内容,不可能用到的函数是: A seek() B readline() C open() D read() 正确答案: D

以下关于文件的描述错误的选项是: A readlines() 函数读入文件内容后返回一个列表,元素划分依据是文本文件中的换行符 B read() 一次性读入文本文件的全部内容后,返回一个字符串 C readline() 函数读入文本文件的一行,返回一个字符串 D 二进制文件和文本文件都是可以用文本编辑器编辑的文件 正确答案: D

二、操作题 1.101

描述 参照代码模板完善代码,实现下述功能。输入一个字符串,其中的字符由(英文)逗号隔开,编程将所有字符连成一个字符串,输出显示在屏幕上。

输入输出示例

输入 输出

示例 1 1,2,3,4,5 12345 习题讲解 答案: ls= input(“请输入一个字符串,由逗号隔开每个字符:”).split(‘,’)(1) print(‘’.join(ls))(2) 要点:

题目要求输入的字符用逗号隔开,所以,需要用到split(‘,’)来从字符串里提取所输入的字符经过split()函数的字符串,返回的是列表字符串有个操作函数是 str.join(ls),可以把列表里的各个元素,用str的内容连接起来。本题利用了空字符串‘’,来调用这个函数,因此,达到了所想要的效果:将带有逗号的字符串变换成了没有逗号的字符串。有一个不可忽视的地方是join()函数的括号里的参数是列表,如果忘了这一点,会犯错这个功能利用好了,可以拓展,解决其他的问题。 2.102

描述 参照代码模板完善代码,实现下述功能。

有一个列表 studs 如下: studs= [{‘sid’:‘103’,‘Chinese’: 90,‘Math’:95,‘English’:92},{‘sid’:‘101’,‘Chinese’: 80,‘Math’:85,‘English’:82},{‘sid’:‘102’,‘Chinese’: 70,‘Math’:75,‘English’:72}] 将列表 studs 的数据内容提取出来,放到一个字典 scores 里,在屏幕上按学号从小到大的顺序显示输出 scores 的内容。内容示例如下: 101:[85, 82, 80] 102:[75, 72, 70] 103:[95, 92, 90] 输入输出示例 输入 输出 示例 1 无 101:[85, 82, 80] 102:[75, 72, 70] 103:[95, 92, 90] 习题讲解 答案:

studs= [{'sid':'103','Chinese': 90,'Math':95,'English':92},{'sid':'101','Chinese': 80,'Math':85,'English':82},{'sid':'102','Chinese': 70,'Math':75,'English':72}] scores = {} for stud in studs: sv = stud.items() (1) v = [] for it in sv: if it[0] =='sid': k = it[1] else: v.append(it[1]) scores[k] = v(2) print(scores) so = list(scores.items())(3) so.sort(key = lambda x:x[0],reverse = False) for l in so: print('{}:{}'.format(l[0],l[1]))

要点:

字典作为元素,定义在列表里,用列表的遍历就可以从中提取出来提取出来的元素直接就是字典,因此可以用 items()直接获取,形成键值对对象集合 sv;对键值对对象集合sv遍历,就可以以元组it的方式访问其中的每一对键值对,sv = stud.items(),是第一个空的答案;题目要求提取学生的学号,所以需要比较键it[0]是否是’sid’,是则将学号it[1]提取出来作为新的字典scores的键k;不是则将成绩提取出来作为新字典scores的值v;由于课程是多门,因此新字典scores的值v需要以列表的方式,保存各门课程的成绩,所以在不是的情况下,新字典scores的值v是利用append(it[1])的方式,追加到列表的后面;对v做append操作,必须要事先定义v是一个空列表;因此需要在对每一条旧字典stud的键值对信息做处理的for it in sv:语句之前,用v = []初始化v为一个空列表;经过对一条字典stud的处理,就形成一对k和v,所以接下来是给新字典scores添加一条键值对,scores[k] = v,是第二个空的答案经过对全部的studs列表里的各条字典处理完之后,新的scores字典就全部生成。题目要求按学号从小到大的顺序输出学号和成绩,所以需要对字典的键值对内容items()提取到列表so里,此处是第三个空的答案:so = list(scores.items())用Lambda函数进行排序。这个不在考试范围里,所以代码模板直接给出语句;对排好序的列表输出每组列表,这个直接给出语句,不再赘述。 3.103

描述 参照代码模板完善代码,实现下述功能。 从键盘输入一个用于填充的图符,一个字符串,一个要显示的字符串的总长度;编程将输入的字符串,居中输出显示在屏幕上,用填充图符补齐到输入的总长度。如果总长度处输入的不是正整数,则提示请输入一个正整数,并重新提示输入,直至输入正整数。

输入: 请输入填充符号:@ 请输入要显示的字符串:qq 请输入字符串总长度:r 请输入一个正整数 请输入字符串总长度:3.4 请输入一个正整数 请输入字符串总长度:4 输出: @qq@

输入输出示例 输入 输出 示例 1 @ qq 4 @qq@

习题讲解 答案: #请在____处填写一行代码#请在… 处填写多行代码#不要修改已给出代码

a = input() # 请输入填充符号 c = input() # 请输入要显示的字符串 flag = 1 (1) while flag: try: b = eval(input()) # 请输入字符串总长度 except: flag = 1 print("请输入一个正整数") else: if type(b)== int (2)and b>0: flag = 0 else: flag = 1 print("请输入一个正整数") print('{0:{1}^{2}}'(3).format(c,a,b))

4.201

描述 参照代码模板完善代码,实现下述功能,不得修改其它代码。使用 turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制螺旋状的正方形,正方形边长从 1 像素开始,第一条边从 0 度方向开始,效果如下图所示。

自动评阅说明

使用字符串形式输出 ①,②,____③____中应填代码即可以自动评阅得分 例如,如果代码为:

代码模板 | # 你的代码import turtle | import turtle d = 0 | d = 0for i in range(__1__): | for i in range(1): turtle.fd(__2__) | turtle.fd(100) d = __3__ | d = (i + 100) * 100 turtle.seth(d) | turtle.seth(d)

则在提交代码页面输入: print(‘1’, ‘100’, ‘(i + 100) * 100’) 提交后即可以查看得分

注:如果有运算符,请在运算符两侧加上空格 习题讲解 答案:

import turtle d = 0 k = 1 for j in range(10): for i in range(4): turtle.fd(k(1)) d += 91 turtle.seth(d(2)) k += 2_(3) turtle.done()

要点:

降低了难度,让填写的都是最简单的 5.202 描述 参照代码模板完善代码,实现下述功能,可以修改其它代码。附件文件 question.txt 中有一道 Python 选择题,第 1 行的第 1 个数据为题号,后续的 4 行是 4 个选项。示例内容如下:以下关于字典类型的描述,错误的是: A. 字典类型中的数据可以进行分片和合并操作 B. 字典类型是一种无序的对象集合,通过键来存取 C. 字典类型可以在原来的变量上增加或缩短 D. 字典类型可以包含列表和其他数据类型,支持嵌套的字典

读取其中的内容,提取题干和四个选项的内容,利用 jieba 分词并统计出现频率最高的 3 个词,其中要删除以下的常用字和符号“的 ,::可以是和中以下B”,作为该题目的主题标签,显示输出在屏幕上。

输入输出示例 输入 输出 示例 1 从文件 question.txt 中读取所有内容 第3题的主题是: 类型:5 集合:2 组合:2 习题讲解 答案:

import jieba fi = open("question.txt",'r') con = '' num = 0for l in fi: l=l.replace('\n','').strip().split('.') # print(l) try: ft = eval(l[0]) except: pass else: num = ft con += l[1]print('第{}题的主题是:'.format(num)) conls = jieba.lcut(con)dict = {}for word in conls: dict[word] = dict.get(word, 0) + 1 dictls = list(dict.items()) dictls.sort(key = lambda x:x[1], reverse = True) k = 0for it in dictls: if it[0] in '的 ,::可以是和中以下B': continue else: if k == 3: break else: print('{}:{}'.format(it[0],it[1])) k += 1 fi.close()

要点:

导入jieba库,使用lcut分词,返回列表conls打开文件,读文件,关闭文件按行从文件里读,每一行是一个字符串,用strip和split处理成列表,因为要识别题号,还要提取题目和选项的内容,所以要按照’.'分隔来提取,分别返回题号和选项号作为列表l的第0个字段,后面的内容是列表l的第一个字段;为了识别题号,要利用eval,并逆向利用try-except结构捕捉第一个字段是整数的字段,把题号提取出来放到num里面,把其他的内容都用字符串加法,拼成一个大字符串con给出第一句显示:print(‘第{}题的主题是:’.format(num))接下来处理con,提取整个题干的主题词:用jieba分词,然后用字典dict来保存没个词出现的次数。一种惯用法是for word in conls: dict[word] = dict.get(word, 0) + 1 8.统计出来的词以及词频,需要排序找到最大三个词频,此时需要把字典的键值对items()提取出来形成列表dictls,并利用列表排序和lambda函数。得到排好序的dictls 9.显示的时候,遍历字典的每个键,要避开那些没有意义的词,题目里给出了剔除列表,拿过来判断一下,如果是没用的词,就直接跳过,循环下一个,用continue;如果是有意义的词,题目要求显示三个最高词频的词,因为中间有跳过的词,不能直接只循环排序靠前的3个词。要对显示了的词做计数,计够三个,就中断循环,所以要用break;这里用了嵌套的分支结构,在第一个分支里是有意义的词,在第二个分支里是计数不到三个,才做显示输出的语句,显示完了,要把计数器k加一。 12.程序最后记着关闭文件。 6.301

描述 老王的血压有些高,医生让家属给老王测血压。老王的女儿记录了一段时间的血压测量值,在文件 xueyajilu.txt 中,内容示例如下: 2018/7/2 6:00,140,82,136,90,69 2018/7/2 15:28,154,88,155,85,63 2018/7/3 6:30,131,82,139,74,61 2018/7/3 16:49,145,84,139,85,73 2018/7/4 5:03,152,87,131,85,63 文件内各部分含义如下: 测量时间,左臂高压,左臂低压,右臂高压,右臂低压,心率

参照代码模板完善代码,实现下述功能,可以修改给定代码。 (1)使用字典和列表类型进行数据分析,获取老王的 左臂和右臂的血压平均值 左臂和右臂的高压最高值、低压最高值 左臂和右臂的高/低压差平均值 心率的平均值 给出左臂和右臂血压情况的对比表,输出到屏幕上,请注意每行三列对齐。示例如下:

(2)上述显示的五个项目,如果左臂有大于 50% 的项目高于右臂,则输出“结论:左臂血压偏高”;如果等于 50% 的项目高于右臂,则输出“结论:左臂血压与右臂血压相当”;如果小于 50% 的项目高于右臂,则输出“结论:右臂血压偏高”。示例如下: 结论:左臂血压偏高, 心率的平均值为66 (注意:此处为格式示例,实际数据与此不同)

输入输出示例

输入 输出

示例 1 读取文件 xueyajilu.txt 内容 结论:左臂血压偏高, 心率的平均值为66 习题讲解 答案:

fi = open("xueyajilu.txt",'r') jl = [[],[],[],[],[]] # 1:zb_h, zb_l,yb_h,yb_l zyc = [] yyc = [] xl = []for l in fi: lls=l.replace('\n','').strip().split(',') for i in range(1,5): jl[i].append(eval(lls[i])) zyc.append(eval(lls[1])-eval(lls[2])) yyc.append(eval(lls[3])-eval(lls[4])) xl.append(eval(lls[5])) fi.close() cnt = len(xl) res = [] res.append(list(("高压最大值",max(jl[1]),max(jl[3])))) res.append(list(("低压最大值",max(jl[2]),max(jl[4])))) res.append(list(("压差平均值",sum(zyc)//cnt,sum(yyc)//cnt))) res.append(list(("高压平均值",sum(jl[1])//cnt,sum(jl[3])//cnt))) res.append(list(("低压平均值",sum(jl[2])//cnt,sum(jl[4])//cnt))) res.append(list(("心率平均值",sum(xl)//cnt,0))) zbg = 0 ybg = 0print('{:


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

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