Python程序设计试卷答案_第1页
Python程序设计试卷答案_第2页
Python程序设计试卷答案_第3页
Python程序设计试卷答案_第4页
Python程序设计试卷答案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python程序设计试卷答案一、选择题(每题2分,共20分)1.以下Python变量名中,合法的是()。A.2varB.var-2C._var2D.var$2答案:C解析:Python变量名只能包含字母、数字和下划线,且不能以数字开头,特殊符号(如-、$)不可用,因此选C。2.执行`print(type(1+2j))`的输出结果是()。A.`<class'int'>`B.`<class'float'>`C.`<class'complex'>`D.`<class'str'>`答案:C解析:1+2j是复数类型,type()返回其类型为complex类。3.若`a=[1,2,3]`,执行`a.append([4,5])`后,`a`的值是()。A.`[1,2,3,4,5]`B.`[1,2,3,[4,5]]`C.`[1,2,3,4,5,[4,5]]`D.报错答案:B解析:append()方法将整个列表作为单个元素添加到原列表末尾,因此结果为包含子列表的新列表。4.执行`x=3;y=5;x,y=y,x`后,`x`和`y`的值分别是()。A.3,5B.5,3C.3,3D.5,5答案:B解析:Python支持多变量赋值,右侧元组`(y,x)`会被解包给左侧变量,交换两者的值。5.以下代码的输出结果是()。```pythons="abcde"print(s[1:-1:2])```A."b"B."bd"C."be"D."ace"答案:A解析:切片语法为`start:end:step`,s[1:-1]是"bcd",步长2取索引1的字符(即"b")。6.若`d={"a":1,"b":2}`,执行`d.update({"b":3,"c":4})`后,`d`的值是()。A.`{"a":1,"b":2,"c":4}`B.`{"a":1,"b":3,"c":4}`C.`{"a":1,"b":2,"b":3,"c":4}`D.报错答案:B解析:update()方法用新字典更新原字典,已存在的键(如"b")会被覆盖,新键(如"c")会被添加。7.以下关于函数参数的说法,错误的是()。A.位置参数必须在关键字参数之前B.默认参数必须在非默认参数之后C.args用于接收任意数量的位置参数D.kwargs用于接收任意数量的关键字参数,返回列表类型答案:D解析:kwargs接收关键字参数,存储为字典类型,而非列表。8.执行以下代码,输出结果是()。```pythondeff(x):returnx+1a=[f(i)foriinrange(3)]print(a)```A.`[0,1,2]`B.`[1,2,3]`C.`[2,3,4]`D.报错答案:B解析:列表推导式遍历range(3)(即0、1、2),每个元素传入f函数加1,结果为[1,2,3]。9.以下代码的输出结果是()。```pythontry:print(1/0)exceptValueError:print("ValueError")exceptZeroDivisionError:print("ZeroDivisionError")```A.ValueErrorB.ZeroDivisionErrorC.无输出D.报错答案:B解析:1/0触发ZeroDivisionError异常,被对应的except块捕获并输出。10.若要导入math模块中的sqrt函数并命名为sq,正确的语句是()。A.`importmath.sqrtassq`B.`frommathimportsqrtassq`C.`frommathimportsqassqrt`D.`importmathassq`答案:B解析:使用`from...import...as`语法可导入指定函数并重命名。二、填空题(每空2分,共20分)1.执行`eval("3+42")`的结果是______。答案:11解析:eval()函数执行字符串中的表达式,3+42=11。2.若`a=[1,3,2]`,执行`a.sort()`后,`a`的值是______。答案:[1,2,3]解析:sort()方法对列表进行原地升序排序。3.字典`d={"name":"Alice","age":20}`中,通过`d.get("gender","unknown")`获取的值是______。答案:unknown解析:get()方法若键不存在,返回默认值"unknown"。4.提供器表达式`(i2foriin"ab")`的元素依次是______。答案:'aa','bb'解析:提供器遍历字符串"ab",每个字符i乘以2,得到'aa'和'bb'。5.定义类时,`__init__`方法的作用是______。答案:初始化对象的属性(或构造方法)解析:__init__是类的构造方法,用于对象创建时初始化属性。6.以追加模式打开文件时,文件打开模式参数应设置为______。答案:'a'解析:'a'模式表示追加写入,文件不存在时会创建。7.执行`lambdax:x2+1`(3)的结果是______。答案:10解析:lambda匿名函数计算x²+1,传入3得9+1=10。8.正则表达式`r"\d{3}-\d{4}"`可匹配的典型字符串是______(举例)。答案:123-4567(或类似格式)解析:\d匹配数字,{3}表示3位,{4}表示4位,整体匹配“三位数字-四位数字”的格式。9.装饰器的核心作用是______。答案:在不修改原函数代码的情况下,为其添加额外功能(或增强函数功能)解析:装饰器通过闭包或类实现,用于函数的功能扩展。10.若`a=(1,[2,3])`,则`a[1].append(4)`后,元组`a`的值是______。答案:(1,[2,3,4])解析:元组的元素不可变,但元素若为可变对象(如列表),其内容可修改。三、编程题(共60分)1.基础数据处理(15分)题目:输入一个年份,判断是否为闰年。闰年规则:能被4整除但不能被100整除,或能被400整除。要求:从控制台输入年份(整数),输出“是闰年”或“不是闰年”。参考代码:```pythonyear=int(input("请输入年份:"))if(year%4==0andyear%100!=0)or(year%400==0):print("是闰年")else:print("不是闰年")```2.字符串统计与排序(20分)题目:给定字符串`s="pythonprogrammingisinteresting"`,统计其中各字母(不区分大小写)出现的次数(忽略空格),并按次数从高到低排序,次数相同则按字母顺序升序排列。参考代码:```pythonfromcollectionsimportdefaultdicts="pythonprogrammingisinteresting"转换为小写并去除空格s_clean=s.lower().replace("","")统计频率count=defaultdict(int)forcharins_clean:count[char]+=1排序:先按次数降序,再按字母升序sorted_chars=sorted(count.items(),key=lambdax:(-x[1],x[0]))输出结果forchar,freqinsorted_chars:print(f"字母'{char}'出现{freq}次")```3.类的设计与应用(25分)题目:设计一个学生信息管理类`StudentManager`,要求具备以下功能:添加学生(学号唯一,重复则提示“学号已存在”);按学号查询学生信息(返回字典格式);删除学生(按学号,不存在则提示“学号不存在”);统计学生总人数。学生信息包含:学号(s_id,字符串)、姓名(name)、年龄(age)。参考代码:```pythonclassStudentManager:def__init__(self):self.students={}以学号为键存储学生信息defadd_student(self,s_id,name,age):ifs_idinself.students:print("学号已存在")returnFalseself.students[s_id]={"name":name,"age":age}returnTruedefquery_student(self,s_id):returnself.students.get(s_id,None)defdelete_student(self,s_id):ifs_idnotinself.students:print("学号不存在")returnFalsedelself.students[s_id]returnTruedeftotal_students(self):returnlen(self.students)测试示例manager=StudentManager()manager.add_student("001","张三",20)添加成功manager.add_student("001","李四",21)提示学号已存在print(manager.query_student("001"))输出{'name':'张三','age':20}manager.delete_student("002")提示学号不存在print("总人数:",manager.total_students())输出1```4.文件操作与异常处理(选做,附加10分)题目:读取文件`data.txt`(每行一个英文单词),统计所有单词的出现频率(忽略大小写),并将结果写入`result.txt`(格式:单词:次数,按次数降序排列)。要求处理文件不存在的异常。参考代码:```pythonimportosfromcollectionsimportCounterdefcount_words(input_file,output_file):try:withopen(input_file,'r',encoding='utf-8')asf:读取所有单词,转换为小写,过滤空行words=[line.strip().lower()forlineinfifline.strip()]统计频率word_counts=Counter(words)按频率降序、单词升序排序sorted_counts=sorted(word_counts.items(),key=lambdax:(-x[1],x[0]))写入结果文件withopen(output_file,'w',

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论