第1页《Python程序设计》期中考试卷(自己写的答案,有不正确的地方还请给位批评指正)一、填空题(每空1分,共40分)1.Python使用符号#标示注释;还有一种叫做‘’’‘’’的特别注释。2.可以使用‘’’‘’’符号把一行过长的Python语句分解成几行;多个语句也可以写在同一行,语句之间要用;符号隔开。3、每一个Python的类都可以被当作一个模块。导入模块要使用关键字import。4、所有Python对象都有三个特性:身份、类型、值。5、Python的数字类型分为long、int、float、complex、不知道等子类型。6、Python序列类型包括元组、列表、字典三种;字典是Python中唯一的映射类型。7、Python提供了两个对象身份比较操作符is和isnot来测试两个变量是否指向同一个对象,也可以通过内建函数type()来测试对象的身份。8、Python的标准类型内建函数有:re、urllib、json、io、time等。9、Python的传统除法运算符是/,地板除法运算符是//。10、设s=‘abcdefg’,则s[3]值是‘d’,s[3:5]值是‘de’,s[:5]值是‘abcde’,s[3:]值是‘defg’,s[::2]值是‘aceg’,s[::-1]值是‘gfedcba’,s[-2:-5]值是‘’。11、删除字典中的所有元素的函数是clear(),可以将一个字典的内容添加到另外一个字典中的函数是update(字典名称),返回包含字典中所有键的列表的函数是keys(),返回包含字典中所有值的列表的函数是values(),判断一个键在字典中是否存在的函数是get()。座位号分数阅卷人专业班级:学号:姓名:考试科目:第2页二、选择题(每题2分,共24分)1.下列哪个语句在Python中是非法的?(B)A、x=y=z=1B、x=(y=z+1)C、x,y=y,xD、x+=y2.关于Python内存管理,下列说法错误的是()A、变量不必事先声明B、变量无须先创建和赋值而直接使用C、变量无须指定类型D、可以使用del释放资源3、下列哪种情况会导致Python对象的引用计数增加()A、对象被创建B、被作为参数传递给函数C、成为容器对象的元素D、该对象无法访问时4、下面哪个不是Python合法的标识符(B)A、int32B、40XLC、selfD、__name__5、下列哪种说法是错误的(A)A、除字典类型外,所有标准对象均可以用于布尔测试B、空字符串的布尔值是FalseC、空列表对象的布尔值是FalseD、值为0的任何数字对象的布尔值是False6、下列表达式的值为True的是(C)A、5+4j2-3jB、322C、(3,2)(‘a’,’b’)D、’abc’‘xyz’7、Python不支持的数据类型有(A)A、charB、intC、floatD、list8、关于Python中的复数,下列说法错误的是(B)A、表示复数的语法是real+imagejB、实部和虚部都是浮点数C、虚部必须后缀j,且必须是小写D、方法conjugate返回复数的共轭复数9、关于字符串下列说法错误的是(A)A、字符应该视为长度为1的字符串B、字符串以\0标志字符串的结束C、既可以用单引号,也可以用双引号创建字符串D、在三引号字符串中可以包含换行回车等特殊字符10、以下不能创建一个字典的语句是(C)A、dict1={}B、dict2={3:5}C、dict3=dict([2,5],[3,4])D、dict4=dict(([1,2],[3,4]))11、下面不能创建一个集合的语句是(C)A、s1=set()B、s2=set(“abcd”)C、s3=(1,2,3,4)D、s4=frozenset((3,2,1))12、下列Python语句正确的是(D)A、min=xifxyelseyB、max=xy?x:yC、if(xy)printxD、whileTrue:pass分数阅卷人第3页三、简答题(每题6分,共36分)1、简述一个典型Python文件应当具有怎样的结构?2、下面的Python函数检查给定的字符串s是否为合法的标识符,程序中有6处语法错误,请改正:voidCheckId(strings):改正defCheckId(s):alphas='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_'(改正应使用’’’‘’’)nums=0123456789if(len(s)1)firstChar=s[0]iffirstCharnotinalphas:print'Error.Firstcharmustbealphasornumber.'else://使用切片操作,取出除第1字符外的其它字符otherChar=s(1:)改正d[1:]alphasnums=alphas+numswhilecinotherChar:改正forifcnotinalphasnums:print'Error.Othercharsmustbealphasnumberor_.'breakelse:print(okayasanidentifier)改正缩进不对else:ifsnotinalphas:print'Error.'else:print'Okayasanidentifier'分数阅卷人第4页3、写一个函数,计算一个给定的日期是该年的第几天。defgetday(self,y=None,m=None,d=None):date=datetime(y,m,d)days=date.strftime('%j')returndays4、写一个函数,给定N,返回斐波那契数列第N项。defgetn_vlaue(self,n):ifn=2:return1else:returnself.getn_vlaue(n-1)+self.getn_vlaue(n-2)5、从0到9中随机选择,生成1到10个随机数,组成集合A,同理生成集合B,输出A和B以及它们的并集和交集defgetnumberlist(self):a=[]b=[]j=k=0第5页forxinxrange(0,10):j=int(random.random()*10)k=int(random.random()*10)a.append(j)b.append(k)printu'集合a:',aprintu'集合b:',breturna,bdefgetendlistj(self,a,b):#并集c=a+bnew_c=[]forxinxrange(0,len(c)):temp=c[x]iftempnotinnew_c:new_c.append(temp)printu'并集:',new_cdefgetendlistb(self,a,b):#交集new_a=[]new_b=[]第6页new_c=[]forxinxrange(0,len(a)):temp=a[x]iftempnotinnew_a:new_a.append(temp)forxinxrange(0,len(b)):temp=b[x]iftempnotinnew_b:new_b.append(temp)j=len(new_a)iflen(new_a)len(new_b)elselen(new_b)forxinxrange(0,j):temp=new_b[x]iftempinnew_a:new_c.append(temp)printu'交集:',new_c第7页6、给定一个整数N,判断N是否为素数defgetprime(self,n):ifn=3:printu'是素数'else:i=0forxinxrange(2,n):ifn%x==0:i+=1else:i=iifi==0:printu'是素数'else:printu'不是素数'