您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > 上海交大程序设计python期末测验题
上海交大程序设计python期末测验题————————————————————————————————作者:————————————————————————————————日期:一.选择题:将唯一正确的选项写在题前括号中(每题1分,共15分)【】1.表达式'%d%%%d'%(3/4,3%4)的值是:A.'0%3'B.'0%%3'C.'3/4%3%4'D.'3/4%%3%4'【】2.下面标识符中不是python语言的保留字的是:A.continueB.exceptC.initD.pass【】3.以下程序的输出结果是(提示:ord('a')==97):lista=[1,2,3,4,5,'a','b','c','d','e']printlista[2]+lista[5]A.100B.'d'C.dD.TypeEror【】4.下面的循环体执行的次数与其它不同的是:A.i=0while(i=100):printi,i=i+1B.foriinrange(100):printi,C.foriinrange(100,0,-1):printi,D.i=100while(i0):printi,i=i–1【】5.自顶向下逐步求精的程序设计方法是指:A.将一个大问题简化为同样形式的较小问题。B.先设计类,再实例化为对象。C.解决方案用若干个较小问题来表达,直至小问题很容易求解。D.先设计简单版本,再逐步增加功能。【】6.简单变量作为实参时,它和对应的形参之间数据传递方式是:A.由形参传给实参B.由实参传给形参C.由实参传给形参,再由形参传给实参D.由用户指定传递方向【】7.以下说法不正确的是:A.在不同函数中可以使用相同名字的变量。B.函数可以减少代码的重复,也使得程序可以更加模块化。C.主调函数内的局部变量,在被调函数内不赋值也可以直接读取。D.函数体中如果没有return语句,也会返回一个None值。【】8.关于list和string下列说法错误的是:A.list可以存放任意类型。B.list是一个有序集合,没有固定大小。C.用于统计string中字符串长度的函数是string.len()。D.string具有不可变性,其创建后值不能改变。【】9.下面问题属于计算机本质上不可解问题的是:A.Hanoi塔问题B.排序问题C.求阶乘D.Halting问题【】10.python语言定义的class的初始化函数的函数名是:A.initB.__init__C.__initD.init__【】11.已知x=43,y=False;则表达式(x=yand'A''B'andnoty)的值是:A.FalseB.语法错C.TrueD.假【】12.对n个数做归并排序(mergesort),这个算法是:A.nlogn时间的B.线性时间的C.logn时间的D.n2时间的【】13.下面不是计算思维的特征的是:A.概念化B.数学与工程思维的融合C.面向所有的人D.计算机的思维【】14.执行下面操作后,list2的值是:list1=[4,5,6]list2=list1list1[2]=3A.[4,5,6]B.[4,3,6]C.[4,5,3]D.A,B,C都不正确【】15.下列合法的变量名是:A.main()B.car2C.2carD.var-name二.概念填空(每空1分,共10分)1.表达式eval(4*2+5%2+4/3)的结果是。2.print'Thisfloat,%-10.5f,haswidth10andprecision5.'%(3.1415926)的输出结果是:3.计算的本质是和。4.执行print1.3-1==0.3,结果是False的原因是。5.下面语句的执行结果是。s=bbcprintstring.split(3*s)6.、、是科技创新的三大支柱。7.无穷循环whileTrue:的循环体中可用语句退出循环。三.阅读程序并回答问题(每题5分,共40分)1.当输入是54321时,写出下面程序的执行结果。defmain():num=input(“请输入一个整数:”)whilenum!=0:printnum%10num=num/10main()2.写出下面程序的执行结果。a=[1,20,32,14,5,62,78,38,9,10]foriinrange(9):if(a[i]a[i+1]):a[i],a[i+1]=a[i+1],a[i]printa3.写出下面程序的执行结果。defmain():lst=[2,4,6,8,10]lst=2*lstlst[1],lst[3]=lst[3],lst[1]s,2,4)foriinrange(len(lst)-4):printlst[i],defs,ind1,ind2):lists[ind1],lists[ind2]=lists[ind2],lists[ind1]main()4.写出下面程序的执行结果。importstring答案:54321defmain():s=Ilikepython!s=string.lower(s)alist=[]countlist=[]count=0foriinrange(len(s)):if(ord(s[i])=ord('Z')andord(s[i])=ord('A'))\or(ord(s[i])=ord('z')andord(s[i])=ord('a')):if(s[i]inalist):sign=alist.index(s[i])countlist[sign]+=1else:alist.append(s[i])countlist.append(1)count+=1foriinrange(count):printalist[i],,countlist[i]main()5.阅读下面程序deffact(n)returnn*fact(n-1)defmain()printfact(5)请问该程序是否正确?如果正确的话,请写出运行结果;如果不正确,则修改程序并写出相应运行结果。6.下面程序是为了在屏幕上显示10个相同形状的长方形。fromgraphicsimport*defmain():win=GraphWin(200,200)shape=Rectangle(Point(20,20),Point(30,40))shape.setOutline(yellow)shape.setFill(red)shape.draw(win)sList=[]sList.append(shape)foriinrange(1,10):p=win.getMouse()c=sList[i-1].getCenter()dx=p.getX()-c.getX()dy=p.getY()-c.getY()win.getMouse()win.close()main()请问该程序是否正确?如果不正确,请修改程序。7.写出下面程序的功能。假设文件“original”内容为Upgrcynpmepyk.Writeaprogram.那么文件“savetoo”内存储的内容应该是什么?importstringdefmain():printThisisaprogram......infile=open(original,'r')outfile=open(savetoo,'w')msg=forstrstrinin():foricharinstrstr:ifichar='a'andichar='z':n=ord(ichar)+2yn=(n-ord('a'))%26ch=chr(ord('a')+yn)elifichar='A'andichar='Z':n=ord(ichar)+2yn=(n-ord('A'))%26ch=chr(ord('A')+yn)else:ch=icharmsg=msg+chout(msg)in()out()main()8.修改下面程序使得其能运行正常。classBox:#Box类definit(self,l,w,h):self.length=lself.width=wself.height=hdefvolume()://计算Box的体积returnlength*width*heightb=Box(4,5,6)printb.volume()四.程序填空(每空1分,共15分)1.下列程序的作用是将输入的字符串中的每个字符的ASCII码形成一个列表。例如,输入为abcde时,输出为[97,98,99,100,101]。请补充完整。defmain():str=raw_input(“请输入一个字符串:”)output=[]foriinrange():num=output.(num)printoutputmain()2.请补充完整mergesort程序。defmerge(lst1,lst2,lst3):i1=i2=i3=0n1,n2=len(lst1),len(lst2)whilei1n1andi2n2:iflst1[i1]lst2[i2]:#copyfromlst1lst3[i3]=lst1[i1]i1=i1+1else:#copyfromlist2lst3[i3]=lst2[i2]i2=i2+1#itemaddedtolst3whilelst3[i3]=lst1[i1]i1=i1+1i3=i3+1whilelst3[i3]=lst2[i2]i2=i2+1i3=i3+1defmergeSort(lst):n=len(lst)ifm=n/2lst1,lst2=mergeSort(lst1)mergeSort(lst2)merge(lst1,lst2,lst)3.下面程序的作用是显示输入的三个整数的最大值和最小值,请补充完整。defmain():x,y,z=input(Pleaseinputthreewholenumbers:)max,min=f(x,y,z)printMaxvalue:,max,Minvalue:,mindeff(a,b,c):if(bmax):max=bif(cmax):max=cif(bmin):min=bif(cmin):min=cmain()4.下面程序的作用是打印一个由随机字符(*或者#)组成的等腰三角形,请补充完整。fromfromstringimport*defmain():lines=input(pleaseinputthelinesoftriangle:)foriinrange(lines):character=''forj:if:mark='*'else:mark='#'printspace+charactermain()五.程序设计(共20分)1.计算1-1/2+1/3-1/4…+1/99-1/100+…直到最后一项的绝对值小于10-4为止。(5分)2.编程模拟一个与计算机扔骰子猜大小的游戏。每次游戏采用三局两胜,计算机扔一个骰子,其中1,2,3算为小,4,5,6算为大。用户每次可以猜大或者猜小,猜中则用户赢,否则计算机赢。如程序的一次运行情况如下:Pleaseinputyourguess(big/small):smallYouarewrong.Pleaseinputyourguess(big/small):dfdfdPleaseinputyourguess(big/small):bigYouareright.Pleaseinputyourguess(big/small):bigYouarewrong.YoulostthisroundPlayagain?(y/n):dddPlayagain?(y/n):nYouplayed1rounds,andyouwon0rounds要求:尽可能用到模块化程序设计的思想。(15分)
本文标题:上海交大程序设计python期末测验题
链接地址:https://www.777doc.com/doc-7373252 .html