上海交大程序设计python期末考试题_第1页
上海交大程序设计python期末考试题_第2页
上海交大程序设计python期末考试题_第3页
上海交大程序设计python期末考试题_第4页
上海交大程序设计python期末考试题_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、一. 选择题: 将唯一正确的选项写在题前括号中(每题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语言的保留字的是:Acontinue Bexcept Cinit Dpass【 】3以下程序的输出结果是(提示:ord(' a ')=97):lista = 1,2,3,4,5,'a','b','c','

2、d','e'print lista2 + lista5A100 B'd' Cd DTypeEror【 】4下面的循环体执行的次数与其它不同的是:A i = 0while( i <= 100):print i,i = i + 1B for i in range(100):print i, C for i in range(100, 0, -1): print i, D i = 100 while(i > 0):print i, i = i 1【 】5自顶向下逐步求精的程序设计方法是指: A将一个大问题简化为同样形式的较小问题。 B先设计类,再实

3、例化为对象。 C解决方案用若干个较小问题来表达,直至小问题很容易求解。 D先设计简单版本,再逐步增加功能。【 】6简单变量作为实参时,它和对应的形参之间数据传递方式是: A由形参传给实参 B由实参传给形参 C由实参传给形参,再由形参传给实参 D由用户指定传递方向【 】7以下说法不正确的是: A在不同函数中可以使用相同名字的变量。 B函数可以减少代码的重复,也使得程序可以更加模块化。 C主调函数内的局部变量,在被调函数内不赋值也可以直接读取。D函数体中如果没有return语句,也会返回一个None值。【 】8关于list和string下列说法错误的是: Alist可以存放任意类型。 Blist是

4、一个有序集合,没有固定大小。 C用于统计string中字符串长度的函数是string.len()。 Dstring具有不可变性,其创建后值不能改变。【 】9下面问题属于计算机本质上不可解问题的是:AHanoi塔问题 B排序问题 C求阶乘 DHalting问题【 】10python语言定义的class的初始化函数的函数名是:Ainit B_init_ C_init Dinit_【 】11已知x = 43,y = False;则表达式(x >= y and 'A' < 'B' and not y)的值是:AFalseB语法错CTrueD"假&q

5、uot;【 】12对n个数做归并排序(merge sort),这个算法是: Anlogn时间的 B线性时间的Clogn时间的Dn2时间的【 】13下面不是计算思维的特征的是:A概念化 B数学与工程思维的融合 C面向所有的人 D计算机的思维【 】14执行下面操作后,list2的值是:list1 = 4,5,6list2 = list1list12 = 3A4,5,6 B4,3,6 C4,5,3 DA,B,C都不正确【 】15下列合法的变量名是:Amain( )Bcar2C2carDvar-name二概念填空(每空1分,共10分)1表达式eval("4 * 2 + 5 % 2 + 4/3

6、")的结果是 。2print 'This float, %-10.5f, has width 10 and precision 5. ' % (3.1415926) 的输出结果是: 3计算的本质是 和 。4执行 print 1.3 - 1 = 0.3,结果是False的原因是 。5下面语句的执行结果是 。 s = "bb c" print string.split(3 * s)6 、 、 是科技创新的三大支柱。7无穷循环while True:的循环体中可用 语句退出循环。三阅读程序并回答问题(每题5分,共40分)1当输入是54321时,写出下面程序

7、的执行结果。def main():num = input(“请输入一个整数:”)while num != 0: print num % 10 num = num / 10main()答案:543212写出下面程序的执行结果。a = 1, 20, 32, 14, 5, 62, 78, 38, 9, 10 for i in range(9):if( ai > ai+1 ):ai, ai+1 = ai+1, aiprint a3写出下面程序的执行结果。def main(): lst = 2, 4, 6, 8, 10 lst = 2 * lst lst1, lst3 = lst3, lst1 s

8、wap(lst, 2, 4) for i in range(len(lst) - 4): print lsti, " "def swap(lists, ind1, ind2): listsind1, listsind2 = listsind2, listsind1main()4写出下面程序的执行结果。import stringdef main(): s = "I like python!" s = string.lower(s) alist = countlist = count=0 for i in range( len(s) ): if (ord(s

9、i) <= ord('Z') and ord(si) >= ord('A') or (ord(si) <= ord('z') and ord(si) >= ord('a'): if (si in alist): sign = alist.index(si) countlistsign += 1 else: alist.append(si) countlist.append(1) count += 1 for i in range(count): print alisti, " ", co

10、untlistimain()5阅读下面程序def fact(n)return n * fact(n-1)def main()print fact(5)请问该程序是否正确?如果正确的话,请写出运行结果;如果不正确,则修改程序并写出相应运行结果。6下面程序是为了在屏幕上显示10个相同形状的长方形。from graphics import *def main(): win = GraphWin(200,200) shape = Rectangle( Point(20,20), Point(30,40) ) shape.setOutline("yellow") shape.setF

11、ill("red") shape.draw(win) sList = sList.append(shape) for i in range(1,10): p = win.getMouse() c = sListi-1.getCenter() dx = p.getX() - c.getX() dy = p.getY() - c.getY() win.getMouse() win.close() main()请问该程序是否正确?如果不正确,请修改程序。7写出下面程序的功能。假设文件“original”内容为Upgrc y npmepyk.Write a program.那么文件

12、“savetoo”内存储的内容应该是什么?import stringdef main(): print "This is a program." infile = open("original", 'r' ) outfile = open("savetoo", 'w' ) msg = "" for strstr in infile.readlines(): for ichar in strstr: if ichar >= 'a' and ichar <=

13、'z': n = ord(ichar) + 2 yn = (n - ord( 'a' ) ) % 26 ch=chr( ord( 'a' ) + yn ) elif ichar >= 'A' and ichar <= 'Z': n = ord(ichar) + 2 yn = ( n - ord( 'A' ) ) % 26 ch = chr( ord( 'A' ) + yn ) else: ch = ichar msg = msg + ch outfile.write(ms

14、g) infile.close() outfile.close()main()8修改下面程序使得其能运行正常。class Box: #Box类 def init(self, l, w, h): self.length = l self.width = w self.height = h def volume( ): /计算Box的体积 return length * width * heightb = Box(4, 5, 6)print b.volume() 四. 程序填空(每空1分,共15分)1下列程序的作用是将输入的字符串中的每个字符的ASCII码形成一个列表。例如,输入为abcde时,输

15、出为97, 98, 99, 100, 101。请补充完整。def main():str = raw_input(“请输入一个字符串:”)output = for i in range( ): num = output. (num)print outputmain()2请补充完整mergesort程序。def merge(lst1, lst2, lst3): i1 = i2 = i3 = 0 n1, n2 = len(lst1), len(lst2) while i1 < n1 and i2 < n2: if lst1i1 < lst2i2: # copy from lst1

16、lst3i3 = lst1i1 i1 = i1 + 1 else: # copy from list2 lst3i3 = lst2i2 i2 = i2 + 1 # item added to lst3 while lst3i3 = lst1i1 i1 = i1 + 1 i3 = i3 + 1 while lst3i3 = lst2i2 i2 = i2 + 1 i3 = i3 + 1def mergeSort(lst): n = len(lst) if m = n / 2 lst1, lst2 = mergeSort(lst1) mergeSort(lst2) merge(lst1, lst2,

17、 lst)3下面程序的作用是显示输入的三个整数的最大值和最小值,请补充完整。def main(): x,y,z = input("Please input three whole numbers: ") max,min = f(x,y,z) print "Max value: ", max, "Min value: ", mindef f(a,b,c): if (b>max): max = b if (c>max): max = c if (b<min): min = b if (c<min): min = c

18、 main()4下面程序的作用是打印一个由随机字符(* 或者 #)组成的等腰三角形,请补充完整。from from string import *def main(): lines=input("please input the lines of triangle: ") for i in range(lines): character='' for j : if : mark='*' else: mark='#' print space+charactermain()五. 程序设计(共20分)1计算1-1/2+1/3-1/4+1/99-1/100+直到最后一项的绝对值小于10-4为止。(5分)2编程模拟一个与计算机扔骰子猜大小的游戏。每次游戏采用三局两胜,计算机扔一个骰子,其中1,2,3算为小,4,5,6算为大。用户每次可以猜大或者猜小,猜中则用户赢,否则计算机赢。如程序的一次运行情况如下:Please input your guess(big/small

温馨提示

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

评论

0/150

提交评论